linux木马中毒
linux木馬中毒
轉(zhuǎn)載?2017年02月14日 17:11:26一、背景
? ? 晚上看到有臺服務(wù)器流量跑的很高,明顯和平常不一樣,流量達(dá)到了800Mbps,第一感覺應(yīng)該是中木馬了,被人當(dāng)做肉雞了,在大量發(fā)包。
? ? 我們的服務(wù)器為了最好性能,防火墻(iptables)什么的都沒有開啟,但是服務(wù)器前面有物理防火墻,而且機(jī)器都是做的端口映射,也不是常見的端口,按理來說應(yīng)該是滿安全的,可能最近和木馬有緣吧,老是讓我遇到,也趁這次機(jī)會把發(fā)現(xiàn)過程記錄一下。
二、發(fā)現(xiàn)并追蹤處理
1、查看流量圖發(fā)現(xiàn)問題
? ? 查看的時候網(wǎng)頁非???#xff0c;有的時候甚至沒有響應(yīng)。
2、top動態(tài)查看進(jìn)程
? ? 我馬上遠(yuǎn)程登錄出問題的服務(wù)器,遠(yuǎn)程操作很卡,網(wǎng)卡出去的流量非常大,通過top發(fā)現(xiàn)了一個異常的進(jìn)程占用資源比較高,名字不仔細(xì)看還真以為是一個Web服務(wù)進(jìn)程。
3、ps命令查看進(jìn)程的路徑
? ? ?發(fā)現(xiàn)這個程序文件在/etc目錄下面,是個二進(jìn)制程序,我拷貝了下來,放到了本文附近位置,以供大家在虛擬機(jī)上面研究,哈哈。
4、結(jié)束異常進(jìn)程并繼續(xù)追蹤
| 1 2 | killall?-9?nginx1 rm?-f?/etc/nginx1 |
? ? 干掉進(jìn)程之后,流量立刻下來了,遠(yuǎn)程也不卡頓了,難道刪掉程序文件,干掉異常進(jìn)程我們就認(rèn)為處理完成了么?想想也肯定沒那么簡單的,這個是木馬啊,肯定還會自己生成程序文件(果然不出我所料,在我沒有搞清楚之前,后面確實(shí)又生成了)我們得繼續(xù)追查。
5、查看登錄記錄及日志文件secure
? ? 通過命令last查看賬戶登錄記錄,一切正常。查看系統(tǒng)文件message并沒有發(fā)現(xiàn)什么,但是當(dāng)我查看secure文件的時候發(fā)現(xiàn)有些異常,反正是和認(rèn)證有關(guān)的,應(yīng)該是嘗試連進(jìn)來控制發(fā)包?
6、再次ps查看進(jìn)程
? ? 其實(shí)第一次ps的時候就有這個問題,那時候沒有發(fā)現(xiàn),第二次是自習(xí)查看每個進(jìn)程,自習(xí)尋找不太正常的進(jìn)程,發(fā)現(xiàn)了一個奇怪的ps進(jìn)程。
? ? 我找了一臺正常的機(jī)器,查看了一下ps命令的大小,正常的大約是81KB,然后這臺機(jī)器上面的ps卻高達(dá)1.2M,命令文件肯定是被替換了。
? ?然后進(jìn)入另一個ps的目錄,看到有如下幾個命令,然后我有查詢了一下系統(tǒng)的這幾個命令,發(fā)現(xiàn)都變得很大,都達(dá)到了1.2M,這些系統(tǒng)命令文件肯定是都被替換了。
7、更多異常文件的發(fā)現(xiàn)
? ?查看定時任務(wù)文件crontab并沒有發(fā)現(xiàn)什么一次,然后查看系統(tǒng)啟動文件rc.local,也沒有什么異常,然后進(jìn)入/etc/init.d目錄查看,發(fā)現(xiàn)比較奇怪的腳本文件DbSecuritySpt、selinux。
? ? 第一個文件可以看出他就是開機(jī)啟動那個異常文件的,第二個應(yīng)該和登錄有關(guān),具體我還不是很清楚,反正肯定是有問題的。
? ?既然和登錄有關(guān),那就找和ssh相關(guān)的,找到了下面的一個文件,是隱藏文件,這個也是木馬文件,我們先記錄下來,這樣程序名字都和我們的服務(wù)名字很相近,就是為了迷惑我們,他們的大小都是1.2M,他們有可能是一個文件。
? ?我有看了一下木馬喜歡出現(xiàn)的目錄/tmp,也發(fā)現(xiàn)了異常文件,從名字上感覺好像是監(jiān)控木馬程序的。
? ? 想到這里,替換的命令應(yīng)該很多,單靠我們?nèi)フ铱隙ㄊ墙鉀Q不了的,我的建議最好是重裝操作系統(tǒng),并做好安全策略,如果不重裝,我下面給一下我的方法,具體行不行有待驗(yàn)證。
三、木馬手動清除
? ? 現(xiàn)在綜合總結(jié)了大概步驟如下:
1、簡單判斷有無木馬
| 1 2 3 4 5 6 7 8 9 10 | #有無下列文件 cat?/etc/rc.d/init.d/selinux cat?/etc/rc.d/init.d/DbSecuritySpt ls?/usr/bin/bsd-port ls?/usr/bin/dpkgd #查看大小是否正常 ls?-lh?/bin/netstat ls?-lh?/bin/ps ls?-lh?/usr/sbin/lsof ls?-lh?/usr/sbin/ss |
2、上傳如下命令到/root下
| 1 | ps?netstat?ss?lsof |
3、刪除如下目錄及文件
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | rm?-rf?/usr/bin/dpkgd?(ps?netstat?lsof?ss) rm?-rf?/usr/bin/bsd-port?????#木馬程序 rm?-f?/usr/bin/.sshd?????????#木馬后門 rm?-f?/tmp/gates.lod rm?-f?/tmp/moni.lod rm?-f?/etc/rc.d/init.d/DbSecuritySpt(啟動上述描述的那些木馬變種程序) rm?-f?/etc/rc.d/rc1.d/S97DbSecuritySpt rm?-f?/etc/rc.d/rc2.d/S97DbSecuritySpt rm?-f?/etc/rc.d/rc3.d/S97DbSecuritySpt rm?-f?/etc/rc.d/rc4.d/S97DbSecuritySpt rm?-f?/etc/rc.d/rc5.d/S97DbSecuritySpt rm?-f?/etc/rc.d/init.d/selinux(默認(rèn)是啟動/usr/bin/bsd-port/getty) rm?-f?/etc/rc.d/rc1.d/S99selinux rm?-f?/etc/rc.d/rc2.d/S99selinux rm?-f?/etc/rc.d/rc3.d/S99selinux rm?-f?/etc/rc.d/rc4.d/S99selinux rm?-f?/etc/rc.d/rc5.d/S99selinux |
4、找出異常程序并殺死
5、刪除含木馬命令并重新安裝(或者把上傳的正常程序復(fù)制過去也行)
? ? 我自己重新安裝好像不行,我是找的正常的機(jī)器復(fù)制的命令。
| 1 2 3 4 5 6 7 8 9 10 11 12 | #ps /root/chattr?-i?-a?/bin/ps?&&?rm?/bin/ps?-f yum?reinstall?procps?-y?或?cp?/root/ps?/bin #netstat /root/chattr?-i?-a?/bin/netstat?&&?rm?/bin/netstat?-f yum?reinstall?net-tools?-y?或?cp?/root/netstat?/bin #lsof /root/chattr?-i?-a?/bin/lsof?&&?rm?/usr/sbin/lsof?-f yum?reinstall?lsof?-y?或?cp?/root/lsof?/usr/sbin #ss /root/chattr?-i?-a?/usr/sbin/ss?&&?rm?/usr/sbin/ss?-f yum?-y?reinstall?iproute?或?cp?/root/ss?/usr/sbin |
四、殺毒工具掃描
1、安裝殺毒工具clamav
| 1 | yum?-y?install?clamav?clamav-milter |
2、啟動服務(wù)
| 1 | service?clamd?restart |
3、更新病毒庫
? ??由于ClamAV不是最新版本,所以有告警信息??梢院雎曰蛏壸钚掳姹尽?/p>
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | [root@mobile?~]#?freshclam? ClamAV?update?process?started?at?Sun?Jan?31?03:15:52?2016 WARNING:?Can't?query?current.cvd.clamav.net WARNING:?Invalid?DNS?reply.?Falling?back?to?HTTP?mode. Reading?CVD?header?(main.cvd):?WARNING:?main.cvd?not?found?on?remote?server WARNING:?Can't?read?main.cvd?header?from?db.cn.clamav.net?(IP:?185.100.64.62) Trying?again?in?5?secs... ClamAV?update?process?started?at?Sun?Jan?31?03:16:25?2016 WARNING:?Can't?query?current.cvd.clamav.net WARNING:?Invalid?DNS?reply.?Falling?back?to?HTTP?mode. Reading?CVD?header?(main.cvd):?Trying?host?db.cn.clamav.net?(200.236.31.1)... OK main.cvd?is?up?to?date?(version:?55,?sigs:?2424225,?f-level:?60,?builder:?neo) Reading?CVD?header?(daily.cvd):?OK?(IMS) daily.cvd?is?up?to?date?(version:?21325,?sigs:?1824133,?f-level:?63,?builder:?neo) Reading?CVD?header?(bytecode.cvd):?OK?(IMS) bytecode.cvd?is?up?to?date?(version:?271,?sigs:?47,?f-level:?63,?builder:?anvilleg) |
4、掃描方法
? ? 可以使用clamscan -h查看相應(yīng)的幫助信息
| 1 2 3 4 5 | clamscan?-r?/etc?--max-dir-recursion=5?-l?/root/etcclamav.log clamscan?-r?/bin?--max-dir-recursion=5?-l?/root/binclamav.log clamscan?-r?/usr?--max-dir-recursion=5?-l?/root/usrclamav.log clamscan?-r?--remove?/usr/bin/bsd-port clamscan?-r?--remove?/usr/bin/ |
5、查看日志發(fā)現(xiàn)
? ?把發(fā)現(xiàn)的命令刪掉替換正常的
附錄:Linux.BackDoor.Gates.5
? ? 經(jīng)過查詢資料,這個木馬應(yīng)該是Linux.BackDoor.Gates.5,找到一篇文件,內(nèi)容具體如下:
? ? 某些用戶有一種根深蒂固的觀念,就是目前沒有能夠真正威脅Linux內(nèi)核操作系統(tǒng)的惡意軟件,然而這種觀念正在面臨越來越多的挑戰(zhàn)。與4月相比,2014年5月Doctor Web公司的技術(shù)人員偵測到的Linux惡意軟件數(shù)量創(chuàng)下了新紀(jì)錄,六月份這些惡意軟件名單中又增加了一系列新的Linux木馬,這一新木馬家族被命名為Linux.BackDoor.Gates。
? ? 在這里描述的是惡意軟件家族Linux.BackDoor.Gates中的一個木馬:Linux.BackDoor.Gates.5,此惡意軟件結(jié)合了傳統(tǒng)后門程序和DDoS攻擊木馬的功能,用于感染32位Linux版本,根據(jù)其特征可以斷定,是與Linux.DnsAmp和Linux.DDoS家族木馬同出于一個病毒編寫者之手。新木馬由兩個功能模塊構(gòu)成:基本模塊是能夠執(zhí)行不法分子所發(fā)指令的后門程序,第二個模塊在安裝過程中保存到硬盤,用于進(jìn)行DDoS攻擊。Linux.BackDoor.Gates.5在運(yùn)行過程中收集并向不法分子轉(zhuǎn)發(fā)受感染電腦的以下信息:
-
CPU核數(shù)(從/proc/cpuinfo讀取)。
-
CPU速度(從/proc/cpuinfo讀取)。
-
CPU使用(從/proc/stat讀取)。
-
Gate'a的 IP(從/proc/net/route讀取)。
-
Gate'a的MAC地址(從/proc/net/arp讀取)。
-
網(wǎng)絡(luò)接口信息(從/proc/net/dev讀取)。
-
網(wǎng)絡(luò)設(shè)備的MAC地址。
-
內(nèi)存(使用/proc/meminfo中的MemTotal參數(shù))。
-
發(fā)送和接收的數(shù)據(jù)量(從/proc/net/dev讀取)。
-
操作系統(tǒng)名稱和版本(通過調(diào)用uname命令)。
? ? 啟動后,Linux.BackDoor.Gates.5會檢查其啟動文件夾的路徑,根據(jù)檢查得到的結(jié)果實(shí)現(xiàn)四種行為模式。
? ? 如果后門程序的可執(zhí)行文件的路徑與netstat、lsof、ps工具的路徑不一致,木馬會偽裝成守護(hù)程序在系統(tǒng)中啟動,然后進(jìn)行初始化,在初始化過程中解壓配置文件。配置文件包含木馬運(yùn)行所必須的各種數(shù)據(jù),如管理服務(wù)器IP地址和端口、后門程序安裝參數(shù)等。
? ? 根據(jù)配置文件中的g_iGatsIsFx參數(shù)值,木馬或主動連接管理服務(wù)器,或等待連接:成功安裝后,后門程序會檢測與其連接的站點(diǎn)的IP地址,之后將站點(diǎn)作為命令服務(wù)器。
? ? 木馬在安裝過程中檢查文件/tmp/moni.lock,如果該文件不為空,則讀取其中的數(shù)據(jù)(PID進(jìn)程)并“干掉”該ID進(jìn)程。然后Linux.BackDoor.Gates.5會檢查系統(tǒng)中是否啟動了DDoS模塊和后門程序自有進(jìn)程(如果已啟動,這些進(jìn)程同樣會被“干掉”)。如果配置文件中設(shè)置有專門的標(biāo)志g_iIsService,木馬通過在文件/etc/init.d/中寫入命令行#!/bin/bash\n<path_to_backdoor>將自己設(shè)為自啟動,然后Linux.BackDoor.Gates.5創(chuàng)建下列符號鏈接:
| 1 2 3 4 | ln?-s?/etc/init.d/DbSecuritySpt?/etc/rc1.d/S97DbSecuritySpt ln?-s?/etc/init.d/DbSecuritySpt?/etc/rc2.d/S97DbSecuritySpt ln?-s?/etc/init.d/DbSecuritySpt?/etc/rc3.d/S97DbSecuritySpt ln?-s?/etc/init.d/DbSecuritySpt?/etc/rc4.d/S97DbSecuritySpt |
? ? 如果在配置文件中設(shè)置有標(biāo)志g_bDoBackdoor,木馬同樣會試圖打開/root/.profile文件,檢查其進(jìn)程是否有root權(quán)限。然后后門程序?qū)⒆约簭?fù)制到/usr/bin/bsd-port/getty中并啟動。在安裝的最后階段,Linux.BackDoor.Gates.5在文件夾/usr/bin/再次創(chuàng)建一個副本,命名為配置文件中設(shè)置的相應(yīng)名稱,并取代下列工具:
| 1 2 3 4 5 6 7 8 9 | /bin/netstat /bin/lsof /bin/ps /usr/bin/netstat /usr/bin/lsof /usr/bin/ps /usr/sbin/netstat /usr/sbin/lsof /usr/sbin/ps |
? ? 木馬以此完成安裝,并開始調(diào)用基本功能。
? ? 執(zhí)行另外兩種算法時木馬同樣會偽裝成守護(hù)進(jìn)程在被感染電腦啟動,檢查其組件是否通過讀取相應(yīng)的.lock文件啟動(如果未啟動,則啟動組件),但在保存文件和注冊自啟動時使用不同的名稱。
? ? 與命令服務(wù)器設(shè)置連接后,Linux.BackDoor.Gates.5接收來自服務(wù)器的配置數(shù)據(jù)和僵尸電腦需完成的命令。按照不法分子的指令,木馬能夠?qū)崿F(xiàn)自動更新,對指定IP地址和端口的遠(yuǎn)程站點(diǎn)發(fā)起或停止DDoS攻擊,執(zhí)行配置數(shù)據(jù)所包含的命令或通過與指定IP地址的遠(yuǎn)程站點(diǎn)建立連接來執(zhí)行其他命令。
? ? 此后門程序的主要DDoS攻擊目標(biāo)是中國的服務(wù)器,然而不法分子攻擊對象也包括其他國家。下圖為利用此木馬進(jìn)行的DDoS攻擊的地理分布:
?
?
原文鏈接:http://wangzan18.blog.51cto.com/8021085/1740113點(diǎn)擊打開鏈接
?
轉(zhuǎn)載于:https://www.cnblogs.com/Bob-zwj/p/8529816.html
總結(jié)
- 上一篇: 为什么你应该停止阅读新闻?
- 下一篇: 应该避免的前端实践