chkrootkit говорит, что / sbin / init инфицирован, что это значит?

30

Я недавно побежал chkrootkitи получил следующую строку:

Searching for Suckit rootkit...                   Warning: /sbin/init INFECTED

Что это значит точно? Я слышал, что это был ложный позитив, что именно происходит.

Пожалуйста и спасибо.

myusuf3
источник

Ответы:

34

Вероятно, это неверный результат, поскольку в chkrootkit есть ошибка (предположительно исправленная в более поздней версии 0.50-3ubuntu1). Очевидно, chkrootkit не выполняет достаточно строгую проверку.

Смотрите: https://bugs.launchpad.net/ubuntu/+source/chkrootkit/+bug/454566

Кроме того, вы можете попробовать rkhunter, который похож на chkrootkit.

Еще немного информации: К счастью, запуск файла `which chkrootkit` показывает, что chkrootkit - это всего лишь сценарий оболочки, поэтому мы можем проверить его напрямую.

Searching for Suckit in the file /usr/sbin/chkrootkit we find:
   ### Suckit
   if [ -f ${ROOTDIR}sbin/init ]; then
      if [ "${QUIET}" != "t" ];then printn "Searching for Suckit rootkit... "; fi
      if [ ${SYSTEM} != "HP-UX" ] && ( ${strings} ${ROOTDIR}sbin/init | ${egrep} HOME  || \
              cat ${ROOTDIR}/proc/1/maps | ${egrep} "init." ) >/dev/null 2>&1
        then
        echo "Warning: ${ROOTDIR}sbin/init INFECTED"
      else
         if [ -d ${ROOTDIR}/dev/.golf ]; then
            echo "Warning: Suspect directory ${ROOTDIR}dev/.golf"
         else
            if [ "${QUIET}" != "t" ]; then echo "nothing found"; fi
         fi
      fi
   fi

Ключевая строка:

cat ${ROOTDIR}/proc/1/maps | ${egrep} "init."

Начиная с последних версий Ubuntu, выполнение этой команды действительно приводит к некоторому выводу (необходимо запускать с правами root или sudo):

# sudo cat /proc/1/maps | egrep "init."
b78c2000-b78db000 r-xp 00000000 08:02 271571     /sbin/init (deleted)
b78db000-b78dc000 r--p 00019000 08:02 271571     /sbin/init (deleted)
b78dc000-b78dd000 rw-p 0001a000 08:02 271571     /sbin/init (deleted)

Однако это не заражение руткитом. Я также посмотрел на код rkhunter, и проверки гораздо более строгие (тестирование для всех видов дополнительных файлов, установленных руткитом).

Я изменил строки 1003,1004 в файле chkrootkit, чтобы не проверять, выполнить проверку / proc / 1 / maps (не забудьте сначала взять копию)

if [ ${SYSTEM} != "HP-UX" ] && ( ${strings} ${ROOTDIR}sbin/init | ${egrep} HOME  ) \
             >/dev/null 2>&1
Саймон Б
источник
4
Это относится к V0.49, установленному apt-get. Похоже, что chkrootkit 0.50 (доступный непосредственно на chkrootkit.org ) исправляет этот ложный положительный результат.
Quog
Если вы хотите узнать, какая версия поставляется с вашей Ubuntu, взгляните на: packages.ubuntu.com/search?keywords=chkrootkit
Эдуард Лопес
Поскольку при поиске неисправностей я обнаружил это
Коди Шарп
2

На Kubuntu 13.04 по состоянию на 2013-07-31

Бег:

cat /sbin/init | egrep HOME

Производит:

Binary file (standard input) matches

А ТАКЖЕ

Бег:

cat /proc/1/maps | egrep "init."

Не производит вывод.

Примечание: удаление периода приводит к выводу (изменение «init.» На «init»)

b7768000-b779f000 r-xp 00000000 08:02 399192     /sbin/init
b779f000-b77a0000 r--p 00036000 08:02 399192     /sbin/init
b77a0000-b77a1000 rw-p 00037000 08:02 399192     /sbin/init

Поэтому мне кажется, что проблема в проверке HOME.

Если можно предположить, что rkhunter имеет действительную проверку, то, возможно, самый простой путь - просто удалить этот раздел из chkrootkit и запустить оба rkhunter и chkrootkit?

user180342
источник
1
У меня так же на Ubuntu 14.04 32 битная. Если я пытаюсь strings /sbin/init | grep HOMEполучить XDG_CACHE_HOME and XDG_CONFIG_HOME, это все еще ложный положительный результат? Какова цель поиска строки "HOME" в / sbin / init? Почему это должно быть положительным?
rubo77