ПОИСК ВРЕДОНОСНОГО КОДА_chkrootkit_

[chkrootkit: kicking script kiddies' asses since 1997]

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

 

Что такое chkrootkit?

 

                                          chkrootkit

 

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

  • chkrootkit: shell-скрипт, который проверяет основные системные файлы на предмет изменения/замены их каким либо из с уществующих руткитов. Обычно изменения касаются следующих файлов:

     

    • liens asp bindshell lkm rexedcs sniffer wted scalper slapper z2 amd basename biff chfn chsh cron date du dirname echo egrep env find fingerd gpm grep hdparm su ifconfig inetd inetdconf init identd killall ldsopreload login ls lsof mail mingetty netstat named passwd pidof pop2 pop 3 ps pstree rpcinfo rlogind rshd slogin sendmail sshd syslogd tar tcpd tcpdump top telnetd timed traceroute w write

      


                            Версия включает в себя:

  • ifpromisc.c: проверяет, находится ли интерфейс в promiscuous режиме.
  • chklastlog.c: проверяет, не было ли удалений записей из lastlog.
  • chkwtmp.c: проверяет, не было ли удалений записей из wtmp.
  • check_wtmpx.c: проверяет, не было ли удалений записей из wtmpx. (Только Solaris)
  • chkproc.c: проверяет наличие LKM троянов (процессы).
  • chkdirs.c: проверяет наличие LKM троянов (каталоги).
  • strings.c: проверяет на предмет быстрой и неаккуратной замены данных в файлах.

На данный момент пакет обнаруживает следующие рут-киты, черви и 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         

(Команда должна выполняться из каталога, в котором хранятся   исполняемые файлы chkrootkit, поскольку сценарий ищет исполняемые   файлы в текущем каталоге, не используя переменную окружения PATH.)
   В этом случае программа будет автоматически выполнять весь набор   поддерживаемых тестов.

 

Для выбора отдельных тестов вы можете   воспользоваться параметрами командной строки:
           ./chkrootkit [опции] [<имя теста>...]

Опции
   -h   Выводит справочную информацию о работе с программой.
   -V   Выводит сведения о номере версии программы и завершает работу.
   -l   Показывает список поддерживаемых программой проверок.
   -d   Задает вывод подробной информации о работе программы (режим отладки).
   -q   Задает минимальный вывод информации.
   -x   Задает вывод дополнительной информации.
   -r <каталог>   Задает имя каталога для использования в качестве корневого (root).   Указанный в команде каталог служит стартовой точкой для просмотра   дерева каталогов.
   -p dir1:dir2:dirN   Указывает пути к внешним программам, используемым chkrootkit.
   -n   Отключает просмотр смонтированных каталогов NFS.
   

 

Приведенная ниже команда обеспечивает поиск троянских   программ ps и ls, а также обнаружение интерфейсов, работающих в режиме   захвата пакетов.
           ./chkrootkit ps ls sniffer

   С помощью опции -q можно задать работу программы с выводом минимальной   информации. В этом случае отчет будет содержать лишь сведения о   найденных в системе троянских программах или следах работы   анализаторов протоколов и сканеров.
   Опция -x позволяет пользователю провести поиск подозрительных строк в   бинарных файлах, которые могут говорить о присутствии в системе   троянских программ. Все решения об идентификации троянских программ   пользователь должен будет принять сам. Поскольку в режиме поиска   текстовых строк на экран будет выводиться значительный объем   информации, целесообразно воспользоваться постраничным выводом:
           ./chkrootkit -x | more

   Команда
           ./chkrootkit -x | egrep '^/bin'

   позволяет найти в бинарных файлах текстовые строки, начинающиеся с   символов /bin, которые могут содержать имена исполняемых файлов.   Программа chkrootkit может использовать для выполнения проверки другие   программы, включая awk, cut, egrep, find, head, id, ls, netstat, ps,   strings, sed, uname. Если эти программы недоступны в пути поиска,   укажите путь к ним с помощью опции -p. Такая возможность позволяет   использовать при проверке системы заведомо нормальные версии   перечисленных программ, которые могут храниться на отдельном диске без   возможности записи на него. Приведенная ниже команда обеспечивает   выполнение тестов chkrootkit с использованием программ, хранящихся в   каталоге /bin на компакт-диске, смонтированном в системе как /cdrom
           ./chkrootkit -p /cdrom/bin

   Вы можете указать в командной строке несколько каталогов для поиска   требуемых для работы программ, разделяя имена каталогов двоеточием (:)
           ./chkrootkit -p /cdrom/bin:/floppy/mybin

   Иногда может возникнуть необходимость проверки диска вашей системы на   другом компьютере, где заведомо нет враждебного кода. Для этого служит   опция -r , позволяющая задать точку монтирования для корневого раздела   проверяемого диска. Например, при монтировании корневого раздела как   /mnt1, можно использовать команду:
           ./chkrootkit -r /mnt1

                                                       
Сообщения программы
 

Ниже перечислены префиксы, используемые программой chkrootkit (за   исключением случаев использования с опциями -x или -q) при выводе   отчета о проверке:

     * INFECTED - проверка показала, что данная программа может       относиться к известным образцам враждебного кода (rootkit);

     * not infected - проверка показала отсутствие сигнатур известных       rootkit;

     * not tested - тест не был выполнен по одной из перечисленных ниже       причин:         a. неприменимость проверки для данной ОС;         b. отсутствие возможности использования требуемой для теста            внешней программы;         c. заданы опции командной строки, отключающие эту проверку            (например, -r).

     * not found - программа не была найдена и по этой причине не       проверялась;

     * Vulnerable but disabled - программа заражена, но не используется       (не работала в момент проверки или "закомментирована" в       inetd.conf).


                         Примеры использования chkrootkit для мониторинга
   

Программа chkrootkit выводит результаты проверки на консоль, а с   помощью стандартных операций вывод может быть направлен в файл.
   С помощью chkrootkit можно организовать эффективный мониторинг своей   станции и удаленных хостов с передачей результатов проверки по   электронной почте. Вы можете включить нужные команды в файл заданий   cron для автоматической проверки с желаемой периодичностью. Например,   строка
           0 2 * * * cd /usr/local/bin; ./chkrootkit 2>&1 | \           mail -s "chkrootkit output for HostName" root

   в файле /var/spool/cron/root обеспечит выполнение полного набора   тестов в 2 часа 00 минут ежесуточно с передачей отчета локальному   пользователю root по электронной почте.
   Тест LKM позволяет увидеть в системе процессы, скрытые от утилиты ps,   - наличие таких процессов в некоторых случаях может говорить о   непорядке в системе, поэтому можно запускать соответствующую команду   достаточно часто, чтобы увидеть незваных гостей. Включив в файл   заданий cron строку
           0,20,40 * * * * cd /usr/local/bin; ./chkrootkit lkm 2>&1 | \           mail -s "LKM search for HostName" root@AdminHost

   вы обеспечите проверку наличия скрытых в системе процессов с передачей   отчетов по электронной почте на адрес root@AdminHost.
   С помощью теста sniffer вы можете увидеть в своей сети компьютеры,   интерфейсы которых работают в режиме захвата пакетов, что может   говорить о сборе трафика с помощью анализатора протоколов. Включив в   список заданий строку
           1,5,11,16,21,26,31,36,41,46,51,56 * * * * cd /usr/local/bin;           ./chkrootkit sniffer 2>&1 | mail -s "Packet sniffer search result for HostName" root

   вы обеспечите проверку наличия в сети собирающих пакеты интерфейсов с   интервалом в 5 минут. Отчеты о результатах проверки будут передаваться   локальному пользователю root по электронной почте. Такого же   результата можно добиться с помощью строки задания
           1,5,11,16,21,26,31,36,41,46,51,56 * * * * /usr/local/bin/ifpromisc 2>&1 | \           mail -s "Packet sniffer search result for HostName" root

   Отмечу, что в режим сбора пакетов интерфейс могут переводить не только   анализаторы протоколов, но и ряд других программ. Например, на   станции, где используются программы Snort, p0f, iplog и arpwatch,   команда ifpromisc будет выдавать следующую строку:
           eth0: PF_PACKET(/usr/sbin/iplog, /usr/sbin/arpwatch, /usr/sbin/p0f, /usr/sbin/snort-bloat)

   Однако при появлении дополнительной информации уже возникает повод для   настороженности. Например, при активизации программы tcpdump строка   для этого же хоста примет вид
           eth0: PF_PACKET(/usr/sbin/iplog, /usr/sbin/arpwatch, /usr/sbin/p0f, /usr/sbin/snort-bloat, /usr/sbin/tcpdump)
                                

 

                                          ФАКи (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 путь_к_заведомо_чистым_ситемным_
    2. файлам'(netstat,ifconfig,ps и т.п.), только не забудте сделать копию на всякий пожарный, после установки системы:
      # ./chkrootkit -p /cdrom/bin
      
      
    3. Или воспользуйтесь ключом `-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)

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

 

УСТАНОВКА _chkrootkit_ с помощью "МЕНЕДЖЕРА ПРОГРАММ"...

(для увеличения кликни по картинке)
(для увеличения кликни по картинке)

 

 

ЗАПУСК ПРОГРАММЫ С ПОМОЩЬЮ   _SUDO_,  И  ВЫВОД   РЕЗУЛЬТАТА ПРОВЕРКИ...

Результаты проверки
(для увеличения кликни по картинке)
Как установить Расширение ADBLOCK (для браузера Chromium).

                      Stop - реклама!

            ПРОВЕРЬ

Безопасность компьютера

 


 







 



Ваш IP адрес

****************

Консольный конвертер файлов rpm в deb.pd
Adobe Acrobat Document 34.7 KB
Полное удаление программ в Linux.txt
Text Document 2.2 KB
НАСТРОЙКА ПЕЧАТИ.pdf
Adobe Acrobat Document 47.4 KB
УСТАНОВКА " Minitube " - 2.0-1~webupd8~precise0
Установка _ Minitube_2.0-1~webupd8~preci
Text Document 394 Bytes