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

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

我最近运行chkrootkit并得到以下结果:

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

这到底是什么意思?我听说这是误报,到底发生了什么事。

谢谢,麻烦您了。

答案1

这很可能是误报,因为 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

答案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?

相关内容