故障表現:
登陸伺服器執行sar –n DEV,查得向外流量輸出達到120Mbit/s多,cacti顯示占滿總出口流量
故障判斷:
關閉所有對外應用服務,即tomcat、nginx、vsftp,但關閉之後發現流量依然非常高
使用Ps –ef和netstat -ntplua檢查可疑程序和端口,發現有進可疑程序netstat ps lsof等系統指令跑在/usr/bin/dpkgd目錄裡,而原系統指令已失效,得知系統已中木馬病毒程式
故障排查:
用其他伺服器上相同系統版本的指令替換回netstat ps lsof等系統指令
憑經驗檢視tomcat的目錄内容是否存在木馬程式,發現果然有L26_1000的異常程式存在,但删除之後,立馬又重新生成。
還有木馬病毒在top裡面表現為随機的10位字母的程序,看/proc裡面的資訊,則為ls,cd之類常見的指令。殺死該程序後,會再随機産生一個新的程序,删除這些木馬檔案後,會再重新生成新的木馬檔案。由此可以判斷,木馬病毒會自動修複,多個程序之間會互相保護,一旦删除和被殺,立即重新啟動和複制。
被感染的檔案路徑清單:
/boot 中有随機的10位字母的程序執行檔案,且有部分系統指令被替換
/bin 中有随機的10位字母的程序執行檔案,且有部分系統指令被替換
/sbin 中有随機的10位字母的程序執行檔案,且有部分系統指令被替換
/usr/bin 中有随機的10位字母的程序執行檔案,且有部分系統指令被替換
/usr/sbin 中有随機的10位字母的程序執行檔案,且有部分系統指令被替換
/u02/apache-tomcat-6.0.41/bin 中有L26_1000的異常程式
/etc/init.d 中有随機的10位字母的程序執行檔案
/etc/rc.d/rc[0-6]d 中有随機的10位字母的程序執行檔案
/etc/rc.local 木馬已被寫入啟動項
/etc/crontab 木馬已被寫入crontab中,每3分鐘執行一次
/etc/cron.hourly 木馬已被寫入cron每小時執行的腳本中
木馬程式處理時的具體表征:
1)/proc/_pid/cmdline裡面都是僞造的資訊,ps顯示的内容也一樣,基本上為下面一些常見的指令,混淆管理者眼光查詢線索,核驗這一個,可以嘗試把who等不常見的指令禁用執行權限,但随後卻會發現該指令不停地出現在ps -Af裡面:
gnome-terminal
ls -a
route -n
netstat -antop
ifconfig
sh
cd /etc
bash
who
cat resolv.conf
ps -ef
cat resolv.conf
2) ps -AfH,顯示為以上的指令,但是ppid(父id)為1,則為init,是以這個應該是跟某個服務相關的。
ps-AfH
root 17796 1 0 11:54 ? 00:00:00 route -n
root 18008 1 0 11:55 ? 00:00:00 netstat -antop
root 18011 1 0 11:55 ? 00:00:00 ifconfig
root 18014 1 0 11:55 ? 00:00:00 sh
root 18015 1 0 11:55 ? 00:00:00 cd /etc
root 18016 1 0 11:55 ? 00:00:00 bash
root 18028 1 0 11:55 ? 00:00:00 who
root 18031 1 0 11:55 ? 00:00:00 cat resolv.conf
root 18033 1 0 11:55 ? 00:00:00 ps -ef
用pstree可以看到真實的名字:
|-irqbalance--pid=/var/run/irqbalance.pid
|-jbguikdekd
|-mingetty/dev/tty2
|-mingetty/dev/tty3
|-mingetty/dev/tty4
|-mingetty/dev/tty5
|-mingetty/dev/tty6
3)憑經驗檢查crontab,經查找在/etc/cron.hourly/裡面寫入以下内容:
#cat /etc/cron.hourly/kill.sh
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin
fori in `cat /proc/net/dev|grep :|awk -F: {'print $1'}`; do ifconfig $i up&done
cp/lib/libudev.so /lib/libudev.so.6
/lib/libudev.so.6
從這個地方可以看到病毒本體:/lib/libudev.so,這個檔案看起來應該是一個庫檔案,但是用file檢視,這個檔案則為一個可執行檔案,請注意下面的兩個檔案,一個為executable(可執行的),另一個則為正常的共享庫(shared object):
#file libudev.so
libudev.so:ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked,for GNU/Linux 2.6.9, not stripped
正常的庫檔案應該為:
#file libutil-2.12.so
libutil-2.12.so:ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked(uses shared libs), for GNU/Linux 2.6.18, not stripped
把這個檔案取消可執行權限,但是病毒故障依舊。
4) 因為這個病毒不斷自我啟動,并且父程序号為1,是以應該和init有關,是以檢視/etc/init.d,發現裡面果然有啟動項,删除之。在/etc/rc.d/rc3.d/裡面,也有類似的好幾個啟動項,一并删除。
删除後,發現仍然不能殺死,殺死後馬上重建一個新的,用lsof 檢視:
#lsof -R | grep "/usr/bin"
top 9512 9478 root txt REG 253,0 63856 421158 /usr/bin/top
fhmlrqtqv17161 1 root txt REG 253,0 625729 393335/usr/bin/fhmlrqtqvz
fgqnvqzzc17226 1 root txt REG 253,0 625740 393427/usr/bin/fgqnvqzzck (deleted)
fgqnvqzzc17229 1 root txt REG 253,0 625740 393427/usr/bin/fgqnvqzzck (deleted)
fgqnvqzzc17232 1 root txt REG 253,0 625740 393427/usr/bin/fgqnvqzzck (deleted)
fgqnvqzzc17233 1 root txt REG 253,0 625740 393427/usr/bin/fgqnvqzzck (deleted)
fgqnvqzzc17234 1 root txt REG 253,0 625740 393427/usr/bin/fgqnvqzzck (deleted)
# lsof -R
fhmlrqtqv17161 1 root cwd DIR 253,0 4096 2 /
fhmlrqtqv17161 1 root rtd DIR 253,0 4096 2 /
fhmlrqtqv17161 1 root 0u CHR 1,3 0t0 4023 /dev/null
fhmlrqtqv17161 1 root 1u CHR 1,3 0t0 4023 /dev/null
fhmlrqtqv17161 1 root 2u CHR 1,3 0t0 4023 /dev/null
fhmlrqtqv17161 1 root 3u IPv4 50163 0t0 UDP *:57331
ynmsjtlpw17272 1 root cwd DIR 253,0 4096 2 /
ynmsjtlpw17272 1 root rtd DIR 253,0 4096 2 /
ynmsjtlpw17272 1 root txt REG 253,0 625751 393426 /usr/bin/ynmsjtlpwp (deleted)
ynmsjtlpw17272 1 root 0u CHR 1,3 0t0 4023 /dev/null
ynmsjtlpw17272 1 root 1u CHR 1,3 0t0 4023 /dev/null
ynmsjtlpw17272 1 root 2u CHR 1,3 0t0 4023 /dev/null
ynmsjtlpw17275 1 root cwd DIR 253,0 4096 2 /
ynmsjtlpw17275 1 root rtd DIR 253,0 4096 2 /
5)lsof再次檢視:
再次快速重複檢視:# lsof -R | grep "/usr/bin",發現主程序不變,總是産生幾個輔程序,并且一直處于dedeted狀态,這說明主程序會快速産生幾個子程序,然後這些程序之間互相檢測,一旦檢測到病毒主體被删除或更改,就會再産生一個。
故障解決:
1、将被感染的檔案路徑清單中的木馬檔案設定成000權限,即chmod 000,確定不再執行
2、删除/etc/rc.local,/etc/crontab,/etc/cron.hourly裡面的木馬程式配置,保證不自動啟動;
3、删除将被感染的檔案路徑清單中的木馬檔案
4、殺掉所有木馬程序。
5、鎖定将被感染的檔案路徑清單中的目錄不可更改:如chattr +i /usr/bin這樣保證新産生的病毒寫不到裡面去。
6、ps –ef再次檢查,發現木馬程序後,重複以上步驟
7、目前已被我鎖定的目錄和檔案如下:
----i-------- /etc/cron.hourly
----i--------/etc/crontab
----i--------/etc/rc.local
----i--------/etc/init.d
----i-------- /u02/apache-tomcat-6.0.41
----i-----I-- /u02/apache-tomcat-6.0.41/bin
----i--------/u02/apache-tomcat-6.0.41/webapps
----i--------/bin
----i--------/boot
----i-----I-- /usr/sbin
----i-----I--/usr//bin
本文轉自leonardos51CTO部落格,原文連結:http://blog.51cto.com/leomars/1691472 ,如需轉載請自行聯系原作者