chkrootkit说/ sbin / init被感染了,这是什么意思?


30

我最近跑了chkrootkit,得到了以下内容:

Searching for Suckit rootkit...                   Warning: /sbin/init INFECTED

这到底是什么意思?我听说这是一个错误的肯定,到底发生了什么。

谢谢,麻烦您了。

Answers:


34

由于chkrootkit中存在一个错误(可能在更高的版本0.50-3ubuntu1中已修复),因此这可能是一个误报。显然chkrootkit没有执行足够严格的检查。

参见:https : //bugs.launchpad.net/ubuntu/+source/chkrootkit/+bug/454566

另外,您可以尝试类似于chkrootkit的rkhunter。

更多信息:幸运的是,运行文件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

4
这适用于apt-get安装的V0.49。看起来chkrootkit 0.50(可直接从chkrootkit.org获得)修复了此误报。
Quog

如果您想知道ubuntu随附的版本,请查看:packages.ubuntu.com/search?
爱德华·洛佩兹

因为这时候我搜索排查上来,我想提一提,有在这里的附加信息的另一个讨论:askubuntu.com/questions/597432/...
科迪夏普

2

截至2013-07-31在Kubuntu 13.04上

运行:

cat /sbin/init | egrep HOME

产生:

Binary file (standard input) matches

运行:

cat /proc/1/maps | egrep "init."

不产生输出。

注意:删除句点将产生输出(将“ 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?


1
我在Ubuntu 14.04 32位上具有相同的功能。如果我尝试strings /sbin/init | grep HOME,我得到 XDG_CACHE_HOME and XDG_CONFIG_HOME的是,仍然有假阳性?在/ sbin / init中搜索字符串“ HOME”的目的是什么?为什么那应该是积极的?
rubo77
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.