rkhunter & unhide

除了使用 chkrootkit 来检测 rootkit 之外,还可以结合 rkhunter(rootkit hunter) 以及 unhide 来检测。

rkhunter

rkhunter 会扫描系统的 rootkits,backdoors,sniffers 以及 exploits(via 1)。

更新 rkhunter 数据库,检测 rootkit:
# rkhunter --update
# rkhunter -c/--check
# rkhunter -c -sk


配置文件在 /etc/rkhunter.conf,每次修改完该文件需要重新建立文件属性数据库:

# rkhunter --propupd

比较重要的选项包括:MAIL-ON-WARNING,PKGMGR。这些选项也可以在执行 rkhunter 命令时通过修改参数来改变,通过 -h 来查看支持的选项。

通过 cron 来定时执行,将输出直接 append 到 /var/log/rkhunter/ 的 log 中:

* 1 * * * rkhunter –update>/dev/null 2>&1; rkhunter -c –nocolors –cronjob –skip-keypress –quiet

unhide

unhide 用来发现被 rootkits 隐藏的进程以及 TCP/UDP 端口。它包含两套工具:unhide,unhide-tcp。
unhide 使用下面的三种技术来发现隐藏的进程:
对比 /proc 以及 /bin/ps 的输出
对比从 /bin/ps 收集的信息以及从系统调用中收集的信息
对进程 ID 空间进行全扫描

下面这条命令会检查系统 /proc,/sys 文件中的隐藏进程,通过 brute 选项来定位出监听后门进程的 PID:

# for i in $(echo proc sys brute); do unhide $i; done

下面这样也可行:

# unhide-posix proc
# unhide-posix sys

# unhide-linux26 proc
# unhide-linux26 sys
# unhide-linux26 brute

而 undide-tcp 会鉴别出不在 /bin/netstat 中显示但是正在监听的 TCP/UDP 端口。

参考:

http://www.rootkit.nl/projects/rootkit_hunter.html

http://www.unhide-forensics.info/?Linux