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

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

輸入1選擇ascii編碼

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

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

輸入show options 打開設置選項

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

進行多次編碼在進行第一次編碼后然后輸入要編碼的類型進行二次編碼

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

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

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