eSafe白帽駭客資安網-網絡安全背後的巨人,提供駭客,網站入侵測試,網站被駭,網站漏洞,駭客入侵,資訊安全,入侵,ecshop,wordpress,漏洞修復,木馬清除,資安服務

BASE64一句話網站木馬後門檢測與清除



                 網站木馬檢測,是基於含有惡意代碼特徵的一項網站安全檢測,關於網站木
 
     馬後門,分很多種,有PHP網站木馬,asp網站大馬,JSP網站木馬,一句話木馬後
 
門,PHP小馬,ASP小馬,等等的網站木馬,關於BASE64一句話後門木馬的檢測與清
 
除,今天詳細的介紹一下。
 
 
先大致講一下,任何由 {A-Z|a-z|0-9|+|/} 組合的字符串(如果不夠4的倍數可以
 
用'='補全),如果長度為4的倍數,則都可以作為base64解碼的材料,而在
 
base64decode的時候,會產生原字符串包含字符集以外的字符,舉個例子:
 
字符串esafe進行base64解碼:

 
結果為i��,有一部分為亂碼,不過不要緊,因為至少產生了一個多餘的、可以被
 
利用的字符i,如果是md5那樣的哈希編碼,多一位字母,編碼後的整個字符串就完
 
全不一樣了,但是base64不一樣。eSafe白帽資安網公司是一家專注於:主機安全、

站安全
、網站安全檢測、網站漏洞修復,滲透測試,安全服務於一體的網絡安全服務

提供商。



 
 
我們再來看一下什麼是base64,base64編碼是一種基於64個可打印字符來表示二進
 
制數據的表示方法,由於2的6次方等於64,所以每6個比特為一個單元,對應某個
 
可打印字符,三個字節有24個比特,對應於4個Base64單元,即3個字節可表示4個
 
可打印字符,也就是說3個字節進行base64編碼之後是4個字節,四個字節解碼後為
 
三個字節。
 
 
base64一句話木馬後門還有一個特性,就是會自動拋棄不符合要求的字符,如果要
 
進行解密的base64字符串包括有不合法的字符,也就是不在集合 {A-Z|a-z|0-9|
 
+|/} 裡,同時也不是末尾的等號的字符。會被自動拋棄。
 

 
三個網站木馬的相關背景知識點:
 
編碼和解碼不是唯一對應,就是說字母a可能通過不同的,其它字符的組合進行
 
base64解碼解出來。(組合種類遠多於base64的合法字符種類)
 
 
被解碼的字符,以四位為一個單位,多個單位組合起來,進行多次解密,得到
 
的結果和組合的順序相同。eSafe白帽資安網公司是一家專注於:主機安全、網站安全、

網站安全檢測、網站漏洞修復,滲透測試,安全服務於一體的網絡安全服務提供商。

 
 
我們的一句話<?php @eval($_POST[a]);?>,可以通過解密另一個字符串,我們
 
假設為字符串一號獲得,而字符串一號可以通過解密字符串二號獲得,並且這種序
 
列不是唯一的。我們有可能找到僅僅由acgtACGT這8個字符組合起來的一串字符,
 
這串字符在經過n次解密後的結果為我們的一句話木馬。當然,在這個過程中,要
 
保證四位一組,否則會亂序。
 
如下圖:
 

 
 
首先輸出了base64_chars,這是在之前的 base64_chars = string.letters + 
 
string.digits + "+/" 中定義好的。base64除了‘=’以外可能會用到的字符串。
 
然後tables = enmu_tables(set(chars))將可以使用的8個字符帶入了
 
enmu_tables()函數。

 
我們跟進enmu_tables()函數,它將我們可以使用的8個字符帶入enmu_table()函數
 
,四位為一組進行組合,然後進行base64解碼,生成了一個list,這個list的key
 
值為所有acgtACGT組合能夠生成的合法數字(再帶兩個注定要被遺棄的非法數字)
 
,value值為生成這個合法數字的‘acgtACGT’四位字符組合。
 
 
我們可以把一句話密碼中的字符分隔開,挨個去最後一個表(64個key)中尋找由
 
第二次循環生成的57個字符組成的4位字符串。找到之後,再去第二個表中,將目
 
前的這些字符,用第一次循環得到的26位字符串的4位組合替換掉,然後再去第一
 
個表中,找到用最初始的8位字符組成的四位字符串替換.根據base64的特徵,我們

可以一點一點去解密一句話木馬後門,凡是網站使用了
base64代碼的程序文件,基

本上可以判定是網站木馬,進一步的木馬確認,需要一
層層的解密base64的編碼。

關於BASE64一句話網站木馬就先講到這裡。
分享: