在powershell中最常使用的編碼就是base64編碼了,今天主要說(shuō)一下Invoke-Obfuscation 這個(gè)powershell混淆編碼框架,這也是著名的組織APT32 (海蓮花)經(jīng)常使用的一個(gè)工具。
地址:https://github.com/danielbohannon/Invoke-Obfuscation
下載后,在當(dāng)前目錄的ps命令行中輸入 Import-Module.\Invoke-Obfuscation.psd1; Invoke-Obfuscation 裝載框架

輸入set scriptblock ‘echo xss ‘ 這里輸入要編碼的powershell命令然后輸入ENCODING 就會(huì)列出以下幾種編碼方式

輸入1選擇ascii編碼

在Result中看到了編碼后的命令,可以直接在powershell里面執(zhí)行然后我們輸入back返回到上一層輸入launcher 選擇命令的啟動(dòng)方式,可以嘗試多種不同的方法結(jié)合。

輸入ps 然后選擇67 (67代表隱藏執(zhí)行與繞過(guò)執(zhí)行限制) 就會(huì)生成完整的混淆與編碼后的命令

輸入show options 打開(kāi)設(shè)置選項(xiàng)

我們也可以直接在ps的命令行中直接進(jìn)行編碼
Invoke-Obfuscation -ScriptBlock {echo xss} -Command 'Encoding\1,Launcher\PS\67' -Quiet

進(jìn)行多次編碼在進(jìn)行第一次編碼后然后輸入要編碼的類(lèi)型進(jìn)行二次編碼

選項(xiàng)中可以看到使用了2次編碼命令undo取消最近一次的編碼命令/reset取消所有的編碼命令

在系統(tǒng)日志中(%systemroot%\System32\winevt\powershell.evtx),通過(guò)混淆與編碼后的powershell命令更加增加了溯源的難度

總結(jié):
在windows環(huán)境下,使用powershell的攻擊者將會(huì)越來(lái)越多,通過(guò)對(duì)powershell 編碼與混淆,可以有效的繞過(guò)一些殺軟檢測(cè)并且更加具備隱藏的目的。同時(shí)也讓我們認(rèn)識(shí)到了powershell腳本的靈活性。
|