Jul 1

[原]使用chkrootkit工具 阴

linuxing , 11:54 , 网络服务 » 安全相关 , 评论(0) , 引用(0) , 阅读(24111) , Via 本站原创 | |
   在针对常规的入侵检测工作中,除了应用如之前提到的Tripwire和rpm等工具外,另一个常用的工具就是chkrootkit。它的使用非常简单,但却很重要。
一、原理
   chkrootkit是用来监测 rootkit 是否被安装到当前系统中的工具。
   所谓 rootkit ,是一类入侵者经常使用的工具。这类工具通常非常的隐秘、令用户不易察觉,通过这类工具,入侵者建立了一条能够常时入侵系统,或者说对系统进行实时控制的途径。所以,我们要用 chkrootkit 来定时监测系统,以保证系统的安全。
   像Tripwire一样,chkrootkit也是“事后诸葛亮”,其只能针对系统可能的漏洞以及已经被入侵的部分进行分析。它并没有防止入侵的功能。
二、安装
   在红旗上并没有自带chkrootkit工具,您可以用下面的官方网址下载:点击
   也可以直接使用我已经编译好的rpm包:

# rpm -ivh chkrootkit-0.47-1.i386.rpm
Preparing...                #################################### [100%]
  1:chkrootkit             #################################### [100%]

※基于红旗DC 5.0 for x86系统平台
二、检测
使用非常简单:
# chkrootkit -n
ROOTDIR is `/'
Checking `amd'... not infected
Checking `basename'... not infected
Checking `biff'... not found
Checking `chfn'... not infected
Checking `chsh'... not infected
Checking `cron'... not infected
Checking `crontab'... not infected
Checking `date'... not infected
Checking `du'... not infected
Checking `dirname'... not infected
......

如果发现有异常,会报出“INFECTED”字样。所以,也可如此运行:
chkrootkit -n| grep 'INFECTED'

※-n 表示不检测NFS挂载的目录
三、注意事项
1、定时检测
chkrootkit自带的脚本并没有包括定时检测部分,而考虑到该工具的作用。建议编写一个脚本,并加入计划任务中。
例如:
引用
# cat chkrootkit.sh
#!/bin/bash
PATH=/usr/bin:/bin

TMPLOG=`mktemp`

# Run the chkrootkit
/usr/bin/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

打包如下:

把脚本加入crontab中:
cp -p ./chkrootkit.sh /etc/cron.daily/

2、误报
其实,从上面的脚本已经发现,针对465端口做了一个过滤的判断。
原因是,chkrootkit在针对一个叫bindshell的rootkit工具进行检测的时候,可能会和系统中正常的smtps服务冲突。由于bindshell和smtps都是使用465端口,造成chkrootkit的误报。
引用
# chkrootkit -n|grep 'INFECTED'
Checking `bindshell'... INFECTED (PORTS:  465)
# lsof -i:465
COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAME
master  3633 root   98u  IPv4   8509       TCP *:smtps (LISTEN)

※对于chkrootkit,它只是协助您检测,但最终问题原因,必须由管理员执行分析并解决
3、更安全的检测
对于非常重要的系统,单纯的依赖系统自身的定时检测是不足够的,建议增加:
引用
a)由于chkrootkit也是使用系统本身的awk、sed等工具进行判断的。所以,应在服务正式开放或投入使用前,做好系统核心执行文件的备份工作;
# cp `which --skip-alias awk cut echo egrep find head id ls netstat ps strings sed uname` /root/commands/  ← 备份系统命令到建立好的目录
# /usr/local/chkrootkit/chkrootkit -p /root/commands|grep INFECTED  ← 用备份的命令运行chkrootkit

b)正如tripwire一样,通过远程方式进行检测;
# mount -t nfs 192.168.228.30:/root /mnt/disk  ←把远程分区挂载到本地
# chkroot -r /mnt/disk  ←修改默认的根目录,然后进行检测

c)结合其他检测工具,例如:Tripwire。

四、其他
1、能否检测到的rootkit
0.47版的chkrootkit能否检测到下述的rootkit工具:
点击在新窗口中浏览此图片
2、源码.src.rpm

3、参考文档
http://www.centospub.com/make/chkrootkit.html
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]