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

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

輸入1選擇ascii編碼

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

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

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

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

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

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

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

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