Что такое chkrootkit? |
chkrootkit
пакет для локальной проверки на предмет наличия rootkit. Пакет включает в себя:
Версия включает в себя:
На данный момент пакет обнаруживает следующие рут-киты, черви и LKMы:
Модули chkwtmp и chklastlog пытаются обнаруживать факты удаления записей из системных журналов
wtmp и lastlog, (но полное обнаружение всех изменений
этих файлов не гарантируется).
Предпринимаются попытки поиска файлов, собранных анализаторами (тест aliens) в обычных местах расположения подобных файлов. Возможность нестандартного расположения файлов не позволяет
гарантировать их обнаружение во всех случаях.
Модуль chkproc проверяет файлы /proc для обнаружения скрытых от команд ps и readdir системных вызовов, которые могут быть связаны с троянскими модулями LKM. Вы можете использовать эту команду с ключом -v для вывода более подробного отчета.
Chkrootkit может обнаруживать широкий спектр враждебного кода, перечисленного ниже.
01. lrk3, lrk4, lrk5, lrk6 (and variants); | 02. Solaris rootkit; | 03. FreeBSD rootkit; |
04. t0rn (and variants); | 05. Ambient's Rootkit (ARK); | 06. Ramen Worm; |
07. rh[67]-shaper; | 08. RSHA; | 09. Romanian rootkit; |
10. RK17; | 11. Lion Worm; | 12. Adore Worm; |
13. LPD Worm; | 14. kenny-rk; | 15. Adore LKM; |
16. ShitC Worm; | 17. Omega Worm; | 18. Wormkit Worm; |
19. Maniac-RK; | 20. dsc-rootkit; | 21. Ducoci rootkit; |
22. x.c Worm; | 23. RST.b trojan; | 24. duarawkz; |
25. knark LKM; | 26. Monkit; | 27. Hidrootkit; |
28. Bobkit; | 29. Pizdakit; | 30. t0rn v8.0; |
31. Showtee; | 32. Optickit; | 33. T.R.K; |
34. MithRa's Rootkit; | 35. George; | 36. SucKIT; |
37. Scalper; | 38. Slapper A, B, C and D; | 39. OpenBSD rk v1; |
40. Illogic rootkit; | 41. SK rootkit. | 42. sebek LKM; |
43. Romanian rootkit; | 44. LOC rootkit; | 45. shv4 rootkit; |
46. Aquatica rootkit; | 47. ZK rootkit; | 48. 55808.A Worm; |
49. TC2 Worm; | 50. Volc rootkit; | 51. Gold2 rootkit; |
52. Anonoying rootkit; | 53. Shkit rootkit; | 54. AjaKit rootkit; |
55. zaRwT rootkit; |
chkrootkit
был протестирован на следующих платформах: Linux 2.0.x, 2.2.x and 2.4.x, FreeBSD 2.2.x, 3.x and 4.x, OpenBSD 2.6, 2.7, 2.8, 2.9, 3.0, 3.1 and 3.2, NetBSD 1.5.2, Solaris 2.5.1, 2.6 and 8.0, HP-UX 11 и True64.BSDI.
Для использования программы chkrootkit требуются полномочия пользователя root.
Простейший способ
проверки обеспечивается командой
(Команда должна выполняться из каталога, в котором хранятся исполняемые файлы chkrootkit, поскольку сценарий ищет
исполняемые файлы в текущем каталоге, не используя переменную окружения PATH.)
Для выбора отдельных тестов вы можете воспользоваться параметрами командной строки:
Приведенная ниже команда обеспечивает поиск троянских программ ps и ls, а также обнаружение интерфейсов, работающих в режиме захвата
пакетов. Ниже перечислены префиксы, используемые программой chkrootkit (за исключением случаев использования с опциями -x или -q) при выводе отчета о проверке:
* INFECTED - проверка показала, что данная программа может
относиться к известным образцам враждебного кода (rootkit);
Программа chkrootkit выводит результаты проверки на консоль, а с помощью
стандартных операций вывод может быть направлен в файл. |
ФАКи (FAQ) |
chkrootkit ищет известные ему "подписи" на зараженной/взломанной машине в основных бинарных файлах. Например, некоторые версии троянов, подмененняя ps имеют внутри вот такую строку: "/dev/ptyp".
Как правило, атакующий легко может заменить данную строку(и) в исходниках рут-кита, тем самым затруднив его обнаружение. В общем смотрите следующий вопрос :).
Если chkrootkit не может обнаружить стандартные (известные) подписи (строки) от известных ему троянов червей и т.п. , он не может автоматически обнаружить, что система заражена/вскрыта. Запускайте chkrootkit в эксперт-режиме (expert-mode) (-x. В этом режиме ползьзователь может проверить подозрительные строки, которые могут принадлежать трояну или червю, в бинарных файлах.
Например, большинство текстовой информации, находящейся в бинарном файле, можно посмотреть так:
# ./strings file_name| more используйте комманду strings именно из комплекта
chkrootkit, т.к. троян мог подменить вашу
базовую
комманду на свою, запретив ей показывать
определенные
строки, или используйте следующую команду из
пакета chkrootkit: # ./chkrootkit -x |more данная команда покажет содержимое ВСЕХ файлов,
которые
будет проверять! Будте внимательны, т.к. будет
выведено
большое кол-во информации на экран.пример поиска путей внутри файла:
# ./strings file_name| egrep '^/'
# ./chkrootkit -x | egrep '^/'
т.к. путь как правило содержит энное кол-ва
слешей(/) то искать удобнее всего именно их,
хотя вам, думается, будет виднее, что именно
вы хотите найти внутри файла(ов).
К сожалению, не на всех системах perl или pyton может присутствовать, поэтому Мы пошли по пути наиболее удобному для конечного пользователя chkrootkit - написали обычный shell-скрипт, т.к. он как правило работает всегда и везде.
Chkrootkit использует следующие системные комманды:
awk, cut, echo, egrep, find, head, id, ls, netstat, ps, strings, sed, uname
Рекомендуем в подобном случае воспользоваться альтернативными путями обнаружения этой гадости:
# ./chkrootkit -p /cdrom/bin
# ./chkrootkit -r /mnt
Если вы запустили chkproc на сервере, на который запущенно большое кол-во кратковременных процессов, то в результате вы можете получить какое-то количество сообщений о возможном наличии трояна/червя на сервере. chkproc сравнивает результаты вывода команды ps с содержимым каталога /proc. Если процесc был создан/убит в течении работы chkproc, то chkproc может ругнуться на это, т.к. считает это весьма подозрительной фичей :).
Если у вас запущен PortSentry/klaxon или любая другая программа, которая "слушает" неиспользуемые порты, chkrootkit может выдавать неправильные отчеты при тестировании bindshell(порты: 114/tcp, 465/tcp, 511/tcp, 1008/tcp, 1524/tcp, 1999/tcp, 3879/tcp, 4369/tcp, 5665/tcp, 10008/tcp, 12321/tcp, 23132/tcp, 27374/tcp, 29364/tcp, 31336/tcp, 31337/tcp, 45454/tcp, 47017/tcp, 47889/tcp, 60001/tcp). Так что рекомендуем "убить" на время тестирования все программы мониторинга портов (для наиболее точного отчета).
Но мы рекомендуем Вам внимательно изучить все, что выведенно в этой строке, т.к. атакующий как правило пытается спрятать свои файлы/каталоги в каталоги, которые начинаются c точки, например: .sk, ... ,/dev/.security и т.п. - !!! БУДТЕ ВНИМАТЕЛЬНЫ !!!, т.к. chkrootkit просто показывает подобные каталоги/файлы, не анализируя их содержимое.
Да. Например, для запуска chkrootkit в 3 часа утра и отсылки результатов проверки к вам на email, используйте:
0 3 * * * (cd /path/to/chkrootkit; ./chkrootkit 2>&1 | mail -s "chkrootkit output" root)
Но учтите, что в случае атаки на вашу машину, атакующий одним из первых дел проверит содержимое крона, и либо подменит его на свое, либо придумает что то в этом роде.
УСТАНОВКА _chkrootkit_ с помощью "МЕНЕДЖЕРА ПРОГРАММ"...
ЗАПУСК ПРОГРАММЫ С ПОМОЩЬЮ _SUDO_, И ВЫВОД РЕЗУЛЬТАТА ПРОВЕРКИ...