天天看點

伺服器入侵處理三則

一、記一次Linux伺服器被入侵後的檢測過程

文章來之網絡整理,《記一次Linux伺服器被入侵後的檢測過程》轉載至http://mageedu.blog.51cto.com/4265610/1901543

0×00 前言

故事是這樣的,大年初一,客戶反應他們伺服器無法通路,檢視路由,發現某oracle+tomcat伺服器UDP流量超大,把帶寬占完了,過年嘛,客戶那邊先找了當地的技術人員弄了幾天沒搞定,然後沒辦法大年初三的找我們弄…顧客是上帝!

其實吧以前也遇到過這類攻擊,當時某IDC都被打癱了,隻不過馬兒不在我們的裝置上,是以沒過多關注…

0×01 查找木馬

首先SSH登陸,top檢視程序,發現奇怪名字的指令gejfhzthbp,一看就感覺有問題。

伺服器入侵處理三則

lsof –c gejfhzthbp

檢視關聯檔案,發現對外的tcp連接配接,不知道是不是反向shell…

伺服器入侵處理三則
伺服器入侵處理三則

執行指令 

Whereis  gejfhzthbp        ls  -al  gejfhzthbp

檢視檔案路徑。并檢視檔案建立時間,與入侵時間吻合。

伺服器入侵處理三則

順便把檔案拷貝下來放到kali虛拟機試了下威力,幾秒鐘的結果如下…

伺服器入侵處理三則
伺服器入侵處理三則

之前還以為是外國人搞的,這應該能證明是國人搞的了…

伺服器入侵處理三則

0×02 恢複業務 

首先kill程序,結果肯定沒那麼簡單,程序換個名字又出來了

伺服器入侵處理三則

中間嘗試過很多過程,ps –ef |grep 發現父程序每次不一樣,關聯程序有時是sshd,有時是pwd,ls,中間裝了個VNC連接配接,然後關閉ssh服務,同樣無效,而且kill幾次之後發現父程序變成了1,水準有限,生産伺服器,還是保守治療,以業務為主吧… 

既然被人入侵了,首先還是把防火牆的SSH映射關掉吧,畢竟伺服器現在還要用,還是寫幾條iptables規則吧

iptables -A OUTPUT -o lo -j ACCEPT

允許本機通路本機

iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT

允許主動通路本伺服器的請求

iptables -A OUTPUT –p tcp –d 192.168.1.235 -jACCEPT

允許伺服器主動通路的IP白名單

iptables -A DROP

拒絕對外通路

伺服器入侵處理三則

到此,業務恢複正常。

0×03 查找原因

其實原因一開始我就意識到了是SSH的問題,隻是先要幫人把業務恢複了再說,web端口方面就隻有tomcat的,web漏洞都查過了,什麼struts2,manager頁面,還有一些正常web漏洞均不會存在,除非有0day….  Oracle也不外連,隻有個SSH

基于這一點,我直接查root賬戶ssh登陸日志,翻啊翻,終于….

cd /var/log     less secure

伺服器入侵處理三則
伺服器入侵處理三則

如上圖,使用印尼IP爆破成功,而後面伺服器内網IP登陸竟然是失敗,問了客戶,算是明白了怎麼回事,他們年底加裝置,給伺服器臨時改了弱密碼友善各種第三方技術人員調試,然後估計忘了改回來,結果悲劇了,被壞人登陸了不說,root密碼還被改,自己都登不上…不知道他們老闆知不知道…

繼續檢視history檔案,看人家都幹了些什麼。

伺服器入侵處理三則
伺服器入侵處理三則

壞人的操作過程基本就在這裡了,他執行了好多腳本,誰知道他幹了多少事,還是建議客戶重裝系統吧…

0×04 後記

主要還是自己經驗尚淺,linux運維玩的不熟,不知道怎麼把馬兒徹底趕出去…大牛勿噴。

二、Linux伺服器被入侵和删除木馬程式的經曆

一、背景

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

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

二、發現并追蹤處理

1、檢視流量圖發現問題

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

伺服器入侵處理三則

2、top動态檢視程序

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

伺服器入侵處理三則

3、ps指令檢視程序的路徑

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

伺服器入侵處理三則

4、結束異常程序并繼續追蹤

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

