Описание
Prochunter стремится найти скрытый процесс со всем пользовательским пространством и большинством руткитов ядра.
Этот инструмент состоит из модуля ядра, который выводит все запущенные процессы, идущие по списку task_struct, и создает / sys / kernel / proc_hunter / set entry.
Скрипт на python, который вызывает функцию ядра и сравнивает вывод модуля со списком процессов, собранным из пользовательского пространства (/ proc walking).
Почти все общедоступные руткиты ядра Linux пытаются скрыть процессы через / proc VFS, чтобы удалить скрытые процессы из ps / top / etc.
Другие используют трюк, чтобы изменить зловредный процесс pid на 0 (но вызов выхода будет способствовать kernel panic)
Компиляция
Для скрипта python требуется python3 и psutil.
Модулю ядра нужны только kernel headers.
# make
Как использовать
# ./prochunter.py usage: prochunter.py [-h] [--ps] [--pstree] [-p] [-d] [-r] [-S hostname] optional arguments: -h, --help show this help message and exit --ps Print process list from kmod. --pstree Print process tree from kmod. -p Install prochunter in persistence mode (https://cdn-cyberpunk.netdna-ssl.com/sys entry created). -d Run process list diff when in persistence mode. -r Run process list diff once. -S hostname remote syslog server - Print running process including the hidden processes. :) sudo ./prochunter.py --ps - Print running process tree sudo ./prochunter --pstree - Install the module in persistence mode. sudo ./prochunter.py -p - Invoke prochunter via /sys and show hidden processes (if any), useful with cron. sudo ./prochunter.py -d - Invoke prochunter via /sys and show hidden processes and send logs to a remote syslog server. sudo ./prochunter.py -d -S 10.0.0.2 - Run prochunter without persistence. sudo ./prochunter.py -r
Пример
$ ./chkrootkit ROOTDIR is `/' Checking `amd'... not found Checking `basename'... not infected Checking `biff'... not found Checking `chfn'... not infected [...] Checking `rlogind'... not infected Checking `rshd'... not found Checking `slogin'... not found Checking `sendmail'... not found Checking `sshd'... /usr/bin/strings: Warning: '/' is a directory not infected [...] Searching for suspect PHP files... nothing found Searching for anomalies in shell history files... nothing found Checking `asp'... not infected Checking `bindshell'... not infected Checking `lkm'... chkproc: nothing detected chkdirs: nothing detected [...] chkutmp: nothing deleted this is with prochunter $ sudo ./prochunter.py -r [!] Found 1 hidden process PID Name 0 sshd