一次伺服器被入侵後的分析

發表於2013-09-11

最近有個朋友讓我去幫他看一下他的linux伺服器.說是apache啟動不了,有很多詭異的情況.後來證明絕不是apache啟動不了這麼簡單.

登上伺服器之後隨便看了下,最先引起我注意的是”ls”命令的輸出:

為什麼”ls”預設加了”-h”引數呢?我用”alias”命令看了一下,然後取消了這個別名之後”ls”就工作正常了.

雖然很奇怪,不過我的首要任務是先把apache啟動起來,等過會再仔細研究這個問題.

納尼?趕緊去”/var/log/”目錄一看,果然”apache2/”資料夾不見了.而且這個目錄下其他的資料夾,比如”mysql/”,”samba/”也都不見了.一定是哪裡出錯了.會不會是我朋友不小心刪掉了呢,他跟我說絕對沒有.然後我用root登入進去準備修復日誌丟失的問題.

很不幸的發現,”ls”又出問題了.同樣,用”alias”命令:

這個時候,我才意識到問題的嚴重性.”ls”奇怪的舉動和”/var/log/”大量日誌被刪除讓我懷疑伺服器是否被入侵了.當我看到root目錄下的”.bash_history”時,就已經可以確定被入侵了.

Woht!這個系統已經被入侵了.這實在是令人激動的一件事情,不過很顯然,我的朋友不這麼想.這個入侵者犯了一個很基本的錯誤,沒有清除”.bash_history”檔案.所以他/她可能在其他的地方也留下了一些蛛絲馬跡.接下來就是詳細的分析一下這次入侵.

通過bash history我們得到了大量的資訊.先來看一下”/var/.x”下面隱藏了什麼和命令”setup zibi.joe.149 54098″的作用吧.

“setup”這個指令碼是rootkit shv5的安裝指令碼.它安裝了一個修改過的ssh後門–”/bin/ttyload”,然後把它加到了”/etc/inittab”,這樣每次重啟後就會自動啟動.(相關部分的指令碼如下:)

它也替換了一些linux的標準命令.

這樣子就可以解釋為什麼”ls”命令輸出那麼奇怪了.

“.backup”資料夾儲存了被替換之前的命令程式.

看了一下時間戳,居然是在聖誕節.

很顯然,原始的”ls”和後門安裝的”ls”是不一樣的.他們的md5對比如下:

這個rootkit(“sh5.tar.gz”)是從下面的地址下載的.

這是一個波蘭的ip,從這個ip上沒有得到更多的資訊.不過這個入侵者依然犯了幾個嚴重的錯誤.

這是執行”setup”命令的截圖:(在伺服器上的沙盒裡執行的)

rq1

所以”zibi.joe.149″是後門的密碼,”54098″是埠號.這是一個來自ssh.com的就版本的sshd.測試截圖如下:

rq2

安裝完後門之後,下一個步驟就是裝一個irc-bot,讓伺服器變成殭屍網路中的一員.”psotnic0.2.5.tar.gz”就是來達到這個目的的.入侵者解壓這個包之後把 irc-bot重新命名為”smbd”,來達到隱藏的目的.

然後,他建立了兩個配置檔案.檔案中包含irc伺服器和需要加入的頻道.配置檔案是加密過的,而且明文的配置檔案被刪掉了.

讓我們執行一下382這條命令,看看會發生什麼.

哇!它新增了cron定時任務.趕緊看一看:

接下來,我殺掉這兩個惡意的smbd程式,禁用cron任務.在另一個shell中執行了tcpdump,然後手動啟動了這兩個irc-bot程式:

用”ps”命令(後門替換過的)可以看到這兩個程式.這也是為什麼入侵者需要通過改名字來隱藏程式.

最開始兩個是真正的samba程式,後面兩個是irc-bot,讓我們用”strace”命令來看看它做了什麼:

可以看到它嘗試連線ip 83.18.74.235的9714埠和195.159.0.92的6667埠:

又是一個波蘭的ip.另外一個ip,”ircnet.irc.powertech.no”是”irc.powertech.nof”的別名.是挪威一個著名的irc伺服器.

tcpdump抓到了連線irc伺服器的流量.正如下面的內容顯示,它連線到了”irc.powertech.no”,加入了”#aik”頻道.

我發現我朋友的伺服器使用的暱稱是”578PQB9NB”,還有一些其他的伺服器也在這裡.這些殭屍伺服器應該是正在等待著我們的入侵者加入頻道釋出命令.或者他已經潛藏在這裡了.我注意到,所有的暱稱都有一個字尾”\*-GTW”,只有一個沒有:

這是唯一一個加入了多個頻道的暱稱.我猜我已經找到這個入侵者了,除非這是一個故意迷惑的誘餌.(恩,這個入侵者真的真麼笨!!這麼容易就找到了!?).我決定等幾天看看有木有什麼有趣的事情發生.這個域名解析到了:

根據RIPE的資料,這個ip屬於Vienna University計算機中心,我發了一封郵件詢問關於這個域名的資訊,他們幾個小時後會我了:

看起來我不夠幸運.

接下來我曾嘗試連線irc頻道里其他殭屍主機的 54098埠,可惜都失敗了.看來其他的殭屍主機的後門可能使用的是別的埠.

連線到”83.18.74.235″的流量看起來很混亂.只好再次用strace命令:

跟預期的一樣,有很多輸出,其中一個是它嘗試啟動”BitchX”,這是一個irc客戶端.但是失敗了,因為BitchX沒有安裝:

下面的截圖是tcpdump抓到流量的一部分:

rq3

這僅僅是兩個假的smbd程式中的一個.另外一個也連到了兩個irc伺服器,一個是波蘭這個,另外一個是”irc.hitos.no”,位於挪威的特羅姆斯郡.

入侵者除了這些,還執行了一個叫”hide”的指令碼來清除日誌:

那麼這個入侵者為什麼還要把”/var/log/”目錄全刪除了呢,是不相信這個工具麼?還是他特別害怕?

可以看到這個伺服器被入侵了,安裝了後門而且加入了殭屍網咯.但是入侵者犯了幾個錯誤導致他可能被偵查到:

1, 忘記清除”.bash_history”檔案

2, “/var/log”目錄下所有檔案都刪除了.導致某些程式無法啟動.很容易被發現.

3, 修改了root的密碼.又是一個愚蠢的行為.永遠不要修改root密碼,這個必然會引起管理員的注意.

4, irc的頻道沒有密碼保護.雖然即使有密碼,我們也可以抓包分析出來.

5, 入侵者平時就在殭屍網路的頻道閒逛?如果是這樣的話那他已經暴露了.

當然還有幾個遺留的問題:

1,”ssh ftp@62.101.251.166″ 這個命令是幹嘛的.是入侵者不小心敲錯了麼還是有其他的目的?

2,跟83.18.74.235(manhattan.na.pl)的通訊內容是什麼?

3,最重要的問題是他一開始是如何或得下系統的許可權的?這個伺服器執行的是Ubuntu 6.06 LTS,打了最新的補丁.可能入侵的途徑:

*猜測root密碼,不幸的是這個密碼是強密碼*

*未知的exploit*

*某個使用者在已經被攻陷的主機上登入這臺伺服器.入侵者嗅探到了密碼.*

相關文章