利用chkrootkit检测rootkit后门

rootkit从浅显的层面来讲即一种具有自我隐蔽性的后门程序,它往往被入侵者作为一种入侵工具。通过rootkit,入侵者可以偷偷控制被入侵
的电脑,因此危害巨大。chkrootkit是一个Linux系统下的查找检测rootkit后门的工具。本文将介绍chkrootkit的安装与使用方法。

chkrootkit没有包含在官方的CentOS或Debian源,因此我们将采取手动编译的方法来安装,这种方式也更加安全。由于需要编译源代码,因此还需要在系统中安装好gcc编译包。

安装方法

1、准备gcc编译环境

对于CentOS系统,执行下述三条命令:

yum -y install gcc
yum -y install gcc-c++
yum -y install make

对于debian系统,执行下述两条命令:

apt-get -y install gcc
apt-get -y install make

2、下载chkrootkit源码
chkrootkit的官方网站为 http://www.chkrootkit.org ,下述下载地址为官方地址。为了安全起见,务必在官方下载此程序:

wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz

3、解压&编译

tar zxf chkrootkit.tar.gz
cd chkrootkit-*
make sense

若出现报错/usr/bin/ld: cannot find -lc
解决办法:yum -y install glibc-static

5、把编译好的文件部署到/usr/local/目录中,并删除遗留的文件

cd ..
cp -r chkrootkit-* /usr/local/chkrootkit
rm -r chkrootkit-*

至此,安装完毕。

使用方法

安装好的chkrootkit程序位于 /usr/local/chkrootkit/chkrootkit

直接执行

/usr/local/chkrootkit/chkrootkit
或
/usr/local/chkrootkit/chkrootkit | grep INFECTED

chkrootkit的缺点

chkrootkit在检查rootkit的过程中使用了部分系统命令,因此,如果服务器被黑客入侵,可能其依赖的命令也已经被替换,导致chkrootkit的检查结果变得不可信,为了避免这个问题,我们可以在服务器对外开放之前,把chkrootkit的依赖命令进行备份,以后检查rootkit就用这些备份命令进行检查
实现操作如下:

mkdir /usr/share/.commands
cp `which --skip-alias ssh awk cut echo find egrep id head ls netstat ps strings sed uname` /usr/share/.commands
ll /usr/share/.commands
/usr/local/chkrootkit/chkrootkit -p /usr/share/.commands/    #-p参数指定使用的备份命令
cd /usr/share/
tar zcvf commands.tar.gz .commands

把gz包下载到本地保存,把服务器上面的删除,以后检查的时候可以上传到服务器任意目录解压出来用-p参数检查

让 chkrootkit 的监测自动化

#!/bin/bash

PATH=/usr/bin:/bin

TMPLOG=`mktemp`

# Run the chkrootkit
/usr/local/chkrootkit/chkrootkit > $TMPLOG

# Output the log
cat $TMPLOG | logger -t chkrootkit

# bindshe of SMTPSllHow to do some wrongs
if [ ! -z "$(grep 465 $TMPLOG)" ] && \
[ -z $(/usr/sbin/lsof -i:465|grep bindshell) ]; then
sed -i '/465/d' $TMPLOG
fi

# If the rootkit have been found,mail root
[ ! -z "$(grep INFECTED $TMPLOG)" ] && \
grep INFECTED $TMPLOG | mail -s "chkrootkit report in `hostname`" root
rm -f $TMPLOG

chmod 700 chkrootkit ← 赋予脚本可被执行的权限
mv chkrootkit /etc/cron.daily/ ← 将脚本移动到每天自动运行的目录中或定时执行

添加新评论