記一次Linux木馬清除過程
前段時間公司發(fā)生了一起服務(wù)器入侵事件,在此分享給大家也順便理順下linux入侵應(yīng)急響應(yīng)思路。
一、事件描述
某天監(jiān)控同事反饋有臺機(jī)器cpu飆高到2000%,可能機(jī)器已經(jīng)被黑。于是登錄上去查看,果然有個進(jìn)程名為"HT8sUy71"的進(jìn)程在作祟,這一看名字就不大可能是正常進(jìn)程。
二、處理過程
2.1 查殺病毒進(jìn)程
cpu占用率如此之高,基本可判斷為挖礦程序無疑了,使用在線威脅情報系統(tǒng)對進(jìn)程進(jìn)行檢測,不出所料,得出的標(biāo)簽是coinminer。這種挖礦進(jìn)程一般都有自動重啟機(jī)制,可能是某個進(jìn)程的子進(jìn)程,也可能在cron定時任務(wù)里出現(xiàn)。
首先,檢查cron定時任務(wù),發(fā)現(xiàn)/var/spool/cron/crontabs/root和/etc/cron.d/tomcat文件修改時間有變化,但是內(nèi)容卻無改動。
然后,使用ps -ef進(jìn)行查找主進(jìn)程,并無收獲。同時發(fā)現(xiàn)此挖礦進(jìn)程正在和“172.105.114.84”這個ip的8443端口進(jìn)行通信,可能是黑客的一臺遠(yuǎn)控服務(wù)器。
之后,lsof查看此進(jìn)程在操作哪些文件,也無實際收獲。
推測一定是有某個主進(jìn)程在工作,so,繼續(xù)通過ps和netstat查找監(jiān)聽所監(jiān)聽端口的異常。果不其然,看到異常進(jìn)程,正在批量爆破,看來是被當(dāng)做肉雞了。同時使用lsof查看此進(jìn)程文件,發(fā)現(xiàn)在調(diào)用/root/.ddg/4003.db文件,貌似是個加密的社工庫。
判斷是此程序即是主程序,kill掉挖礦進(jìn)程后,使用strace -T -tt -e strace=full進(jìn)行跟蹤,發(fā)現(xiàn)主進(jìn)程先對挖礦進(jìn)程增加可執(zhí)行權(quán)限,之后拉起進(jìn)程。
那么現(xiàn)在kill掉主進(jìn)程吧,發(fā)生個小插曲,發(fā)現(xiàn)主進(jìn)程pid一直在變化,好吧,直接killall osryfa3。
至此,算是暫時消停一下,簡單總結(jié)一下此病毒特征,其一方面釋放挖礦病毒進(jìn)行挖礦,同時又對公網(wǎng)ssh服務(wù)進(jìn)行爆破以擴(kuò)大感染面。在這里同時給了我一個提醒,或許這臺服務(wù)器就是通過ssh爆破被入侵的。
2.2 查找入侵痕跡
一般情況下,入侵可能有以下幾種方式:
a.各種弱口令爆破
b.系統(tǒng)漏洞的利用
c.應(yīng)用漏洞的利用
上面說了,可能是通過ssh爆破被入侵的,我們先來驗證一下。
查看登錄日志,發(fā)現(xiàn)異常(下圖是已經(jīng)過濾掉正常登錄的日志),基本可斷定是通過ssh爆破入侵了,也可以斷定ssh的訪問控制已經(jīng)失效。
- cat /var/log/secure* | grep Accepted
結(jié)合以上ip查看爆破日志,確認(rèn)以上ip的用戶不是同一個人,是剛好有這么多ip同時爆破了root賬戶,而且最短的爆破時間只花了1分鐘。想來這個root賬戶必然是個弱密碼了。繼續(xù)查找Failed日志的最早時間如下:
- cat /var/log/secure* | grep Failed
基本可斷定在這之前有人動過訪問控制策略了,詢問運(yùn)維人員無果。
stats查看iptables、/etc/hosts.allow和/etc/hosts.deny文件狀態(tài),結(jié)合.bash_history命令,一切真相大白,一言難盡,你們自己體會。
2.3 病毒文件的清理
首先,使用stat查看上面兩個進(jìn)程的修改時間,大約在7月8號早上6點多,而ssh系統(tǒng)最早爆破時間是7月6號16:41。
然后,結(jié)合這兩個時間來查找敏感目錄中被修改過的系統(tǒng)文件,進(jìn)行檢查修復(fù)和清除。
- find /etc/ /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/ /var/spool/cron/ -type f -mtime -3 | xargs ls -l
最后 ,使用chkrootkit、clamav、rkhunter一通查殺,當(dāng)然,還是重裝系統(tǒng)最保險。
三、總結(jié)
首先啰嗦一下,關(guān)于linux主機(jī),高危端口真得萬萬不能全網(wǎng)開放??戳巳罩竞?,發(fā)現(xiàn)黑客真是時時刻刻在爆破啊。
關(guān)于linux入侵的排查思路,總結(jié)如下:
1、查看異常進(jìn)程活動-查找是否有異常進(jìn)程和端口占用
1.1查找占用cpu最多的進(jìn)程,相關(guān)命令:運(yùn)行top命令后,鍵入大寫字母P按cpu排序;
1.2查找占用內(nèi)存最多的進(jìn)程,相關(guān)命令:運(yùn)行top命令后,鍵入大寫字母M
- ps aux | sort -k4nr
1.3查找進(jìn)程文件:
- ls -la /proc/$pid/exe
1.4跟蹤異常進(jìn)程運(yùn)行情況:
- strace -tt -T -e trace=all -p $pid
1.5查看進(jìn)程打開的文件
- lsof -p $pid
1.6 查看進(jìn)程端口情況
- netstat -anltp | grep $pid
2、查看賬號安全
2.1查看是否有存在新增異常賬號:
a.查找特權(quán)用戶
- awk -F ":" '$3==0{print $1}' /etc/passwd
b.查找可以遠(yuǎn)程登錄的賬號信息
- awk '/\$1|\$6/{print $1}' /etc/shadow
c.查找sudo權(quán)限賬戶
- cat /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"
2.2 查看是否有賬號異常登錄情況:
a.查看當(dāng)前登錄用戶和其行為
- w
b.查看所有用戶最后一次登錄的時間
- lastlog
c.查看所有用戶的登錄注銷信息及系統(tǒng)的啟動、重啟及關(guān)機(jī)事件
- last
d.查看登錄成功的日期、用戶名及ip
- grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}'
e.查看試圖爆破主機(jī)的ip
- grep refused /var/log/secure* | awk {'print $9'} | sort | uniq -c |sort -nr | more
- grep "Failed password" /var/log/secure* | grep -E -o "(([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3}))" | uniq -c
f.查看有哪些ip在爆破主機(jī)的root賬號
- grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort
g.查看爆破用戶名字典
- grep "Failed password" /var/log/secure | awk {'print $9'} | sort | uniq -c | sort -nr
3、查找異常文件
3.1 查找cron文件中是否存在惡意腳本
- /var/spool/cron/*
- /etc/crontab
- /etc/cron.d/*
- /etc/cron.daily/*
- /etc/cron.hourly/*
- /etc/cron.monthly/*
- /etc/cron.weekly/
- /etc/anacrontab
- /var/spool/anacron/*
3.2 查看最近一段時間內(nèi)被修改的系統(tǒng)文件
- find /etc/ /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/ -type f -mtime -T | xargs ls -la
3.3 按時間排序,確認(rèn)最近是否有命令被替換,可以結(jié)合rpm -Va命令
- ls -alt /usr/bin /usr/sbin /bin /usr/local/bin
- rpm -Va>rpm.log
3.4 確認(rèn)是否有異常開機(jī)啟動項
- cat /etc/rc.local
- chkconfig --list
4.借助工具查殺病毒和rootkit
4.1 查殺rootkit
- chkrootkit (下載地址-http://www.chkrootkit.org)
- rkhunter (下載地址-http://rkhunter.sourceforge.net)
4.2 查殺病毒
- clamav(下載地址-http://www.clamav.net/download.html)
4.3 查殺webshell
- cloudwalker(下載地址-http://github.com/chaitin/cloudwalker)
工具用法不再贅述,大家自行查閱。