所謂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用戶目錄
[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 相關的系統命令的備份
[root@localhost ~]# mkdir /root/commands/ ← 建立暫時容納命令備份的目錄 [root@localhost ~]# cp `which --skip-alias awk cut echo egrep find head id ls netstat ps strings sed uname`如果以後想通過備份的原始系統命令來運行chkrootkit的時候,只需用SCP軟件將備份的命令打包壓縮文件上傳至服務器端已知位置並解壓縮,然後運行在chkrootkit的時候指定相應的目錄即可。例如,假設已經將備份上傳至root用戶目錄的情況如下:
/root/commands/ ← (連續輸入無換行)備份系統命令到建立好的目錄 [root@localhost ~]# /usr/local/chkrootkit/chkrootkit -p /root/commands|grep INFECTED
← 用備份的命令運行chkrootkit [root@localhost ~]# tar cvf /root/commands.tar /root/commands/ ← 將命令打包 [root@localhost ~]# gzip /root/commands.tar ← 將打包的文件壓縮 然後將壓縮後的commands.tar.gz用SCP軟件下載到安全的地方 [root@localhost ~]# rm -rf commands* ← 為安全起見,刪除服務器端備份的系統命令及相關文件
[root@localhost ~]# tar zxvf /root/commands.tar.gz ← 解開壓縮的命令備份 [root@localhost ~]# /usr/local/chkrootkit/chkrootkit -p /root/commands|grep INFECTED然後在運行後刪除相應遺留文件即可。
← 用備份的命令運行chkrootkit