這兩天發(fā)現(xiàn)自己的阿里云
服務(wù)器上CPU基本都是打滿的,$> top
查看了一下,盡是些亂七八糟命名的進(jìn)程,也是醉了:
再$> ll /proc/22303
看了一下,擦,我啥時(shí)候在/usr/bin/
下放過(guò)這東西了。。。
且殺之:
kill 22303rm -f /usr/bin/lrzzxgbatw
以為一切都好了,過(guò)了兩分鐘再$> top
看了一下,尼瑪,又一個(gè)不認(rèn)識(shí)的東西出來(lái)了,CPU又吃滿了,重復(fù)之前的方式,再殺了一次。。。
repeat。。。repeat。。。repeat。。。
寫(xiě)了一個(gè)簡(jiǎn)單的crontab
程序來(lái)監(jiān)控CPU占用最多的程序,都是啥:
#! shmail_to='xxx@xxx.com'virus_found=1log_path='/home/work/what-virus.log'# 白名單進(jìn)程process_white_list='svn node mysql memcache redis nginx'# 找到CPU占用最大的進(jìn)程process_result=$(ps auxw --sort=-%cpu | head -n 2 | tail -n 1 | awk '$3>50{print $0'\n'}')for $w in $process_white_list;do gpr=$(echo $process_result | grep $w) if [[ x'$gpr' != x ]];then virus_found=0; break; fidone# 發(fā)現(xiàn)真的有異常進(jìn)程,則郵件報(bào)警if [[ $virus_found == 1 ]];then echo $process_result >> $log_path echo $process_result | mail -s 'virus found!' $mail_tofi
的確,短短的時(shí)間內(nèi),報(bào)警一直在持續(xù),而且,從報(bào)警內(nèi)容中能看到,真正在執(zhí)行的命令,都太簡(jiǎn)單:
root 24000 63.7 0.0 21316 468 ? Ssl Jan13 275:03 pwdroot 24000 63.7 0.0 21316 468 ? Ssl Jan13 275:03 suroot 24000 63.7 0.0 21316 468 ? Ssl Jan13 275:03 ls
好吧,就是這些簡(jiǎn)單的命令,大批量執(zhí)行,搞掛了。。。
想著,實(shí)在懶得花時(shí)間去跟到底了,試一試萬(wàn)能的重啟
吧,結(jié)果,事不遂人愿
,重啟了還尼瑪一個(gè)樣,那沒(méi)辦法,我只能猜測(cè),這玩意兒已經(jīng)是自動(dòng)啟動(dòng)
了,于是檢查了一下這兩個(gè)東西:
lrzzxgbatw 0:關(guān)閉 1:啟用 2:啟用 3:啟用 4:啟用 5:啟用 6:關(guān)閉qzaclxgbjwo 0:關(guān)閉 1:啟用 2:啟用 3:啟用 4:啟用 5:啟用 6:關(guān)閉
果然發(fā)現(xiàn)多出來(lái)這兩個(gè),什么鬼東西,果斷chkconfig --del
掉!
cp /lib/udev/udev /lib/udev/debug && /lib/udev/debug
這又是什么東西,也不是我親自加的啊,陌生的東西都刪掉!
這尼瑪一定有鬼,看來(lái),是必須要花時(shí)間繼續(xù)分析的了。。。
猜測(cè)應(yīng)該是用crontab
定時(shí)拉起來(lái)的一堆木馬
,于是查了下crontab的內(nèi)容,果然:
*/3 * * * * root /etc/cron.hourly/cron.sh*/3 * * * * root /etc/cron.hourly/kill.sh
這兩個(gè)定時(shí)任務(wù),并非我親自加的,那就應(yīng)該有鬼了,繼續(xù)看這兩個(gè)*.sh
文件
#!/bin/shPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/binfor i in `cat /proc/net/dev|grep :|awk -F: {'print $1'}`; do ifconfig $i up& donecp /lib/udev/udev /lib/udev/debug/lib/udev/debug
#!/bin/shPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/binfor i in `cat /proc/net/dev|grep :|awk -F: {'print $1'}`; do ifconfig $i up& donecp /lib/libkill.so /lib/libkill.so.6/lib/libkill.so.6
為毛別的系統(tǒng)都沒(méi)有這兩個(gè)東西,而且內(nèi)容還這么古怪,單看cron.sh
基本能分析出來(lái)它的毒害
原理了,我的猜測(cè):
/lib/udev/udev
是病原體cron.sh
每隔3min
自動(dòng)檢測(cè)一次,如果木馬程序不存在,就從病原體復(fù)制一份兒到/lib/udev/debug
/lib/udev/debug
執(zhí)行,生成一個(gè)隨機(jī)命名
的程序,丟到/usr/bin/
、/boot
等目錄chkconfig --add xxx
/etc/rc.local
問(wèn)題定位了,就好解決了
/lib/udev/udev
以及其副本`/lib/udev/debug
/usr/bin/
、/boot/
下可疑的程序chkconfig --del xxx
vi /etc/rc.local
/etc/crontab
下可疑的任務(wù)/etc/cron.hourly/
下可疑的sh
腳本木馬程序?yàn)槊珪?huì)出現(xiàn),而且是root
賬號(hào)下,應(yīng)該是之前風(fēng)靡的redis
漏洞引起的吧,只怪我修復(fù)的太晚!另外,從/var/log/sercure
日志也能分析出來(lái),系統(tǒng)的確存在root
賬號(hào)暴力破解,算了,root
太危險(xiǎn),索性禁用掉吧!
聯(lián)系客服