Linux服務器被rootkit攻擊怎么辦(2)
5、查找攻擊原因
到這里為止,服務器上遭受的攻擊已經基本清晰了,但是入侵者是如何侵入這臺服務器的呢?這個問題很重要,一定要找到入侵的根源,才能從根本上封堵漏洞。
為了弄清楚入侵者是如何進入服務器的,需要了解下此服務器的軟件環境,這臺服務器是一個基于java的web服務器,安裝的軟件有apache2.0.63、tomcat5.5,apache和tomcat之間通過mod_jk模塊進行集成,apache對外開放80端口,由于tomcat沒有對外開放端口,所以將問題集中到apache上面。
通過查看apache的配置發現,apache僅僅處理些靜態資源請求,而網頁也以靜態頁面居多,所以通過網頁方式入侵系統可能性不大,既然漏洞可能來自于apache,那么嘗試查看apache日志,也許能發現一些可疑的訪問痕跡,通過查看access.log文件,發現了如下信息:
62.17.163.186 - - [29/Sep/2013:22:17:06 +0800] “GET http://www.xxx.com/cgi-bin/awstats.pl?configdir=|echo;echo;ps+-aux%00 HTTP/1.0” 200 12333 “-” “Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.1) Gecko/20121010 Firefox/2.0”
62.17.163.186 - - [29/Sep/213:22:17:35 +0800] “GET http://www.xxx.com/cgi-bin/awstats.pl?configdir=|echo;echo;cd+/var/tmp/。。./haha;ls+-a%00 HTTP/1.0” 200 1626 “-” “Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.1) Gecko/20121010 Firefox/2.0”
至此,發現了漏洞的根源,原來是awstats.pl腳本中configdir的一個漏洞,通過了解此服務器的應用,客戶確實是通過一個Awstats的開源插件來做網頁訪問統計,通過這個漏洞,攻擊者可以直接在瀏覽器上操作服務器,例如查看進程、創建目錄等。通過上面第二條日志可以看出,攻擊者正常瀏覽器執行切換到/var/tmp/。。./haha目錄的操作。
這個腳本漏洞挺可怕的,不過在Awstats官網也早已給出了修補的方法,對于這個漏洞,修復方法很簡單,打開awstats.pl文件,找到如下信息:
if ($QueryString =~ /configdir=([^&]+)/i)
{
$DirConfig=&DecodeEncodedString(“ class="main">
Linux服務器被rootkit攻擊怎么辦(2)
}
修改為如下即可:
if ($QueryString =~ /configdir=([^&]+)/i)
{
$DirConfig=&DecodeEncodedString(“ class="main">
Linux服務器被rootkit攻擊怎么辦(2)
$DirConfig=~tr/a-z0-9_\-\/\。/a-z0-9_\-\/\。/cd;
}
6、揭開謎團
通過上面逐步分析和介紹,此服務遭受入侵的原因和過程已經非常清楚了,大致過程如下:
(1)攻擊者通過Awstats腳本awstats.pl文件的漏洞進入了系統,在/var/tmp目錄下創建了隱藏目錄,然后將rootkit后門文件傳到這個路徑下。
(2)攻擊者通過植入后門程序,獲取了系統超級用戶權限,進而控制了這臺服務器,通過這臺服務器向外發包。
(3)攻擊者的IP地址62.17.163.186可能是通過代理過來的,也可能是攻擊者控制的其他肉雞服務器。
(4)攻擊者為了永久控制這臺機器,修改了系統默認帳號mail的信息,將mail帳號變為可登錄,并且設置了mail帳號的密碼。
(5)攻擊者在完成攻擊后,通過后門程序自動清理了系統訪問日志,毀滅了證據。
通過對這個入侵過程的分析,發現入侵者的手段還是非常簡單和普遍的,雖然入侵者刪除了系統的一些日志,但是還是留下了很多可查的蹤跡,其實還可以查看用戶下的.bash_history文件,這個文件是用戶操作命令的歷史記錄。
7、如何恢復網站
由于系統已經文件被更改和替換,此系統已經變得完全不可信,因此建議備份網站數據,重新安裝系統,基本步驟如下:
(1)安裝穩定版本的操作系統,刪除系統默認的并且不需要的用戶。
(2)系統登錄方式改為公鑰認證方式,避開密碼認證的缺陷。
(3)安裝更高版本的apache和最新穩定版本的Awstats程序。
(4)使用Linux下的Tcp_Wrappers防火墻,限制ssh登錄的源地址。
上面就是Linux服務器被rootkit攻擊后的處理方法,你要先對服務器進行分析,確實是否是rootkit攻擊所致,然后再根據具體情況進行恢復。