Skip to content
KitploitKITPLOIT
工具博客
Log in
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
vba2clr — 运行来自 VBA 的 .NET | Kitploit
工具/GitHubGitHub/med0x2e/vba2clr
脚本与自动化后渗透利用红队Payload 开发对抗性攻击
GitHubmed0x2e/vba2clr

vba2clr

运行来自 VBA 的 .NET

查看仓库
14720133年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

摘要:

只是尝试使用 AppDomain.ExecuteAssembly 或其他任何方便的方法,在绕过 VBA 中的 AccessVBOM(对 Visual Basic 项目的编程访问不受信任)之后,以本地和远程方式在 VBA 中加载 CLR(.NET)程序集。

  • vba2clr.*.vba:
    • 将 AccessVBOM 注册表项设置为 1
    • 实例化一个 Word.Application COM 对象(可以是 Excel.Application、MS PowerPoint、Access 等)。
    • 从字符串添加宏(宏对应于 b64/hex 编码的 ExecuteAssembly.vba)
    • 使用 wordObj.Application.Run... 运行 ExecuteAssembly.vba 宏

从 VBA 调用 .NET:

  • ExecuteAssembly.clr.2.0.vba: 支持 .NET 3.5 及以下版本

    • 添加所需的 mscordlib 引用
    • 实例化所需的对象(IDomain、ICRHost)
    • 将 AppDomain.ExecuteAssembly 所需的参数打包到两个独立的数组(变量、类型)中。
    • 使用 DispCallFunc 调用 AppDomain.ExecuteAssembly(Arg1, Arg2)(VFTable 偏移量 51),其中 Arg1 是“.NET 程序集 URL”或“本地路径”,Arg2 是返回值。
    • AppDomain 方法的 VFTable 偏移量可以在 AppDomain IDL _AppDomain.idl 中查看,只需记住 AppDomain 接口继承自 IUnknown 接口,因此函数/方法的 VTable 偏移量从第三个偏移量开始,这是因为继承自 IUnknown 的接口,其 vtable 的前 3 个条目设置为 QueryInterface、AddRef、Release 方法。
    • 也可以使用 WinDbg 或 IDA 作为提取函数/方法 VTable 偏移量的替代方案。
  • ExecuteAssembly.clr.x.vba: 支持 .NET 2、3.5 和 4.x

OPSEC 注意事项:

  • 为 Word.Application(或 Excel.Application 等)创建 COM 对象,将会生成一个额外的 WinWord.exe,作为 svchost.exe 的子进程,而不是主 WinWord.exe 进程。
  • AccessVBOM 注册表项通过 COM 使用 WScript.Shell 进行修改/恢复,使用 Win32 API 可能是更好的替代方案。
  • 在 VBA 中使用 Win32 API 托管 CLR 显然比更新 AccessVBOM 注册表项更安全,这一点留到改天再谈……
  • 其他 .NET API(如 System.CodeDom.Compiler)可用于从 VBA 编译/执行 C# 代码,请参阅下面的参考;

参考:

  • https://github.com/jet2jet/vb2clr
  • https://github.com/med0x2e/NET-Assembly-Inject-Remote
下载工具