5、檢視登入記錄及日志檔案secure

    通過指令last檢視賬戶登入記錄,一切正常。檢視系統檔案message并沒有發現什麼,但是當我檢視secure檔案的時候發現有些異常,反正是和認證有關的,應該是嘗試連進來控制發包?

伺服器入侵處理三則

6、再次ps檢視程序

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

伺服器入侵處理三則

    我找了一台正常的機器,檢視了一下ps指令的大小,正常的大約是81KB,然後這台機器上面的ps卻高達1.2M,指令檔案肯定是被替換了。

伺服器入侵處理三則

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

伺服器入侵處理三則

7、更多異常檔案的發現

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

伺服器入侵處理三則

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

伺服器入侵處理三則

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

伺服器入侵處理三則

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

伺服器入侵處理三則

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

三、木馬手動清除

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

1、簡單判斷有無木馬

伺服器入侵處理三則

2、上傳如下指令到/root下

3、删除如下目錄及檔案

伺服器入侵處理三則

4、找出異常程式并殺死

5、删除含木馬指令并重新安裝(或者把上傳的正常程式複制過去也行)

    我自己重新安裝好像不行,我是找的正常的機器複制的指令。

伺服器入侵處理三則

四、殺毒工具掃描

1、安裝殺毒工具clamav

伺服器入侵處理三則

2、啟動服務

3、更新病毒庫

    由于ClamAV不是最新版本,是以有告警資訊。可以忽略或更新最新版本。

伺服器入侵處理三則

4、掃描方法

    可以使用clamscan -h檢視相應的幫助資訊

伺服器入侵處理三則

5、檢視日志發現

   把發現的指令删掉替換正常的

伺服器入侵處理三則

附錄: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<path_to_backdoor>将自己設為自啟動,然後Linux.BackDoor.Gates.5建立下列符号連結:

伺服器入侵處理三則

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

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

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

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

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

伺服器入侵處理三則

三、linux如今後處理實戰

事件背景

作業系統:Ubuntu12.04_x64

運作業務:公司業務系統,爬蟲程式,資料隊列。

伺服器托管在外地機房。

突然,頻繁收到一組伺服器ping監控不可達郵件,趕緊登陸zabbix監控系統檢視流量狀況。

可見流量已經達到了800M左右,肯定不正常!

馬上嘗試SSH登陸系統,不幸的是,這種情況是很難登入系統的。

該怎麼辦?

1、排查問題

當時我的第一反應是想馬上切斷外部網絡,通過内網連接配接檢視。

可是這樣一來流量就會消失,也就很難查找攻擊源了。

于是聯系機房協助解決,授權機房技術登入到系統:

首先通過w指令檢視是否有異常使用者在登入;

再檢視登入日志/var/log/auth.log,預料之中,日志已經清空;

最後使用iftop工具找出占用大量流量的連接配接。

下圖是機房技術給我拍的照:

可以看到本地一直通過http方式向104.31.225.6這個ip發送資料包,而且持續不斷。

那好,先把這個ip給屏蔽了試試:

iptables –A OUTPUT –d 104.31.225.6 –j DROP

哇塞!奇迹出現了,流量下去了,能正常連接配接了。

過一會兒,不幸的事情發生了,流量又上來了!

什麼情況!我的心情頓時緊張起來。

又趕緊聯系機房技術,執行上次的操作。

下圖是當時的情況:

傻眼了,目的ip變了,這可咋搞,不可能一個個封吧!

靜下心來,仔細想了下,本地向外發包,那本地肯定會有程式來發!

找到本地程式就能解決了!

2、查找攻擊源

首先我使用了netstat工具過濾端口,檢視運作的程序ID:

netstat –atup |grep 15773

沒有任何結果,更換端口嘗試後仍然沒有結果。

拜托機房技術大哥觀察了下連接配接狀态,原來是短連接配接,會很快的釋放端口,是以才看不到端口的連接配接狀态。

正常長連接配接來說,可以使用lsof –i :15773這樣方式找到PID,再lsof –p PID找到打開的相關檔案。

好吧!隻好先切斷外部網絡,内網SSH進入系統,然後找到這個發包的程式。

第一步:通過netstat –antup 檢視有無開放可疑的端口或者連接配接。

第二步:通過ps –ef檢視有無可疑的程序。

