歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux管理 >> Linux服務

一次Linux服務器被入侵和刪除木馬程序的經歷

一、背景

晚上看到有台服務器流量跑的很高,明顯和平常不一樣,流量達到了800Mbps,第一感覺應該是中木馬了,被人當做肉雞了,在大量發包。

我們的服務器為了最好性能,防火牆(iptables)什麼的都沒有開啟,但是服務器前面有物理防火牆,而且機器都是做的端口映射,也不是常見的端口,按理來說應該是滿安全的,可能最近和木馬有緣吧,老是讓我遇到,也趁這次機會把發現過程記錄一下。

二、發現並追蹤處理

1、查看流量圖發現問題

查看的時候網頁非常卡,有的時候甚至沒有響應。

wKiom1as-dyQlUCeAAFWXnyaceU258.png

2、top動態查看進程

我馬上遠程登錄出問題的服務器,遠程操作很卡,網卡出去的流量非常大,通過top發現了一個異常的進程占用資源比較高,名字不仔細看還真以為是一個Web服務進程。

wKioL1as-nOSab6eAACPx1Gw2qc060.png

3、ps命令查看進程的路徑

發現這個程序文件在/etc目錄下面,是個二進制程序,我拷貝了下來,放到了本文附近位置,以供大家在虛擬機上面研究,哈哈。

wKiom1as-k-TydDMAADaZz0UV1k116.png

4、結束異常進程並繼續追蹤

killall-9nginx1
rm-f/etc/nginx1

干掉進程之後,流量立刻下來了,遠程也不卡頓了,難道刪掉程序文件,干掉異常進程我們就認為處理完成了麼?想想也肯定沒那麼簡單的,這個是木馬啊,肯定還會自己生成程序文件(果然不出我所料,在我沒有搞清楚之前,後面確實又生成了)我們得繼續追查。

5、查看登錄記錄及日志文件secure

通過命令last查看賬戶登錄記錄,一切正常。查看系統文件message並沒有發現什麼,但是當我查看secure文件的時候發現有些異常,反正是和認證有關的,應該是嘗試連進來控制發包?

wKioL1as_jORDywFAAFogdyG4v8317.png

6、再次ps查看進程

其實第一次ps的時候就有這個問題,那時候沒有發現,第二次是自習查看每個進程,自習尋找不太正常的進程,發現了一個奇怪的ps進程。

wKiom1as_uDj_cZWAAA1rhjR00k722.png

我找了一台正常的機器,查看了一下ps命令的大小,正常的大約是81KB,然後這台機器上面的ps卻高達1.2M,命令文件肯定是被替換了。

wKioL1as_52wGvNHAAASrsFyr24589.png

然後進入另一個ps的目錄,看到有如下幾個命令,然後我有查詢了一下系統的這幾個命令,發現都變得很大,都達到了1.2M,這些系統命令文件肯定是都被替換了。

wKiom1as__TQk4K_AAAn0k9evMk278.png

7、更多異常文件的發現

查看定時任務文件crontab並沒有發現什麼一次,然後查看系統啟動文件rc.local,也沒有什麼異常,然後進入/etc/init.d目錄查看,發現比較奇怪的腳本文件DbSecuritySpt、selinux。

wKioL1atApfgw78ZAAB5n-v2zfM656.png

第一個文件可以看出他就是開機啟動那個異常文件的,第二個應該和登錄有關,具體我還不是很清楚,反正肯定是有問題的。

wKioL1atBB_gx4vbAAAivNZ8pRs292.png

既然和登錄有關,那就找和ssh相關的,找到了下面的一個文件,是隱藏文件,這個也是木馬文件,我們先記錄下來,這樣程序名字都和我們的服務名字很相近,就是為了迷惑我們,他們的大小都是1.2M,他們有可能是一個文件。

wKiom1atBQbz_CoYAAATGOPwJ50519.png

我有看了一下木馬喜歡出現的目錄/tmp,也發現了異常文件,從名字上感覺好像是監控木馬程序的。

