问题描述
我最近运行了chkrootkit
并得到以下行:
Searching for Suckit rootkit... Warning: /sbin/init INFECTED
这究竟是什么意思?我听说这是误报,究竟发生了什么。
谢谢,麻烦您了。
最佳解决方案
这可能是误报,因为chkrootkit中存在一个错误(据说在后来的版本0.50-3ubuntu1中修复)。显然chkrootkit没有进行足够严格的检查。
请参阅:https://bugs.launchpad.net/ubuntu/+source/chkrootkit/+bug/454566
另外你可以尝试rkhunter,类似于chkrootkit。
更多信息:幸运的是,运行文件`chkrootkit`告诉我们chkrootkit只是一个shell脚本,所以我们可以直接检查它。
Searching for Suckit in the file /usr/sbin/chkrootkit we find:
### Suckit
if [ -f ${ROOTDIR}sbin/init ]; then
if [ "${QUIET}" != "t" ];then printn "Searching for Suckit rootkit... "; fi
if [ ${SYSTEM} != "HP-UX" ] && ( ${strings} ${ROOTDIR}sbin/init | ${egrep} HOME || \
cat ${ROOTDIR}/proc/1/maps | ${egrep} "init." ) >/dev/null 2>&1
then
echo "Warning: ${ROOTDIR}sbin/init INFECTED"
else
if [ -d ${ROOTDIR}/dev/.golf ]; then
echo "Warning: Suspect directory ${ROOTDIR}dev/.golf"
else
if [ "${QUIET}" != "t" ]; then echo "nothing found"; fi
fi
fi
fi
关键是:
cat ${ROOTDIR}/proc/1/maps | ${egrep} "init."
从最新版本的Ubuntu开始,运行该命令会产生一些输出(需要以root或sudo身份运行):
# sudo cat /proc/1/maps | egrep "init."
b78c2000-b78db000 r-xp 00000000 08:02 271571 /sbin/init (deleted)
b78db000-b78dc000 r--p 00019000 08:02 271571 /sbin/init (deleted)
b78dc000-b78dd000 rw-p 0001a000 08:02 271571 /sbin/init (deleted)
但是,这不是rootkit的感染。我还查看了rkhunter代码,检查更严格(测试rootkit安装的各种其他文件)。
我在chkrootkit文件中更改了行1003,1004,不检查执行/proc /1 /maps的检查(记得先复制一份)
if [ ${SYSTEM} != "HP-UX" ] && ( ${strings} ${ROOTDIR}sbin/init | ${egrep} HOME ) \
>/dev/null 2>&1
次佳解决方案
关于Kubuntu 13.04截至2013-07-31
运行:
cat /sbin/init | egrep HOME
生产:
Binary file (standard input) matches
和
运行:
cat /proc/1/maps | egrep "init."
产生NO输出。
注意:删除周期会产生输出(将”init.”更改为”init”)
b7768000-b779f000 r-xp 00000000 08:02 399192 /sbin/init
b779f000-b77a0000 r--p 00036000 08:02 399192 /sbin/init
b77a0000-b77a1000 rw-p 00037000 08:02 399192 /sbin/init
因此在我看来,检查HOME的部分是问题所在。
如果可以假设rkhunter有一个有效的检查,那么也许简单的路径只是从chkrootkit中删除这一部分并运行rkhunter和chkrootkit?