所謂rootkit,是一類入侵者經(jīng)常使用的工具。這類工具通常非常的隱秘、令用戶不易察覺,通過這類工 具,入侵者建立了一條能夠總能夠入侵系統(tǒng),或者說對(duì)系統(tǒng)進(jìn)行實(shí)時(shí)控制的途徑。所以,我們用自由軟件chkrootkit來建立入侵監(jiān)測(cè)系統(tǒng),來保證對(duì)系統(tǒng) 是否被安裝了rootkit進(jìn)行監(jiān)測(cè)。
chkrootkit在監(jiān)測(cè)rootkit是否被安裝的過程中,需要使用到一些操作系統(tǒng)本身的命令。但不排除一種情況,那就是入侵者有針對(duì)性的已經(jīng)將 chkrootkit使用的系統(tǒng)命令也做修改,使得chkrootkit無法監(jiān)測(cè)rootkit,從而達(dá)到即使系統(tǒng)安裝了chkrootkit也無法檢測(cè) 出rootkit的存在,從而依然對(duì)系統(tǒng)有著控制的途徑,而達(dá)到入侵的目的。那樣的話,用chkrootkit構(gòu)建入侵監(jiān)測(cè)系統(tǒng)將失去任何意義。對(duì)此,我 們?cè)诓僮飨到y(tǒng)剛被安裝之后,或者說服務(wù)器開放之前,讓chkrootkit就開始工作。而且,在服務(wù)器開放之前,備份chkrootkit使用的系統(tǒng)命 令,在一些必要的時(shí)候(懷疑系統(tǒng)命令已被修改的情況等等),讓chkrootkit使用初始備份的系統(tǒng)命令進(jìn)行工作。
安裝 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* ← 進(jìn)入chkrootkit源代碼的目錄 [root@localhost chkrootkit-0.46a]# make sense ← 編譯 [root@localhost chkrootkit-0.46a]# cd .. ← 返回上層目錄 [root@localhost ~]# cp -r chkrootkit-* /usr/local/chkrootkit ← 復(fù)制編譯后文件所在的目錄到指定位置 [root@localhost ~]# rm -rf chkrootkit* ← 刪除遺留的源代碼目錄及相關(guān)文件 |
然后測(cè)試 chkrootkit 是否能夠正常運(yùn)行。
[root@localhost ~]# cd /usr/local/chkrootkit ← 進(jìn)入chkrootkit的目錄 [root@localhost chkrootkit]# ./chkrootkit | grep INFECTED ← 測(cè)試運(yùn)行chkrootkit 稍等片刻…如果沒有顯示“INFECTED”字樣,而直接出現(xiàn)命令行提示符,說明一切OK! [root@localhost chkrootkit]# cd ← 回到root用戶目錄 |
讓 chkrootkit 的監(jiān)測(cè)自動(dòng)化
用Shell Script編寫一段腳本,通過這個(gè)腳本讓chkrootkit的監(jiān)測(cè)自動(dòng)化。如有rootkit被發(fā)現(xiàn)的時(shí)候,發(fā)送郵件通知root用戶,并且將運(yùn)行結(jié)果保存在/var/log/messages文件中。
[root@localhost ~]# vi chkrootkit ← 建立chkrootkit自動(dòng)運(yùn)行腳本 #!/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 ← 賦予腳本可被執(zhí)行的權(quán)限 [root@localhost ~]# mv chkrootkit /etc/cron.daily/ ← 將腳本移動(dòng)到每天自動(dòng)運(yùn)行的目錄中 |
如前言所述,當(dāng)chkrootkit使用的系統(tǒng)命令被入侵者更改后,chkrootkit對(duì) rootkit的監(jiān)測(cè)將失效。所以,我們事前將chkrootkit使用的系統(tǒng)命令進(jìn)行備份,在需要的時(shí)候使用備份的原始命令,讓chkrootkit 對(duì) rootkit進(jìn)行檢測(cè)。
[root@localhost ~]# mkdir /root/commands/ ← 建立暫時(shí)容納命令備份的目錄 [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 |