wKiom1atBnyg7i6dAACRJQNJKns664.png

想到這裡,替換的命令應該很多,單靠我們去找肯定是解決不了的,我的建議最好是重裝操作系統,並做好安全策略,如果不重裝,我下面給一下我的方法,具體行不行有待驗證。

三、木馬手動清除

現在綜合總結了大概步驟如下:

1、簡單判斷有無木馬

#有無下列文件
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下

psnetstatsslsof

3、刪除如下目錄及文件

rm-rf/usr/bin/dpkgd(psnetstatlsofss)
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(默認是啟動/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、刪除含木馬命令並重新安裝(或者把上傳的正常程序復制過去也行)

#ps
/root/chattr-i-a/bin/ps&&rm/bin/ps-f
yumreinstallprocps-y或cp/root/ps/bin
#netstat
/root/chattr-i-a/bin/netstat&&rm/bin/netstat-f
yumreinstallnet-tools-y或cp/root/netstat/bin
#lsof
/root/chattr-i-a/bin/lsof&&rm/usr/sbin/lsof-f
yumreinstalllsof-y或cp/root/lsof/usr/sbin
#ss
/root/chattr-i-a/usr/sbin/ss&&rm/usr/sbin/ss-f
yum-yreinstalliproute或cp/root/ss/usr/sbin

四、殺毒工具掃描

1、安裝殺毒工具clamav

yum-yinstallclamavclamav-milter

2、啟動服務

serviceclamdrestart

3、更新病毒庫

由於ClamAV不是最新版本,所以有告警信息。可以忽略或升級最新版本。

[root@mobile~]#freshclam
ClamAVupdateprocessstartedatSunJan3103:15:522016
WARNING:Can'tquerycurrent.cvd.clamav.net
WARNING:InvalidDNSreply.FallingbacktoHTTPmode.
ReadingCVDheader(main.cvd):WARNING:main.cvdnotfoundonremoteserver
WARNING:Can'treadmain.cvdheaderfromdb.cn.clamav.net(IP:185.100.64.62)
Tryingagainin5secs...
ClamAVupdateprocessstartedatSunJan3103:16:252016
WARNING:Can'tquerycurrent.cvd.clamav.net
WARNING:InvalidDNSreply.FallingbacktoHTTPmode.
ReadingCVDheader(main.cvd):Tryinghostdb.cn.clamav.net(200.236.31.1)...
OK
main.cvdisuptodate(version:55,sigs:2424225,f-level:60,builder:neo)
ReadingCVDheader(daily.cvd):OK(IMS)
daily.cvdisuptodate(version:21325,sigs:1824133,f-level:63,builder:neo)
ReadingCVDheader(bytecode.cvd):OK(IMS)
bytecode.cvdisuptodate(version:271,sigs:47,f-level:63,builder:anvilleg)

4、掃描方法

可以使用clamscan -h查看相應的幫助信息

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、查看日志發現

把發現的命令刪掉替換正常的

wKioL1ato5WhI0v2AABTpf1Tq0I913.png

附錄:Linux.BackDoor.Gates.5

經過查詢資料,這個木馬應該是Linux.BackDoor.Gates.5,找到一篇文件,內容具體如下:

某些用戶有一種根深蒂固的觀念,就是目前沒有能夠真正威脅Linux內核操作系統的惡意軟件,然而這種觀念正在面臨越來越多的挑戰。與4月相比,2014年5月Doctor Web公司的技術人員偵測到的Linux惡意軟件數量創下了新紀錄,六月份這些惡意軟件名單中又增加了一系列新的Linux木馬,這一新木馬家族被命名為Linux.BackDoor.Gates。

在這裡描述的是惡意軟件家族Linux.BackDoor.Gates中的一個木馬:Linux.BackDoor.Gates.5,此惡意軟件結合了傳統後門程序和DDoS攻擊木馬的功能,用於感染32位Linux版本,根據其特征可以斷定,是與Linux.DnsAmp和Linux.DDoS家族木馬同出於一個病毒編寫者之手。新木馬由兩個功能模塊構成:基本模塊是能夠執行不法分子所發指令的後門程序,第二個模塊在安裝過程中保存到硬盤,用於進行DDoS攻擊。Linux.BackDoor.Gates.5在運行過程中收集並向不法分子轉發受感染電腦的以下信息:

CPU核數(從/proc/cpuinfo讀取)。

CPU速度(從/proc/cpuinfo讀取)。

CPU使用(從/proc/stat讀取)。

Gate'a的 IP(從/proc/net/route讀取)。

Gate'a的MAC地址(從/proc/net/arp讀取)。

網絡接口信息(從/proc/net/dev讀取)。

網絡設備的MAC地址。

內存(使用/proc/meminfo中的MemTotal參數)。

發送和接收的數據量(從/proc/net/dev讀取)。

操作系統名稱和版本(通過調用uname命令)。

啟動後,Linux.BackDoor.Gates.5會檢查其啟動文件夾的路徑,根據檢查得到的結果實現四種行為模式。

如果後門程序的可執行文件的路徑與netstat、lsof、ps工具的路徑不一致,木馬會偽裝成守護程序在系統中啟動,然後進行初始化,在初始化過程中解壓配置文件。配置文件包含木馬運行所必須的各種數據,如管理服務器IP地址和端口、後門程序安裝參數等。

根據配置文件中的g_iGatsIsFx參數值,木馬或主動連接管理服務器,或等待連接:成功安裝後,後門程序會檢測與其連接的站點的IP地址,之後將站點作為命令服務器。

木馬在安裝過程中檢查文件/tmp/moni.lock,如果該文件不為空,則讀取其中的數據(PID進程)並“干掉”該ID進程。然後Linux.BackDoor.Gates.5會檢查系統中是否啟動了DDoS模塊和後門程序自有進程(如果已啟動,這些進程同樣會被“干掉”)。如果配置文件中設置有專門的標志g_iIsService,木馬通過在文件/etc/init.d/中寫入命令行#!/bin/bash\n將自己設為自啟動,然後Linux.BackDoor.Gates.5創建下列符號鏈接:

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

如果在配置文件中設置有標志g_bDoBackdoor,木馬同樣會試圖打開/root/.profile文件,檢查其進程是否有root權限。然後後門程序將自己復制到/usr/bin/bsd-port/getty中並啟動。在安裝的最後階段,Linux.BackDoor.Gates.5在文件夾/usr/bin/再次創建一個副本,命名為配置文件中設置的相應名稱,並取代下列工具:

/bin/netstat
/bin/lsof
/bin/ps
/usr/bin/netstat
/usr/bin/lsof
/usr/bin/ps
/usr/sbin/netstat
/usr/sbin/lsof
/usr/sbin/ps

木馬以此完成安裝,並開始調用基本功能。

執行另外兩種算法時木馬同樣會偽裝成守護進程在被感染電腦啟動,檢查其組件是否通過讀取相應的.lock文件啟動(如果未啟動,則啟動組件),但在保存文件和注冊自啟動時使用不同的名稱。

與命令服務器設置連接後,Linux.BackDoor.Gates.5接收來自服務器的配置數據和僵屍電腦需完成的命令。按照不法分子的指令,木馬能夠實現自動更新,對指定IP地址和端口的遠程站點發起或停止DDoS攻擊,執行配置數據所包含的命令或通過與指定IP地址的遠程站點建立連接來執行其他命令。

此後門程序的主要DDoS攻擊目標是中國的服務器,然而不法分子攻擊對象也包括其他國家。下圖為利用此木馬進行的DDoS攻擊的地理分布:

wKiom1atDxbAPpm7AAGEMXS_d8w613.png

 

 

 

本文出自 “小小水滴” 博客,請務必保留此出處http://wangzan18.blog.51cto.com/8021085/1740113

    Copyright © Linux教程網 All Rights Reserved