Linux服務器被rootkit攻擊怎么辦(2)
5、查找攻擊原因
到這里為止,服務器上遭受的攻擊已經(jīng)基本清晰了,但是入侵者是如何侵入這臺服務器的呢?這個問題很重要,一定要找到入侵的根源,才能從根本上封堵漏洞。
為了弄清楚入侵者是如何進入服務器的,需要了解下此服務器的軟件環(huán)境,這臺服務器是一個基于java的web服務器,安裝的軟件有apache2.0.63、tomcat5.5,apache和tomcat之間通過mod_jk模塊進行集成,apache對外開放80端口,由于tomcat沒有對外開放端口,所以將問題集中到apache上面。
通過查看apache的配置發(fā)現(xiàn),apache僅僅處理些靜態(tài)資源請求,而網(wǎng)頁也以靜態(tài)頁面居多,所以通過網(wǎng)頁方式入侵系統(tǒng)可能性不大,既然漏洞可能來自于apache,那么嘗試查看apache日志,也許能發(fā)現(xiàn)一些可疑的訪問痕跡,通過查看access.log文件,發(fā)現(xiàn)了如下信息:
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”
至此,發(fā)現(xiàn)了漏洞的根源,原來是awstats.pl腳本中configdir的一個漏洞,通過了解此服務器的應用,客戶確實是通過一個Awstats的開源插件來做網(wǎng)頁訪問統(tǒng)計,通過這個漏洞,攻擊者可以直接在瀏覽器上操作服務器,例如查看進程、創(chuàng)建目錄等。通過上面第二條日志可以看出,攻擊者正常瀏覽器執(zhí)行切換到/var/tmp/。。./haha目錄的操作。
這個腳本漏洞挺可怕的,不過在Awstats官網(wǎng)也早已給出了修補的方法,對于這個漏洞,修復方法很簡單,打開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、揭開謎團
通過上面逐步分析和介紹,此服務遭受入侵的原因和過程已經(jīng)非常清楚了,大致過程如下:
(1)攻擊者通過Awstats腳本awstats.pl文件的漏洞進入了系統(tǒng),在/var/tmp目錄下創(chuàng)建了隱藏目錄,然后將rootkit后門文件傳到這個路徑下。
(2)攻擊者通過植入后門程序,獲取了系統(tǒng)超級用戶權限,進而控制了這臺服務器,通過這臺服務器向外發(fā)包。
(3)攻擊者的IP地址62.17.163.186可能是通過代理過來的,也可能是攻擊者控制的其他肉雞服務器。
(4)攻擊者為了永久控制這臺機器,修改了系統(tǒng)默認帳號mail的信息,將mail帳號變?yōu)榭傻卿洠⑶以O置了mail帳號的密碼。
(5)攻擊者在完成攻擊后,通過后門程序自動清理了系統(tǒng)訪問日志,毀滅了證據(jù)。
通過對這個入侵過程的分析,發(fā)現(xiàn)入侵者的手段還是非常簡單和普遍的,雖然入侵者刪除了系統(tǒng)的一些日志,但是還是留下了很多可查的蹤跡,其實還可以查看用戶下的.bash_history文件,這個文件是用戶操作命令的歷史記錄。
7、如何恢復網(wǎng)站
由于系統(tǒng)已經(jīng)文件被更改和替換,此系統(tǒng)已經(jīng)變得完全不可信,因此建議備份網(wǎng)站數(shù)據(jù),重新安裝系統(tǒng),基本步驟如下:
(1)安裝穩(wěn)定版本的操作系統(tǒng),刪除系統(tǒng)默認的并且不需要的用戶。
(2)系統(tǒng)登錄方式改為公鑰認證方式,避開密碼認證的缺陷。
(3)安裝更高版本的apache和最新穩(wěn)定版本的Awstats程序。
(4)使用Linux下的Tcp_Wrappers防火墻,限制ssh登錄的源地址。
上面就是Linux服務器被rootkit攻擊后的處理方法,你要先對服務器進行分析,確實是否是rootkit攻擊所致,然后再根據(jù)具體情況進行恢復。