記一次Linux木馬清除過(guò)程

前段時(shí)間公司發(fā)生了一起服務(wù)器入侵事件,在此分享給大家也順便理順下linux入侵應(yīng)急響應(yīng)思路。

一、事件描述

某天監(jiān)控同事反饋有臺(tái)機(jī)器cpu飆高到2000%,可能機(jī)器已經(jīng)被黑。于是登錄上去查看,果然有個(gè)進(jìn)程名為"HT8sUy71"的進(jìn)程在作祟,這一看名字就不大可能是正常進(jìn)程。

二、處理過(guò)程

2.1?查殺病毒進(jìn)程

cpu占用率如此之高,基本可判斷為挖礦程序無(wú)疑了,使用在線威脅情報(bào)系統(tǒng)對(duì)進(jìn)程進(jìn)行檢測(cè),不出所料,得出的標(biāo)簽是coinminer。這種挖礦進(jìn)程一般都有自動(dòng)重啟機(jī)制,可能是某個(gè)進(jìn)程的子進(jìn)程,也可能在cron定時(shí)任務(wù)里出現(xiàn)。

首先,檢查cron定時(shí)任務(wù),發(fā)現(xiàn)/var/spool/cron/crontabs/root和/etc/cron.d/tomcat文件修改時(shí)間有變化,但是內(nèi)容卻無(wú)改動(dòng)。

然后,使用ps -ef進(jìn)行查找主進(jìn)程,并無(wú)收獲。同時(shí)發(fā)現(xiàn)此挖礦進(jìn)程正在和“172.105.114.84”這個(gè)ip的8443端口進(jìn)行通信,可能是黑客的一臺(tái)遠(yuǎn)控服務(wù)器。

之后,lsof查看此進(jìn)程在操作哪些文件,也無(wú)實(shí)際收獲。

推測(cè)一定是有某個(gè)主進(jìn)程在工作,so,繼續(xù)通過(guò)ps和netstat查找監(jiān)聽(tīng)所監(jiān)聽(tīng)端口的異常。果不其然,看到異常進(jìn)程,正在批量爆破,看來(lái)是被當(dāng)做肉雞了。同時(shí)使用lsof查看此進(jìn)程文件,發(fā)現(xiàn)在調(diào)用/root/.ddg/4003.db文件,貌似是個(gè)加密的社工庫(kù)。

判斷是此程序即是主程序,kill掉挖礦進(jìn)程后,使用strace -T -tt -e strace=full進(jìn)行跟蹤,發(fā)現(xiàn)主進(jìn)程先對(duì)挖礦進(jìn)程增加可執(zhí)行權(quán)限,之后拉起進(jìn)程。


那么現(xiàn)在kill掉主進(jìn)程吧,發(fā)生個(gè)小插曲,發(fā)現(xiàn)主進(jìn)程pid一直在變化,好吧,直接killall osryfa3。

至此,算是暫時(shí)消停一下,簡(jiǎn)單總結(jié)一下此病毒特征,其一方面釋放挖礦病毒進(jìn)行挖礦,同時(shí)又對(duì)公網(wǎng)ssh服務(wù)進(jìn)行爆破以擴(kuò)大感染面。在這里同時(shí)給了我一個(gè)提醒,或許這臺(tái)服務(wù)器就是通過(guò)ssh爆破被入侵的。

2.2?查找入侵痕跡

?一般情況下,入侵可能有以下幾種方式:?

a.各種弱口令爆破

b.系統(tǒng)漏洞的利用

c.應(yīng)用漏洞的利用

上面說(shuō)了,可能是通過(guò)ssh爆破被入侵的,我們先來(lái)驗(yàn)證一下。

查看登錄日志,發(fā)現(xiàn)異常(下圖是已經(jīng)過(guò)濾掉正常登錄的日志),基本可斷定是通過(guò)ssh爆破入侵了,也可以斷定ssh的訪問(wèn)控制已經(jīng)失效。?

cat?/var/log/secure*?|grepAccepted

結(jié)合以上ip查看爆破日志,確認(rèn)以上ip的用戶不是同一個(gè)人,是剛好有這么多ip同時(shí)爆破了root賬戶,而且最短的爆破時(shí)間只花了1分鐘。想來(lái)這個(gè)root賬戶必然是個(gè)弱密碼了。繼續(xù)查找Failed日志的最早時(shí)間如下:

