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

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

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

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

工具目录

分类

查看所有分类
Loading categories
DCOMrade — 用于枚举易受攻击的DCOM应用程序的Powershell脚本 | Kitploit
工具/GitHubGitHub/sud0woodo/dcomrade
漏洞分析横向移动后渗透利用渗透测试红队
GitHubsud0woodo/dcomrade

DCOMrade

用于枚举易受攻击的DCOM应用程序的Powershell脚本

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

DCOMrade

DCOMrade 是一个 PowerShell 脚本,用于枚举可能允许横向移动、代码执行、数据泄露等的潜在易受攻击的 DCOM 应用程序。该脚本基于 PowerShell 2.0 构建,但也适用于所有更高版本。目前支持以下 Windows 操作系统(包括 x86 和 x64):

  • Microsoft Windows 7
  • Microsoft Windows 10
  • Microsoft Windows Server 2012 / 2012 R2
  • Microsoft Windows Server 2016

背景

我目前在 HackDefense 实习,研究现有的 DCOM 横向移动技术,并试图找到一种自动化枚举这些技术(以及可能的新技术)的方法。这项研究促成了该脚本以及相关研究论文的诞生,论文链接如下。

工作原理

该脚本基于 Matt Nelson(@enigma0x3)的研究,特别是 第二回合 博文中关于寻找可能对渗透测试人员和红队有用的 DCOM 应用程序的内容。

首先,与目标系统建立远程连接,该连接在脚本中用于多种操作。在目标系统上执行一条 PowerShell 命令,用于检索所有 DCOM 应用程序及其 AppID。然后循环遍历 Windows 注册表,检查每个 AppID 的注册表项是否设置了 LaunchPermission 子项。如果没有设置,则存储这些 AppID,并用于获取其关联的 CLSID。

脚本为每个操作系统使用特定的黑名单,因此有不同的目标操作系统选项。黑名单会跳过那些可能因 DCOM 应用程序无法激活而导致脚本挂起的 CLSID 条目,从而减少对目标系统的负载并缩短脚本完成时间。

利用 CLSID,可以激活与之关联的 DCOM 应用程序。使用 'Shortcut' 的 CLSID 来计算其关联的 MemberTypes 数量,用于检查默认数量的 MemberTypes。该数字用于检测那些 MemberTypes 数量与此不同的 CLSID。脚本使用 'Shortcut' 的 CLSID(HKEY_CLASSES_ROOT\CLSID\{00021401-0000-0000-C000-000000000046}),因为这是跨 Microsoft Windows 操作系统共享的 CLSID。MemberTypes 数量不同的 CLSID 可能包含可以(被滥用)的 Method 或 Property,这些 CLSID 会被添加到一个数组中。

数组中的 CLSID 会检查 MemberTypes 中的字符串,这些字符串可能指示可(被滥用)的方式。该字符串列表可在 VulnerableSubset 文件中找到。请注意,此列表绝非查找每个易受攻击的 DCOM 应用程序的完整列表,但作为过程中的动态部分,它应允许脚本用户查找可能指示 DCOM 应用程序功能且对其目的有用的特定字符串。

脚本的结果以 HTML 报告形式输出,可作为审计系统的预防性措施。对于攻击方面,我创建了一个 Empire 模块,在撰写本文时,该模块正在等待批准添加到主分支。如果您想自行将该模块添加到 Empire,可以通过添加位于 此处 的模块来实现。

有关该想法、脚本以及可能的检测方法的完整技术说明,您可以阅读相关的 研究论文。

先决条件

该脚本(当不作为 Empire 模块使用时)存在一些限制,因为其工作方式及与目标计算机的连接方式有所不同。

  • 要使脚本正常工作,需要在 Windows 防火墙中允许 Windows 远程管理服务(5985 端口);
  • 如果目标系统的网络配置文件设置为“公共”,则需要在目标系统上执行以下命令以允许使用 Windows 远程管理服务:Enable-PSRemoting -SkipNetworkProfilecheck -Force
  • 该脚本仅在拥有目标系统上的本地管理员凭据时才能工作。没有这些凭据,将无法启动与目标计算机的远程会话,也无法激活 DCOM 应用程序。

使用示例

在 Microsoft Windows 域环境中:

root@kitploit:~
.\DCOMrade.ps1 -ComputerName [计算机名 / IP] -User [本地管理员] -OS [操作系统] -Domain [域名]

不在 Microsoft Windows 域环境中:

root@kitploit:~
.\DCOMrade.ps1 -ComputerName [计算机名 / IP] -User [本地管理员] -OS [操作系统]

限制

  • 目前,脚本确实尝试释放任何已实例化/激活的 DCOM 应用程序,但某些激活会启动新的进程(例如 Internet Explorer)。虽然可以停止该进程,但这也意味着如果目标系统上的用户正在使用该特定应用程序,该进程也会停止。
  • 另一个问题(可能与我糟糕的编码技能有关)是,如果目标系统资源不足,脚本可能会给目标系统带来相当大的负载。在生产环境或服务器上使用时请注意。
  • 脚本可能需要一些时间才能完全执行,这取决于 DCOM 应用程序的数量和易受攻击子集文件的大小。

致谢

该脚本的灵感来自 Eva Tanaskoska 提供的 DCOM 横向移动研讨会。没有这个研讨会,尝试以自动化方式枚举这些技术的整个想法永远不会产生。

感谢 Matt Nelson(又名 @enigma0x3)的研究,我得以找到足够的信息来实现一种自动化形式。

Philip Tsukerman 的 文章 总结了大多数可用于横向移动的 DCOM 技术,并深入解释了它们的工作原理。

下载工具