所謂rootkit,是一類入侵者經常使用的工具。這類工具通常非常的隱秘、令用戶不易察覺,通過這類工 具,入侵者建立了一條能夠總能夠入侵系統,或者說對系統進行實時控制的途徑。所以,我們用自由軟件chkrootkit來建立入侵監測系統,來保證對系統 是否被安裝了rootkit進行監測。
chkrootkit在監測rootkit是否被安裝的過程中,需要使用到一些操作系統本身的命令。但不排除一種情況,那就是入侵者有針對性的已經將 chkrootkit使用的系統命令也做修改,使得chkrootkit無法監測rootkit,從而達到即使系統安裝了chkrootkit也無法檢測 出rootkit的存在,從而依然對系統有著控制的途徑,而達到入侵的目的。那樣的話,用chkrootkit構建入侵監測系統將失去任何意義。對此,我 們在操作系統剛被安裝之后,或者說服務器開放之前,讓chkrootkit就開始工作。而且,在服務器開放之前,備份chkrootkit使用的系統命 令,在一些必要的時候(懷疑系統命令已被修改的情況等等),讓chkrootkit使用初始備份的系統命令進行工作。
安裝 chkrootkit
下載和安裝 chkrootkit 工具
[root@localhost ~]# wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz ← 下載chkrootkit --03:05:31-- ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz => `chkrootkit.tar.gz' Resolving ftp.pangeia.com.br... 200.239.53.35 Connecting to ftp.pangeia.com.br|200.239.53.35|:21... connected. Logging in as anonymous ... Logged in! ==> SYST ... done. ==> PWD ... done. ==> TYPE I ... done. ==> CWD /pub/seg/pac ... done. ==> PASV ... done. ==> RETR chkrootkit.tar.gz ... done. Length: 37,140 (36K) (unauthoritative) 100%[====================================>] 37,140 5.67K/s ETA 00:00 03:05:46 (5.30 KB/s) - `chkrootkit.tar.gz' saved [37140] [root@localhost ~]# tar zxvf chkrootkit.tar.gz ← 展開被壓縮的源代碼 [root@localhost ~]# cd chkrootkit* ← 進入chkrootkit源代碼的目錄 [root@localhost chkrootkit-0.46a]# make sense ← 編譯 [root@localhost chkrootkit-0.46a]# cd .. ← 返回上層目錄 [root@localhost ~]# cp -r chkrootkit-* /usr/local/chkrootkit ← 復制編譯后文件所在的目錄到指定位置 [root@localhost ~]# rm -rf chkrootkit* ← 刪除遺留的源代碼目錄及相關文件 |
然后測試 chkrootkit 是否能夠正常運行。
[root@localhost ~]# cd /usr/local/chkrootkit ← 進入chkrootkit的目錄 [root@localhost chkrootkit]# ./chkrootkit | grep INFECTED ← 測試運行chkrootkit 稍等片刻…如果沒有顯示“INFECTED”字樣,而直接出現命令行提示符,說明一切OK! [root@localhost chkrootkit]# cd ← 回到root用戶目錄 |
讓 chkrootkit 的監測自動化
用Shell Script編寫一段腳本,通過這個腳本讓chkrootkit的監測自動化。如有rootkit被發現的時候,發送郵件通知root用戶,并且將運行結果保存在/var/log/messages文件中。
[root@localhost ~]# vi chkrootkit ← 建立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 [root@localhost ~]# chmod 700 chkrootkit ← 賦予腳本可被執行的權限 [root@localhost ~]# mv chkrootkit /etc/cron.daily/ ← 將腳本移動到每天自動運行的目錄中 |
如前言所述,當chkrootkit使用的系統命令被入侵者更改后,chkrootkit對 rootkit的監測將失效。所以,我們事前將chkrootkit使用的系統命令進行備份,在需要的時候使用備份的原始命令,讓chkrootkit 對 rootkit進行檢測。
[root@localhost ~]# mkdir /root/commands/ ← 建立暫時容納命令備份的目錄 [root@localhost ~]# cp `which --skip-alias awk cut echo egrep find head id ls netstat ps strings sed uname` |
[root@localhost ~]# tar zxvf /root/commands.tar.gz ← 解開壓縮的命令備份 [root@localhost ~]# /usr/local/chkrootkit/chkrootkit -p /root/commands|grep INFECTED |


