[chkrootkit: kicking script kiddies' asses since 1997]

локальная проверка на наличие rootkit

Что такое chkrootkit?

chkrootkit пакет для локальной проверки на предмет наличия rootkit. Пакет включает в себя:

На данный момент пакет обнаруживает следующие рут-киты, черви и LKMы:

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.

Более подробная информация доступна README.

Что нового?

Выпущенна новая версия chkrootkit - 0.45 ! (Дата релиза: 27.12.2003) Новая версия включает в себя:

Скачать

Следующие файлы доступны для скачивания:

Наш плакат :)

Плакат A1 (595mm x 841mm) - с изображением нашего логотипа с помощью исходников chkrootkit :) используя shanty.pl.

Доступно два варианта: PDF (45 KB) и gziped PostScript (23 KB).

Мироры (зеркала)

Скачать исходники можно еще и здесь:

Лицензионная информация

chkrootkit - свободный программный продукт. Более подробная информация о лицензировании доступна в "COPYRIGHT" файле.

Лист рассылки (в основном англоязычный)

Если Вы хотите подписаться:


echo "subscribe users ваш_адрес" | mail majordomo@chkrootkit.org

ФАКи (FAQ)

  1. Как chkrootkit обнаруживает известные трояны на серверах?

    chkrootkit ищет известные ему "подписи" на зараженной/взломанной машине в основных бинарных файлах. Например, некоторые версии троянов, подмененняя ps имеют внутри вот такую строку: "/dev/ptyp".

    Как правило, атакующий легко может заменить данную строку(и) в исходниках рут-кита, тем самым затруднив его обнаружение. В общем смотрите следующий вопрос :).


  2. Как chkrootkit может обнаруживать модифицированные или новые рут-киты?

    Если chkrootkit не может обнаружить стандартные (известные) подписи (строки) от известных ему троянов червей и т.п. , он не может автоматически обнаружить, что система заражена/вскрыта. Запускайте chkrootkit в эксперт-режиме (expert-mode) (-x В этом режиме ползьзователь может проверить подозрительные строки, которые могут принадлежать трояну или червю, в бинарных файлах.

    Например, большинство текстовой информации, находящейся в бинарном файле, можно посмотреть так:

    # ./strings file_name| more
    используйте комманду strings именно из комплекта chkrootkit, т.к. троян мог подменить вашу базовую комманду на свою, запретив ей показывать определенные строки, или используйте следующую команду из пакета chkrootkit:
    # ./chkrootkit -x |more
    данная команда покажет содержимое ВСЕХ файлов, которые будет проверять! Будте внимательны, т.к. будет выведено большое кол-во информации на экран.
    
    пример поиска путей внутри файла:
    # ./strings file_name| egrep '^/'
    # ./chkrootkit -x | egrep '^/'
    
    т.к. путь как правило содержит энное кол-ва слешей(/) то искать удобнее всего именно их,
    хотя вам, думается, будет виднее, что именно вы хотите найти внутри файла(ов).
    Так же рекомендуем почитать о регулярных выражениях (например тут, т.к. с их помощью поиск осуществить гораздо легче.
    
    


  3. Почему вы написали chkrootkit не на perl/pyton?

    К сожалению, не на всех системах perl или pyton может присутствовать, поэтому Мы пошли по пути наиболее удобному для конечного пользователя chkrootkit - написали обычный shell-скрипт, т.к. он как правило работает всегда и везде.


  4. Какие системные комманды использует chkrootkit?

    Chkrootkit использует следующие системные комманды:

    awk, cut, echo, egrep, find, head, id, ls, netstat, ps, strings, sed, uname


  5. Могу ли я верить данным полученным от chkrootkit в ходе проверки, если есть подозрение на то, что машина вскрыта/заражена?!

    Мы бы не поверили :). Рекомендуем в подобном случае воспользоваться альтернативными путями обнаружения этой гадости:

    1. Исползуйте ключ `-p путь_к_заведомо_чистым_ситемным_файлам'(netstat,ifconfig,ps и т.п.), только не забудте сделать копию на всякий пожарный, после установки системы:
      
      # ./chkrootkit -p /cdrom/bin
      
      
    2. Или воспользуйтесь ключом `-r rootdir' для mountа каталога с заведомо "чистой" машины:
      
      # ./chkrootkit -r /mnt
      
      

  6. Насколько можно верить chkproc?

    Если вы запустили chkproc на сервере, на который запущенно большое кол-во кратковременных процессов, то в результате вы можете получить какое-то количество сообщений о возможном наличии трояна/червя на сервере. chkproc сравнивает результаты вывода команды ps с содержимым каталога /proc. Если процесc был создан/убит в течении работы chkproc, то chkproc может ругнуться на это, т.к. считает это весьма подозрительной фичей :).


  7. У меня запущен PortSentry/klaxon. Может быть что-то не так при тестировании bindshell?

    Если у вас запущен 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). Так что рекомендуем "убить" на время тестирования все программы мониторинга портов (для наиболее точного отчета).


  8. chkrootkit ругается на файлы и папки, например: `.packlist', `.cvsignore', и т.п. Да, есть такая проблема, т.к. многие программы хранят свои настройки в файлах, которые начинаются с . (точки) - просто проигнорируйте ее! :)

    Но мы рекомендуем Вам внимательно изучить все, что выведенно в этой строке, т.к. атакующий как правило пытается спрятать свои файлы/каталоги в каталоги, которые начинаются c точки, например: .sk, ... ,/dev/.security и т.п. - !!! БУДТЕ ВНИМАТЕЛЬНЫ !!!, т.к. chkrootkit просто показывает подобные каталоги/файлы, не анализируя их содержимое.


  9. А могу ли я запускать chkrootkit из cron (крона)?

    Да. Например, для запуска chkrootkit в 3 часа утра и отсылки результатов проверки к вам на email, используйте:

    0 3 * * * (cd /path/to/chkrootkit; ./chkrootkit 2>&1 | mail -s "chkrootkit output" root)

    Но учтите, что в случае атаки на вашу машину, атакующий одним из первых дел проверит содержимое крона, и либо подменит его на свое, либо придумает что то в этом роде.

Контакты/Contacts

Высылайте новые rootkitы, черви, предложения, замечания и т.п. на:
Nelson Murilo <nelson@pangeia.com.br> (только английский)
Klaus Steding-Jessen <jessen@nic.br> (только английский).
Orlov Alexandr <tigr@chkrootkit.com>(русский/английский)

Ссылки по теме:

Chkrootkit в новостях:

Различные документы, упоминающие о chkrootkit:

Уистники:


Valid HTML 4.01!
Rambler's Top100   вЕЪПРБУОПУФШ TopCTO вЕЪПРБУОПУФШ
Последние изменения: Пятница, 01.02.2006. 18:10:04