cat?/var/log/secure*?|grepFailed

基本可斷定在這之前有人動(dòng)過(guò)訪問(wèn)控制策略了,詢問(wèn)運(yùn)維人員無(wú)果。

stats查看iptables、/etc/hosts.allow和/etc/hosts.deny文件狀態(tài),結(jié)合.bash_history命令,一切真相大白,一言難盡,你們自己體會(huì)。

2.3 病毒文件的清理

首先,使用stat查看上面兩個(gè)進(jìn)程的修改時(shí)間,大約在7月8號(hào)早上6點(diǎn)多,而ssh系統(tǒng)最早爆破時(shí)間是7月6號(hào)16:41。

然后,結(jié)合這兩個(gè)時(shí)間來(lái)查找敏感目錄中被修改過(guò)的系統(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)最保險(xiǎn)。

三、總結(jié)

首先啰嗦一下,關(guān)于linux主機(jī),高危端口真得萬(wàn)萬(wàn)不能全網(wǎng)開放??戳巳罩竞?,發(fā)現(xiàn)黑客真是時(shí)時(shí)刻刻在爆破啊。

關(guān)于linux入侵的排查思路,總結(jié)如下:

1、查看異常進(jìn)程活動(dòng)-查找是否有異常進(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

psaux?|?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、查看賬號(hào)安全

2.1查看是否有存在新增異常賬號(hào):

a.查找特權(quán)用戶

awk-F":"'$3==0{print$1}'/etc/passwd

b.查找可以遠(yuǎn)程登錄的賬號(hào)信息? ? ? ? ? ?

awk'/\$1|\$6/{print$1}'?/etc/shadow

c.查找sudo權(quán)限賬戶

cat/etc/sudoers?|?grep?-v"^#\|^$"|?grep"ALL=(ALL)"

2.2 查看是否有賬號(hào)異常登錄情況:

a.查看當(dāng)前登錄用戶和其行為

w

b.查看所有用戶最后一次登錄的時(shí)間

lastlog

c.查看所有用戶的登錄注銷信息及系統(tǒng)的啟動(dòng)、重啟及關(guān)機(jī)事件???

last

d.查看登錄成功的日期、用戶名及ip

grep"Accepted?"/var/log/secure*?|?awk'{print$1,$2,$3,$9,$11}'

e.查看試圖爆破主機(jī)的ip

greprefused?/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賬號(hào)? ??

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 查看最近一段時(shí)間內(nèi)被修改的系統(tǒng)文件?

find/etc//usr/bin//usr/sbin//bin//usr/local/bin/-type?f?-mtime?-T?|?xargs?ls?-la

3.3?按時(shí)間排序,確認(rèn)最近是否有命令被替換,可以結(jié)合rpm -Va命令

ls?-alt?/usr/bin?/usr/sbin?/bin?/usr/local/bin

rpm?-Va>rpm.log

3.4?確認(rèn)是否有異常開機(jī)啟動(dòng)項(xiàng)? ? ? ?

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)

工具用法不再贅述,大家自行查閱。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Linux基礎(chǔ)概述 在Linux中萬(wàn)物皆文件 破解root密碼單用戶ro改成rw init=/sysroot/...
    靖流閱讀 829評(píng)論 0 0
  • 一、是否入侵檢查1)檢查系統(tǒng)日志檢查系統(tǒng)錯(cuò)誤登陸日志,統(tǒng)計(jì)IP重試次數(shù)(last命令是查看系統(tǒng)登陸日志,比如系統(tǒng)被...
    靜默閱讀 2,601評(píng)論 0 1
  • 背景 GNU計(jì)劃:建立免費(fèi)Unix系統(tǒng)的計(jì)劃。后Linux加入該計(jì)劃。GUN即GUN's Not Unix。GPL...
    saoraozhe3hao閱讀 414評(píng)論 0 0
  • 一、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 6,313評(píng)論 0 10
  • 眉彎畫罷弄妝成, 拜月西廂趁晚晴。 才向天孫求智巧, 又將心事許卿卿。
    教語(yǔ)文的袁老師閱讀 205評(píng)論 0 6

友情鏈接更多精彩內(nèi)容