在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腳本的靈活性。
* 本文作者:al0ne_,轉載請注明來自FreeBuf(FreeBuf.COM)https://www.freebuf.com/sectool/136328.html