首頁  >  文章  >  運維  >  混淆變形的Webshel​​l分析是怎樣的

混淆變形的Webshel​​l分析是怎樣的

WBOY
WBOY轉載
2023-05-19 23:07:12866瀏覽

WebShell是什麼?

最初,Webshel​​l常被稱為一種供Web伺服器管理員遠端管理伺服器的腳本。後來,隨著一些Webshel​​l管理工具的誕生,使得獲取Web權限的過程被很大程度上地簡易化,於是逐漸被稱為Web入侵的工具腳本。

Webshel​​l不同於漏洞,而是利用應用漏洞或伺服器漏洞(檔案上傳漏洞、檔案包含漏洞等)將腳本檔案上傳到伺服器進行後續利用,屬於滲透測試的後續利用和ATT&CK的TA0002 Execution (執行)階段。

混淆變形的Webshel​​l分析是怎樣的

圖1 TA0002

參考來源:https://mitre-attack.github.io/attack-navigator/(ATT&CK導覽器)

攻擊者為了繞過偵測和防護設備、軟體等的偵測,都會經常變換自己的Webshel​​l寫法,可以保證功能的前提下確保自己的腳本不會被偵測到,其中php腳本較為突出,由於php腳本語言有許多可利用的函數,因此導致了php可以有千變萬化的混淆和變形寫法。

一句話木馬也屬於Webshel​​l腳本,對一句話木馬感興趣的小夥伴可以參考上期的《一句話木馬的多種變形方式》自行學習和了解,本期文章主要不再贅述。

背景

之前分析Webshel​​l時,發現有一類Webshel​​l完全能繞過各種不同的偵測軟體,這類腳本常常在程式碼層面看來似乎毫無意義,也沒有常見的Webshel​​l特徵,但經過層層的抽絲剝繭,就不難發現這一類混淆腳本的思路,剛好近期收到一個有趣的混淆腳本,向小伙伴分享該腳本的分析過程,也希望能起到拋磚引玉的作用。

初見腳本

第一眼看到這個腳本的時候就從他的內容中看到了明晃晃的eval函數,於是本能地將這一部分程式碼提取出來,但是還不足以證明什麼,因為內容部分全是看起來毫無頭緒的亂碼,沒有絲毫WebShell的痕跡。

仔細發現可以發現除了eval之外,還呼叫了gzinflate、base64_decode、str_rot13這三個函數,或許可以從這三個函數開始尋找分析的突破口。

混淆變形的Webshel​​l分析是怎樣的

圖2 腳本內容

函數解釋

str_rot13()

ROT13 編碼把每一個字母在字母表中向前移動13個字母。數字和非字母字元保持不變(凱撒加密)。

base64_decode()

對字串內容進行base64編碼。

Gzinflate

對資料預設使用ZLIB_ENCODING_RAW編碼方式,使用deflate資料壓縮演算法,實際上是先用LZ7壓縮,然後再用霍夫曼編碼壓縮。

分析

1.內容解析

混淆變形的Webshel​​l分析是怎樣的

圖3 呼叫echo指令

使用echo指令對內容進行解析,結果發現str_rot13()被執行了,於是重複這種思路,嘗試一層一層將原有內容剝離出來。

混淆變形的Webshel​​l分析是怎樣的

圖4 解析結果

2.重複解析

##經過三次echo在命令的重複解析之後,出現的終於不再是單調的程式碼了,證明分析的方向很可能是正確的,而且從程式碼的量來看感覺像是個擁有多種功能的木馬,俗稱大馬。

混淆變形的Webshel​​l分析是怎樣的

圖5 多次解析

3.呼叫eval函數來執行程式碼內容

#好傢伙,果然是個大馬。

經過究發現,木馬的功能包括了系統資訊取得、目錄讀取、檔案下載、檔案上傳等功能。

混淆變形的Webshel​​l分析是怎樣的

圖6 大馬原貌

以上是混淆變形的Webshel​​l分析是怎樣的的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除