目录导航
在准备 VBS AV Evasion Stream/Video 时,我正在研究 Office 宏代码执行方法和杀毒软件绕过技术。
列表越来越长,我发现没有攻击性 VBA 模板的中心位置 – 所以这个 repo 可以用于此类。它离完成还很远。如果您知道任何其他很酷的技术或有用的模板,请随时贡献并创建拉取请求!
这个 repo 中的大多数模板已经在某个地方发布了。我只是从 ms-docs 站点、博客文章或其他工具中复制粘贴了大多数模板。
文件 | 描述 |
---|---|
ShellApplication_ShellExecute.vba | 通过 ShellApplication 对象和 ShellExecute 方法执行 OS 命令 |
ShellApplication_ShellExecute_privileged.vba | 通过 ShellApplication 对象和 ShellExecute 方法执行特权操作系统命令 – UAC 提示 |
Shellcode_CreateThread.vba | 通过Win32 CreateThread在当前进程中执行shellcode |
Shellcode_EnumChildWindowsCallback.vba | 通过EnumChildWindows在当前进程中执行shellcode |
Win32_CreateProcess.vba | 通过 Win32 CreateProcess 函数创建代码执行的新进程 |
Win32_ShellExecute.vba | 通过 Win32 ShellExecute 函数创建代码执行的新进程 |
WMI_Process_Create.vba | 通过 WMI 创建新进程用于代码执行 |
WMI_Process_Create2.vba | 另一个 WMI 代码执行示例 |
WscriptShell_Exec.vba | 通过 WscriptShell 对象和 Exec 方法执行 OS 命令 |
WscriptShell_run.vba | 通过 WscriptShell 对象和 Run 方法执行 OS 命令 |
VBA-RunPE | @itm4n在 VBA 中的RunPE 技术 |
GadgetToJScript | med0x2e 的C# 脚本,用于生成 .NET 序列化小工具,当使用来自基于 JS/VBS/VBA 的脚本的 BinaryFormatter 反序列化时,这些小工具可以触发 .NET 程序集加载/执行。 |
PPID_Spoof.vba | christophetd 的 欺骗办公室宏副本 |
AMSIBypass_AmsiScanBuffer_ordinal.vba | rmdavy 的 AMSI Bypass 使用序号值绕过签名来修补 AmsiScanBuffer |
AMSIBypass_AmsiScanBuffer_Classic.vba | rasta-mouse 的经典 AmsiScanBuffer 补丁 |
AMSIBypass_Heap.vba | rmdavy 的 HeapsOfFun 存储库副本 |
AMSIbypasses.vba | outflanknl 的 AMSI 绕过博客 |
COMHijack_DLL_Load.vba | 通过 COM 劫持加载 DLL |
COM_Process_create.vba | 通过 COM 对象创建进程 |
下载_Autostart.vba | 从远程网络服务器下载文件并将其放入 StartUp 文件夹 |
下载_Autostart_WinAPI.vba | 通过 URLDownloadtoFileA 从远程网络服务器下载文件并将其放入 StartUp 文件夹 |
Dropper_Autostart.vba | 将批处理文件放入启动文件夹 |
Registry_Persist_wmi.vba | 通过 WMI 创建用于持久性的启动注册表项 |
Registry_Persist_wscript.vba | 通过 wscript 对象为持久性创建启动注册表项 |
ScheduledTask_Create.vba | 为代码执行/持久性创建和启动调度任务 |
XMLDOM_Load_XSL_Process_create.vba | 从远程 Web 服务器加载 XSL 以执行代码 |
regsvr32_sct_DownloadExecute.vba | 执行 regsvr32 下载远程网络服务器 SCT 文件以执行代码 |
区块ETW.vba | 修补 ntdll.dll 中的 EtwEventWrite 以阻止 ETW 数据收集 |
BlockETW_COMPLUS_ETWEnabled_ENV.vba | 通过COMPLUS_ETWEnabled为0的环境变量,信贷设置为阻止ETW数据收集@ XPN |
ShellWindows_Process_create.vba | ShellWindows 进程创建以获取 explorer.exe 作为父进程 |
AES.vba | 从这里在 VBA 中使用 AES 加密/解密的示例 |
Dropper_Executable_Autostart.vba | 从 VBA 获取可执行字节并放入自动启动 – 在这种情况下无需下载 |
MarauderDrop.vba | 将 COM 注册的 .NET DLL 放入 temp,导入函数并执行代码 – 在这种情况下,将远程 C# 二进制文件从网络服务器加载到内存并执行 – 归功于@Jean_Maes_1994的MaraudersMap |
Dropper_Workfolders_lolbas_Execute.vba | 将嵌入式可执行文件放入 TEMP 目录并使用 C:\windows\system32\Workfolders.exe 作为 LOLBAS 执行它 – 归功于@YoSignals |
沙盒规避 | 一些 SandBox Evasion 模板 |
Evasion Dropper Autostart.vba | 通过重命名文件夹操作将文件放置到启动目录绕过文件写入监控 |
Evasion MsiInstallProduct.vba | 使用 WindowsInstaller ActiveXObject 安装远程 MSI 包,避免产生可疑的 office 子进程,msi 安装将作为 MSIEXEC /V service |
StealNetNTLMv2.vba | 通过共享连接窃取 NetNTLMv2 哈希 – 归功于https://book.hacktricks.xyz/windows/ntlm/places-to-steal-ntlm-creds |

待办事项
混淆器/payload生成器
- VBad
- wePWNise
- VisualBasicObfuscator – 需要一些修改,因为它不会拆分行,因此不适用于办公文档宏
- macro_pack
- shellcode2vbscript.py
- EvilClippy
- OfficePurge
- SharpShooter
- VBS-Obfuscator-in-Python – – 需要一些修改,因为它不会拆分行,因此不适用于办公文档宏
有用资源
ASR 绕过:blog.sevagas.com/IMG/pdf/bypass_windows_defender_attack_surface_reduction.pdf
Shellcode 到 VBScript 的转换:
github.com/DidierStevens/DidierStevensSuite/blob/master/shellcode2vbscript.py
在 VBA 中绕过 AMSI:
https://outflank.nl/blog/2019/04/17/bypassing-amsi-for-vba/
VBA 清除:
www.mandiant.com/resources/purgalicious-vba-macro-obfuscation-with-vba-purging
F-Secure VBA 规避和检测帖子:
blog.f-secure.com/dechaining-macros-and-evading-edr/
另一个 F-Secure 博客:
labs.f-secure.com/archive/dll-tricks-with-vba-to-improve-offensive-macro-capability/