Linux伺服器被入侵後的處理過程

李振良發表於2020-03-04

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

可見流量已經達到了 800M 左右,這肯定不正常了,馬上嘗試 SSH 登陸系統,不幸的事,由於網路堵塞,登入不上或者卡死。

1、排查問題

第一反應是想馬上通知機房運維人員切斷該伺服器外部網路,通過內網連線檢視。可是這樣一來流量就會消失,就很難查詢攻擊源了。

於是聯絡機房協助解決,授權機房技術登入到系統,先通過 命令檢視是否有異常使用者在登入,再看看登入日誌  /var/log/auth.log,預料之中,日誌已經清空;最後使用工具找出那個連線佔用流量大,我使用了 iftop 工具。

機房技術發來拍照,看到本地一直通過 http 方式向 104.31.225.6 這個 ip 傳送資料包,而且持續不斷。

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

iptables –A OUTPUT –d 104.31.225.6 –j DROP

奇蹟出現,瞬間流量下去,現在也可以正常登入系統。

過一會兒~ 不幸的事情發生了,流量又上來了,擦!什麼情況!心情頓時緊張起來。

又趕緊聯絡機房技術,告知他執行上次遮蔽 ip 操作。

機房技術發來拍照,這次傻眼了,目的 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方式來判斷工具是否可信任,因為這臺作業系統比較老,完全相同版本作業系統不好找,稍微有點差別,工具就有可能已被更新,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 的執行檔案在執行呢?找同事是不是他們跑的,說是沒有。那好,先殺掉程式並把檔案移動到別的目錄再看看。

/usr/bin/dpkgd/ps –ef 這個程式怎麼像是我執行的命令呢?仔細一看,命令的路徑有問題,不是 /bin/ps,進入此目錄下檢視。


擦,還有幾個,基本可以確定這些工具是被替換了。。。

還有一個 getty 執行檔案,正常系統下沒有執行這個,估計又是黑客留下的,殺掉程式,刪除目錄。寧可錯殺一百,也不放過一個!

.sshd 程式?明顯很可疑,難道是 ssh 後門,殺掉!

目前這些異常程式都已經被處理掉。

再執行 ps –ef 命令看下,奇怪,java.log 程式又起來了,難道有自啟動設定?於是到了 /etc/init.d 下檢視,有個異常可執行檔案,正常系統裡沒有,開啟看了下,果然是自動啟動木馬程式的指令碼。

把這兩個指令碼刪除,再刪除java.log檔案,檔案不再生成,程式也不再執行了!

好了,可以開啟外網了,觀察了一會網路流量不再飆升了。

4、總結

ls /usr/bin/dpkgd/   #黑客替換的工具(netstat lsof ps ss),系統自帶的工具正常不會在這個目錄下,並且也不可用。

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

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

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

如果還有其他木馬程式怎麼辦?

如果是 XSS 攻擊,應用層漏洞入侵怎麼辦?

針對這些問題,最好方式就是備份資料,重灌系統,乾淨利落。

但從我們公司角度來說,暫時不能重灌系統,業務比較複雜,跑的業務比較多,還沒摸清楚,準備慢慢遷移資料,再觀察下吧!

黑客趁機入侵的原因:

  1. 運維人員網路安全意識低,安全策略落實少;

  2. 上線前沒有對暴露外部的應用進行安全掃描;

  3. 沒有安全測試人員,沒有關注漏洞最新動態,不能及時發現漏洞;

    等…

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

  1. Linux 系統安裝後,啟用防火牆,只允許信任源訪問指定服務,刪除不必要的使用者,關閉不必要的服務等。

  2. 收集日誌,包括系統日誌,登入日誌,程式日誌等,對異常關鍵字告警,及時發現潛在風險。

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

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

  5. 程式狀態監控,對新增的程式(非業務和系統程式)監控並通知。

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

 

附:安全運維經驗

 

相關文章