原贴:http://blog.csdn.net/linkboy2004/archive/2007/03/22/1537890.aspx
本文主要介绍linux上检测rootkit的两种工具: Rootkit Hunter和Chkrootkit.
Rootkit Hunter
中文名叫”Rootkit猎手”, 可以发现大约58个已知的rootkits和一些嗅探器和后门程序. 它通过执行一系列的测试脚本来确认你的机器是否已经感染rootkits. 比如检查rootkits使用的基本文件, 可执行二进制文件的错误文件权限, 检测内核模块等等. Rootkit Hunter由Michael Boelen开发, 是开源(GPL)软件.
安装Rootkit Hunter非常简单, 从网站下载软件包, 解压, 然后以root用户身份运行installer.sh脚本sh installer.sh.
图: Rootkit Hunter正在检测linux机器上的rootkits.
成功安装后, 你可以通过运行下面命令来检测你的机器是否已感染rootkit:
# rkhunter -c
二进制可执行文件rkhunter被安装到/usr/local/bin目录, 你需要以root身份来运行该程序. 程序运行后, 它主要执行下面一系列的测试:
1. MD5校验测试, 检测任何文件是否改动.
2. 检测rootkits使用的二进制和系统工具文件.
3. 检测特洛伊木马程序的特征码.
4. 检测大多常用程序的文件异常属性.
5. 执行一些系统相关的测试 - 因为rootkit hunter可支持多个系统平台.
6. 扫描任何混杂模式下的接口和后门程序常用的端口.
7. 检测如/etc/rc.d/目录下的所有配置文件, 日志文件, 任何异常的隐藏文件等等. 例如, 在检测/dev/.udev和/etc/.pwd.lock文件时候, 我的系统被警告.
8. 对一些使用常用端口的应用程序进行版本测试. 如: Apache Web Server, Procmail等.
完成上面检测后, 你的屏幕会显示扫描结果: 可能被感染的文件, 不正确的MD5校验文件和已被感染的应用程序.
图: 另外的屏幕快照, rootkit hunter正在执行一系列的测试.
在我的机器上, 扫描用了175秒. 缺省情况下, rkhunter对系统进行已知的一些检测. 但是你也可以通过使用’–scan-knownbad-files’来执行未知的错误检测:
# rkhunter -c –scan-knownbad-files
rkhunter是通过一个含有rootkit名字的数据库来检测系统的rootkits漏洞, 所以经常更新该数据库非常重要, 你可以通过下面命令来更新该数据库:
# rkhunter –update
当然最好是通过cron job定期执行上面的命令, 你需要用root用户添加下面命令到crontab文件:
59 23 1 * * echo “Rkhunter update check in progress”;/usr/local/bin/rkhunter –update
上面一行告诉cron程序在每月第一天的下午11:59分执行rkhunter数据库更新工作, 而且你的root用户会收到一封结果通知邮件.
Chkrootkit
Chkrootkit由Nelson Murilo和Klaus Steding Jessen开发. 与Rootkit Hunter程序不同的是, chrootkit不需要installer安装程序, 你只需解开软件包后执行chrootkit即可, 然后将对一些二进制文件进行一系列的测试, 除了与Rootkit Hunter相同的测试外, Chkrootkit还对一些重要的二进制文件进行检测, 比如搜索入侵者已更改日志文件的特征信息等等. 而且, 如果你想列出已经测试的所有项目, 你可以运行带有’-l’参数的命令:
# chkrootkit -l
在测试过程中, 如果你想在屏幕上看到更多有用的信息, 执行下面命令:
# chkrootkit -x
chkrootkit将在专家模式(expert mode)运行.
在Linux上组合使用Rootkit Hunter和Chkrootkit工具是检测rootkis不错的办法.
参考:
Various ways of detecting rootkits in GNU/Linux