您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關對混淆變形的Webshell分析是怎樣的,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
在最初的時候,Webshell經常被用來作為Web服務器管理員對服務器進行遠程管理的一類腳本的簡稱。后來,隨著一些Webshell管理工具的誕生,使得獲取Web權限的過程被很大程度地簡易化,于是逐漸被稱為Web入侵的工具腳本。
Webshell不同于漏洞,而是利用應用漏洞或服務器漏洞(文件上傳漏洞、文件包含漏洞等)將腳本文件上傳到服務器進行后續利用,屬于滲透測試的后續利用和ATT&CK的TA0002 Execution(執行)階段。
圖1 TA0002
參考來源:https://mitre-attack.github.io/attack-navigator/(ATT&CK導航器)
攻擊者為了繞過檢測和防護設備、軟件等的檢測,都會經常變換自己的Webshell寫法,可以保證功能的前提下確保自己的腳本不會被檢測到,其中php腳本較為突出,由于php腳本語言存在很多可利用的函數,因此導致了php可以有千變萬化的混淆和變形寫法。
一句話木馬也屬于Webshell腳本,對一句話木馬感興趣的小伙伴可以參考上期的《一句話木馬的多種變形方式》自行學習和了解,本期文章主要不再贅述。
之前分析Webshell時,發現有一類Webshell完全能繞過各種各樣的檢測軟件,這類腳本常常在代碼層面上看似乎毫無意義,也沒有常見的Webshell特征,但經過層層的抽絲剝繭,就不難發現這一類混淆腳本的思路,剛好近期收到一個有趣的混淆腳本,向小伙伴分享該腳本的分析過程,也希望能起到拋磚引玉的作用。
第一眼看到這個腳本的時候就從他的內容中看到了明晃晃的eval函數,于是本能地將這一部分代碼提取出來,但是還不足以證明什么,因為內容部分全是看起來毫無頭緒的亂碼,沒有絲毫WebShell的痕跡。
仔細發現可以發現除了eval之外,還調用了gzinflate、base64_decode、str_rot13這三個函數,或許可以從這三個函數入手尋找分析的突破口。
圖 2 腳本內容
str_rot13()
ROT13 編碼把每一個字母在字母表中向前移動13個字母。數字和非字母字符保持不變(凱撒加密)。
base64_decode()
對字符串內容進行base64編碼。
Gzinflate
對數據默認使用ZLIB_ENCODING_RAW編碼方式,使用deflate數據壓縮算法,實際上是先用LZ7壓縮,然后用霍夫曼編碼壓縮。
圖 3 調用echo命令
使用echo命令對內容進行解析,結果發現str_rot13()被執行了,于是重復這種思路,嘗試一層一層將原有內容剝離出來。
圖 4 解析結果
經過三次echo命令的重復解析之后,出現的終于不再是單調的代碼了,證明分析的方向很可能是正確的,而且從代碼的量來看感覺像是個擁有多種功能的木馬,俗稱大馬。
圖5 多次解析
好家伙,果然是一個大馬。
經過究發現,該木馬的功能包括了系統信息獲取、目錄讀取、文件下載、文件上傳等功能。
圖6 大馬原貌
看完上述內容,你們對對混淆變形的Webshell分析是怎樣的有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。