這臺(tái)機(jī)器主要是運(yùn)行了一個(gè)tomcat WEB服務(wù)和oracle數(shù)據(jù)庫(kù),問(wèn)題不應(yīng)該出現(xiàn)在WEB服務(wù)和數(shù)據(jù)庫(kù)上面,我檢查了一下WEB日志,沒(méi)有發(fā)現(xiàn)異常,查看數(shù)據(jù)庫(kù)也都正常,也沒(méi)有錯(cuò)誤日志,查看系統(tǒng)日志,也沒(méi)有看到異常,但是系統(tǒng)的登錄日志被清除了,趕緊查看了一下目前運(yùn)行的進(jìn)程情況,看看有沒(méi)有什么異常的進(jìn)程,一查看,果然發(fā)現(xiàn)幾個(gè)異常進(jìn)程,不仔細(xì)看還真看不出來(lái),這些進(jìn)程都是不正常的。
這是個(gè)什么進(jìn)程呢,每次ps -ef都不一樣,一直在變動(dòng),進(jìn)程號(hào)也一直在變動(dòng)中,我想看看進(jìn)程打開(kāi)了什么文件,一時(shí)無(wú)從下手,想到這里,我突然意識(shí)到這應(yīng)該都是一些子進(jìn)程,由一個(gè)主進(jìn)程進(jìn)行管理,所以看這些子進(jìn)程是沒(méi)有用的,即便我殺掉這些子進(jìn)程還會(huì)有新的生成,擒賊先擒王,我們?nèi)フ乙幌轮鬟M(jìn)程,我用top 實(shí)時(shí)查看進(jìn)程使用資源的情況,看看是不是有異常的進(jìn)程占用cpu內(nèi)存等資源,發(fā)現(xiàn)了一個(gè)奇怪的進(jìn)程,平時(shí)沒(méi)有見(jiàn)過(guò)。這個(gè)應(yīng)該是我們尋找的木馬主進(jìn)程。
我嘗試殺掉這個(gè)進(jìn)程,`killall -9 ueksinzina`,可是殺掉之后ps -ef查看還是有那些子進(jìn)程,難道沒(méi)有殺掉?再次top 查看,發(fā)現(xiàn)有出現(xiàn)了一個(gè)其他的主進(jìn)程,看來(lái)殺是殺不掉的,要是那么容易殺掉就不是木馬了。
我們看看他到底是什么,”which obgqtvdunq”發(fā)現(xiàn)這個(gè)命令在/usr/bin下面,多次殺死之后又重新在/usr/bin目錄下面生成,想到應(yīng)該有什么程序在監(jiān)聽(tīng)這個(gè)進(jìn)程的狀態(tài)也可能有什么定時(shí)任務(wù),發(fā)現(xiàn)進(jìn)程死掉再重新執(zhí)行,我就按照目前的思路查看了一下/etc/crontab定時(shí)任務(wù)以及/etc/init.d啟動(dòng)腳本,均發(fā)現(xiàn)有問(wèn)題。
可以看到里面有個(gè)定時(shí)任務(wù)gcc4.sh,這個(gè)不是我們?cè)O(shè)定的,查看一下內(nèi)容更加奇怪了,這個(gè)應(yīng)該是監(jiān)聽(tīng)程序死掉后來(lái)啟動(dòng)的,我們這邊把有關(guān)的配置全部刪掉,并且刪掉/lib/libudev4.so。
在/etc/init.d/目錄下面也發(fā)現(xiàn)了這個(gè)文件。
里面的內(nèi)容是開(kāi)機(jī)啟動(dòng)的信息,這個(gè)我們也給刪掉。
以上兩個(gè),一個(gè)試在開(kāi)機(jī)啟動(dòng)的時(shí)候啟動(dòng)木馬,另一個(gè)是木馬程序被殺掉之后啟動(dòng)木馬,但是目前我們殺掉木馬的時(shí)候木馬并沒(méi)有死掉,而是立刻更換名字切換成另一個(gè)程序文件運(yùn)行,所以我們直接殺死是沒(méi)有任何用處的,我們目的就是要阻止新的程序文件生成,首先我們?nèi)∠绦虻膱?zhí)行權(quán)限并把程序文件生成的目錄/usr/bin目錄鎖定。
chmod 000 /usr/bin/obgqtvdunq
chattr +i /usr/bin
然后我們殺掉進(jìn)程”killall -9 obgqtvdunq”,然后我們?cè)诓榭?etc/init.d/目錄,看到他又生成了新的進(jìn)程,并且目錄變化到了/bin目錄下面,和上面一樣,取消執(zhí)行權(quán)限并把/bin目錄鎖定,不讓他在這里生成,殺掉然后查看他又生成了新的文件,這次他沒(méi)有在環(huán)境變量目錄里面,在/tmp里面,我們把/tmp目錄也鎖定,然后結(jié)束掉進(jìn)程。
到此為止,沒(méi)有新的木馬進(jìn)程生成,原理上說(shuō)是結(jié)束掉了木馬程序,后面的工作就是要清除這些目錄產(chǎn)生的文件,經(jīng)過(guò)我尋找,首先清除/etc/init.d目錄下面產(chǎn)生的木馬啟動(dòng)腳本,然后清除/etc/rc#.d/目錄下面的鏈接文件。
后來(lái)我查看/etc目錄下面文件的修改時(shí)間,發(fā)現(xiàn)ssh目錄下面也有一個(gè)新生成的文件,不知道是不是有問(wèn)題的。
清理差不多之后我們就要清理剛才生成的幾個(gè)文件了,一個(gè)一個(gè)目錄清楚,比如”chattr -i /tmp”,然后刪除木馬文件,以此類推刪除/bin、/usr/bin目錄下面的木馬,到此木馬清理完畢。
快速清理木馬流程
假設(shè)木馬的名字是nshbsjdy,如果top看不到,可以在/etc/init.d目錄下面查看
1、 首先鎖定三個(gè)目錄,不能讓新木馬文件產(chǎn)生
chmod 000 /usr/bin/nshbsjdy
chattr +i /usr/bin
chattr +i /bin
chattr +i /tmp
2、刪除定時(shí)任務(wù)及文件以及開(kāi)機(jī)啟動(dòng)文件
刪除定時(shí)任務(wù)及文件
rm -f /etc/init.d/nshbsjdy
rm -f /etc/rc#.d/木馬連接文件
3、殺掉木馬進(jìn)程
killall -9 nshbsjdy
4、清理木馬進(jìn)程
chattr -i /usr/bin
rm -f /usr/bin/nshbsjdy
處理完成之后再一次檢查一下以上各目錄,尤其是/etc目錄下面最新修改的文件。
5、如果是rootkit木馬,可以用下面的軟件進(jìn)行檢查。
軟件chkrootkit
軟件RKHunter
安裝都非常簡(jiǎn)單,我使用RKHunter簡(jiǎn)單檢查了一下,沒(méi)有發(fā)現(xiàn)什么重大問(wèn)題,但是這也并不表示沒(méi)有什么問(wèn)題,因?yàn)槲覀兊臋z測(cè)命令也是依賴一些系統(tǒng)的命令,如果系統(tǒng)的命令被感染那是檢測(cè)不出來(lái)的,最好是系統(tǒng)的命令備份一份檢查,再不行就備份數(shù)據(jù)重裝嘍。