結果是~

都沒有!

難道是植入了rootkit木馬程式?!

想要判斷系統有沒有植入了rootkit可以使用md5sum校驗執行檔案判斷:

先找個同版本作業系統,擷取到這個工具執行檔案的md5值,再擷取可疑的工具執行檔案md5值,比較兩個值是否相同。

如果相同說明這個工具是可信任的,如果不相同很有可能是被替換的。

另外,一般工具可執行檔案大小都在幾十K到幾百K。

但我沒有選擇用md5方式來判斷工具是否可信任,因為完全相同版本的作業系統并不好找。

我直接使用du –sh /bin/lsof檢視,發現大小1.2M,明顯有問題。

是以直接下載下傳正常系統裡的netstat、ps等工具上傳到被黑的系統裡使用,再将不可用的替換掉。

3、清理木馬程式

完成第二步的操作後,奇迹出現了,執行ps –ef後,發下最下面有幾行可疑程式。

本想截圖的,可惜SSH用戶端給關了,沒留下截圖。

記憶中,大概是這樣的:

pid /sbin/java.log

pid /usr/bin/dpkgd/ps –ef

pid /usr/bin/bsd-port/getty

pid /usr/bin/.sshd

看到這幾個,感覺很奇怪,怎麼會有個java.log的執行檔案在運作呢?

先殺掉并删除再說。

這裡就更奇怪了,怎麼會有我執行的指令呢?

ps –ef,指令的路徑不是/bin/ps,引起了我的懷疑,馬上進入此目錄下檢視。

擦,還有幾個,初步判斷是工具被替換了。

還有一個怎麼叫getty呢,再正常系統裡面對比程序,發現沒有這個。

甯可錯殺一百,也不放過一個!

殺掉程序,删除目錄。

這個.sshd程序明顯很可疑,可能是ssh後門,先殺掉删除再說!

再執行ps –ef指令看下,奇怪,java.log程序又起來了,難道有自啟動設定?

于是到了/etc/init.d下檢視,有個異常腳本,在正常系統的也沒有,打開看了下,果然是啟動木馬程式的腳本。

把腳本删除,再删除一次java.log,不再出現了。

删除了/sbin/java.log檔案過一會又出現了,估計是getty趁搞的鬼,同樣清除,不再自動生成了。

好了,可以開啟外網了,觀察了一會網絡流量不再飙升了,心情有如看到美女一樣的愉快!

4、事件總結

ls /usr/bin/dpkgd/   #替換的工具,系統自帶的工具正常不會在這個目錄下,并且也不可用

netstat lsof ps ss

/sbin/java.log  #判斷是發包程式,删除後會自動生成

/usr/bin/bsd-port #判斷是自動生成java.log或着後門程式

/usr/sbin/.sshd  #判斷是後門程式

如果還有其他木馬程式怎麼辦?如果是XSS攻擊,應用層漏洞入侵怎麼辦?

針對這些問題,從我們公司角度來說,盡量不重裝系統,業務太複雜。找出入侵點,跑的程式多,攻擊面多,很棘手。

就先這樣吧!兵來将擋,水來土掩。~

被黑客趁機入侵的原因:

1. 運維對網絡安全實施落實力度低

2. 沒有相關安全測試人員,不能及時發現應用層漏洞

等等...

針對這次攻擊,總結了下防護思路:

1. linux系統安裝後,啟用防火牆,隻允許信任源通路指定服務,删除不必要的使用者,關閉不必要的服務等。

2. 收集日志,包括系統日志,登入日志,程式日志等,及時發現潛在風險。

3. 針對使用者登入實時收集,包括登入時間,密碼重試次數以及使用者執行指令記錄等。

4. 對敏感檔案或目錄變化進行事件監控,如/etc/passwd、/etc/shadow、/web、/tmp(一般上傳檔案提權用)等。

5. 程序狀态監控,對新增或可疑程序做好記錄并通知。

6. 對上線的伺服器系統、Web程式程序安全漏洞掃描。

最後,沒有絕對的安全,隻有盡可能減少攻擊面,提供系統防護能力。

網絡安全,從我做起!

本文轉自 運維小當家 51CTO部落格,原文連結:http://blog.51cto.com/solin/1903543,如需轉載請自行聯系原作者

繼續閱讀