PHP的網站,怎麼掃描出潛藏的一句話木馬?(經曆多個程式員,沒有純乾淨的備份檔案,無法比對)

來源:互聯網
上載者:User
關鍵字 XAMPP 2003 WIN PHP
PHP的網站,怎麼掃描出潛藏的一句話木馬?(經曆多個程式員,沒有純乾淨的備份檔案,無法比對),補充下,XAMPP程式,WIN 2003系統

回複內容:

我就不介紹工具了,搜一搜會有不少。
講下思路,方便那些寫工具或者自查的。
1.首先是把明顯有問題的、已知模式的後門揪出來。
基於專家經驗的特徵總結,網上搜集大量webshell,基本上可以提取出一份特徵庫,
差不多可以掃掉常見不做處理的後門。
2.處理那些在你已知範圍之外的後門,分為2個處理方式,
A 基於行為異常發現。
a)基於檔案資訊異常(如尾碼帶;的漏洞利用寫法、asa偽造asp檔案等,很多種)
b)檔案頭(如為繞過圖標題識別的gif9a,但其實是文本的)
c)檔案許可權異常的(抓那些和網站使用者權限不一樣,卻存在網站目錄的檔案)
d)檔案行異常少的(抓一句話木馬、菜刀馬,不管是否變形比較有用)
e)基於訪問日誌對比發現url訪問次數特別少的檔案,而且ip集中的(一般就是後門拉,只有駭客會訪問)
f)檔案建立日期異常,比如下班時間建立的網頁檔案、特別新的網頁檔案
e)太多了,大家舉一反三吧。
B 基於代碼異常發現
基本上,這塊大家用比較學術的方法,而且基本是靠演算法公式或者機器學習,效果從理論上應該是最靠譜,但是作為一個一線工程師,我不太傾向用此類方法。
基於樣本訓練的,有樸素貝葉斯和貝葉斯,神經元演算法,相當於你積累的特徵庫,要麼經過你肉身的神經元去提供專家經驗特徵庫,要麼經過機器學習演算法來算,就看是你的經驗厲害還是機器的經驗厲害。
還有基於IC、 資訊熵的,這塊沒實踐,可以參考。
3.處理掉經過特殊處理的
還有少部分淫蕩的老炮需要對付,那麼我們對加密、變形的模式也要針對性進行識別。
a)對經過加密的進行識別
b)對經過變形的進行識別
c)對檔案特徵進行多檔案切割的進行識別,就是互相參考關聯性需要處理。
……大家擴充吧。

總之招數不限,但是心法比較重要:
1. 過濾95%以上的明顯合法檔案,用人去確認5%不確定的,並且這裡面提供一些分析結果參考
2. 黑名單不如白名單靠譜,因此建立一個乾淨的代碼指紋庫也很重要,對比一下能搞定大部分情況

最後出個損招,你代碼發布不頻繁,那就把代碼都刻盤好了,光碟機可讀不可寫。

PS。忽然搜到自己09年寫的貝葉斯、舍費爾特徵識別,沒想到自己當年這麼叼……
細節早忘光了,所以那些玩意的效果,你懂的。。。參考:http://www.cnxct.com/pecker-scanner/ 一般哥都是直接用editplus的檔案夾搜尋功能搜尋
eval($_POST 等敏感關鍵字,還有通過檔案建立時間來判斷。
個人覺得,找webshell這些都屬於事後諸葛亮
還是得從控制讀寫權限,禁用危險php函數,降低web伺服器運行許可權等預防措施入手這個問題比較難回答,php語言屬於鬆散語言,對於簡單的一句話來說用特徵用可以查,但對於變形木馬就難的多了,當然我一般都不叫php木馬而叫後門檢查、或者是webshell檢查。
對於異常函數eval等方式的檢查用正則去匹配就可以,但會產生大量的錯報,這樣,這個是我寫了個程式並且構造了一些php一句話來測試。
要檢查php木馬需要先搞清楚,哪些函數可能會被php木馬使用,比如eval、base64_encode(gzuncompress) 這種是使用base64加密php木馬函數,還有等等。要檢查php木馬需要先搞清楚,哪些函數可能會被php木馬使用,比如eval、base64_encode(gzuncompress) 這種是使用base64加密php木馬函數,還有等等。

對於php變形後門,看到這裡你就會發現去尋找php木馬會是多難的事情了,這裡的一部分是可以用正則來匹配的,但是另外一部分你用正則匹配會非常、非常難。
[]
[] Found
[$___=$_*$_+$__+$__+$__+$__+$__+$__+$__;] Found
[$_=($_[+""]|"0x06").($_[+""]|"0x05").($_[+""]^"0x15");] Found
[] Found
[@preg_replace('/ad/e','@'.str_rot13('riny').'($b4dboy)', 'add');]
[?]
[@preg_replace("/[pageerror]/e",$_POST['error'],"saft")] Found
[[$_GET[a]($_GET[b])] Found
[@preg_replace("/[email]/e",$_POST['h'],"error")] Found
[]

推薦下項目,這個項目是基於語義解析,然後尋找出來惡意函數調用。Pecker Scanner 不是業內從業者,僅從原理說兩句。
1、木馬必須對外聯絡,不把所得資訊對外傳遞的,不叫木馬。
只破壞,不竊取資訊的叫病毒
2、掃描網站中所有的的互連網地址。
3、剩下的,就人工審核吧,如果可以的話,對外聯絡採用白名單制。https://www.fanghuyun.com/ 在用這個網站 防護掃描都很好一般就是基於關鍵字的正則匹配和基於詞法文法分析兩種方法,個人認為基於詞法文法分析的方法更準確些吧,同樣推薦樓上幾位提到 Pecker Scanner。
===============
另外說點題外話,今天特意花了點時間看了看 PS 的代碼,給作者 @陳小魚 提個 BUG,在對
T_STRING

把和檔案操作,調用系統命令相關的代碼都找出來,再依次排查。

一些函數變種太多,工具只能掃描一些危險函數關鍵詞
建議你人工審計吧..
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.