現象:
一個随機字母命名的程序,吃掉大量的cpu和網絡帶寬。如圖:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuETN0kUeKhmZ0o1UCFUQON3afNkeHNGVhFTbvl2S39CX1gzLclzNvwVMw00LcJDMzZWe39CXvwVbvNmLvR3YxUjL0M3Lc9CX6MHc0RHaiojIsJye.png)
Lsof可以看到病毒的IP 59.36.97.141 東莞的IP
殺死後,立刻新生一個随機字母的程序,繼續作惡,如圖:
原因可能有兩個:有另外一個程序在守護着它,或者系統服務有相關設定。
1、尋找守護病毒的程序
Pstree可以看到這樣的程序其實有兩個,同樣是10個随機字母的程序
一個表現異常設為A,一個隐藏在背後設為B。
2、看看系統服務設定:
看了下crontab, 發現有個3分鐘就執行一個的腳本,結果順藤摸瓜,發現一個僞裝成庫的程式,file它,發現它真實個可執行檔案,ps了下,發現沒有這個名字的程序,估計是改了名字,隐藏起來,它跟B有什麼關系?然後順手就把那個庫檔案libudev.so删掉,TMD,居然發現跟A一樣,立即重生了,這裡想會不會它們是互相守護的。試試同時殺掉它們,發現還是不行。
再看看init.d 結果發現了/usr/bin/A就是A的本地,之前pwdx是查不出A的路徑的,估計是修改/proc/pid裡面的資訊。 rcX.d裡面的也有指向init.d的連結檔案,/etc/rc.d/rc<0-6>.d、/etc/rc<0-6>.d都有。
看了上面的資訊,得到解決辦法:
Kill.sh:
s90="S90${1}"
k90="K90${1}"
rm -f /etc/rc0.d/${k90} /etc/rc4.d/${s90} /etc/rc5.d/${s90}/etc/rc6.d/${k90} /etc/rc1.d/${s90} /etc/rc2.d/${s90} /etc/rc3.d/${s90}
rm -f /etc/rc.d/rc0.d/${k90} /etc/rc.d/rc4.d/${s90} /etc/rc.d/rc5.d/${s90}/etc/rc.d/rc6.d/${k90} /etc/rc.d/rc1.d/${s90} /etc/rc.d/rc2.d/${s90}/etc/rc.d/rc3.d/${s90}
#去掉crontab裡的3分鐘執行一次的那項
rm -f /etc/cron.hourly/gcc.sh
#阻止再新生病毒程式
chmod 000 /usr/bin/${1} && chattr+i /usr/bin
chmod 000 /bin/${1} && chattr +i/bin
chmod 000 /sbin/${1} && chattr +i/sbin
chmod 000 /usr/sbin/${1} && chattr+i /usr/sbin
chmod 000 /usr/local/bin/${1} &&chattr +i /usr/local/bin
chmod 000 /usr/local/sbin/${1} &&chattr +i /usr/local/sbin
chmod 000 /usr/X11R6/bin/${1} &&chattr +i /usr/X11R6/bin
chmod 000 /tmp/${1} && chattr +i/tmp
#殺死病毒
kill -9 ${2}
rm -f /lib/libudev.so*
殺掉後,再執行recovery.sh
chattr -i /usr/bin
chattr -i /bin
chattr -i /sbin
chattr -i /usr/sbin
chattr -i /usr/local/bin
chattr -i /usr/local/sbin
chattr -i /usr/X11R6/bin
chattr -i /tmp
反思:
病毒是什麼時候,怎樣進來的?
病毒的一些特性,對伺服器開發還是有啟發意義的