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

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

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

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

工具目录

分类

查看所有分类
Loading categories
sccmhound — 用于 Microsoft Configuration Manager 的 BloodHound 收集器 | Kitploit
工具/GitHubGitHub/crowdstrike/sccmhound
侦察横向移动信息收集渗透测试
GitHubcrowdstrike/sccmhound

sccmhound

用于 Microsoft Configuration Manager 的 BloodHound 收集器

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

SCCMHound

SCCMHound 是一个用于 Microsoft Configuration Manager (MCM) 的 C# BloodHound 收集器。如果您正在寻找一种从 Configuration Manager 的用户和计算机中收集 BloodHound 会话信息的方法,那么这个工具正是您所需要的!

强烈建议将收集到的数据与其他收集器的数据(SharpHound、SOAPHound 等)一起导入。无论是在其他数据集之前还是之后导入都没有关系。这样可以获得目标组织 Active Directory 关系的全面概览,并辅以从 Configuration Manager 收集的信息。

支持声明

SCCMHound 是一个开源项目,不是 CrowdStrike 产品。因此,它不提供任何明示或暗示的正式支持。

要求

SCCMHound 以 .NET 4.6.2 为目标,以确保与 Windows 10 版本 1607 及更高版本兼容。

需要具有足够权限查询用户和计算机信息的 MCM 管理员帐户。根据收集方法的不同,还需要能够执行 CMPivot 查询。该工具已在分配了 MCM“完全管理员”角色的用户下进行了测试。

可以从 MCM 控制台或使用其他工具(如 SharpSCCM)获取服务器和站点代码。 console

如何构建?

首先,您需要克隆仓库。必须指定 --recursive,因为 SCCMHound 使用 SharpHoundCommon 作为子模块。

例如:git clone [email protected]:CrowdStrike/sccmhound.git --recursive

获得本地副本后,在 Visual Studio 中打开 SCCMHound.sln 并编译!

如何运行?

要使用默认收集方法,只需提供服务器和站点代码参数。SCCMHound 将使用调用它的执行上下文来向 MCM 进行身份验证。例如:

root@kitploit:~
SCCMHound.exe --server <server> --sitecode <sitecode>

要从另一个用户的上下文或未加入域的主机上执行 SCCMHound,需要 -u(--username)、-p(--password)和 -d(--domain)参数。例如:

root@kitploit:~
SCCMHound.exe --server <server> --sitecode <sitecode> -u <username> -p <password> -d <domain>

或者,也可以在调用 SCCMHound 之前使用 runas /netonly:

root@kitploit:~
runas /netonly /user:[email protected] cmd.exe
cd C:\path\to\SCCMHound
SCCMHound.exe --server <server> --sitecode <sitecode>

这有什么用?

还记得 BloodHound 会话数据很容易收集的时候吗?好吧…… beforeafter

漂亮的凭据窃取和横向移动图!!! graph

这个“怪物”该怪谁?

作者与贡献者

在维护者扩展收集的数据源并修复各种 bug 期间,请善待他们 :)

我只想直接运行并收集所有东西!!!

好吧,好吧……这会调用所有收集方法(包括 CMPivot 收集方法):

root@kitploit:~
SCCMHound.exe --server <server> --sitecode <sitecode> -c All

CLI 参数

root@kitploit:~
  --server                   Required. SCCM server hostname/IP address.

  --sitecode                 Required. SCCM sitecode.

  -c, --collectionmethods    (Default: Default) (LocalAdmins, CurrentSessions, All)

  --loop                     (Default: false) Enable loop collection.

  --loopduration             (Default: 00:30:00) Loop Duration.

  --loopsleep                (Default: 60) Sleep time between loops in seconds.

  --hc                       (Default: false) Health check. Simply tests authentication and exits.

  -u, --username             SCCM administrator username.

  -p, --password             SCCM administrator password.

  -d, --domain               SCCM administrator domain.

  -v, --verbose              (Default: false) Print verbose information to help with troubleshooting.

  --help                     Display this help screen.

  --version                  Display version information.

收集方法

默认

默认收集方法(未指定/无需 -c 参数)仅通过与指定 MCM 站点服务器的 WMI 连接来构建 BloodHound 数据集。此收集方法将收集:

  • MCM 数据集中的域
  • MCM 数据集中的用户
  • MCM 数据集中的组
  • MCM 数据集中的计算机

此收集方法会收集 MCM 中每个 Computer 对象的当前登录用户信息。其局限性在于,无论是否有多个用户通过身份验证,它都只收集 MCM 报告的已登录用户。

SCCMHound 仅自动填充用户的组成员身份。ConfigMgr 中的组对象似乎不包含子组或父组信息,因此 BloodHound 中的组只会显示用户成员。这需要进一步调查,如果与其他数据集(SharpHound、SOAPHound 等)一起导入,则不会成为问题。

要使用此收集方法获得更大的会话覆盖范围,可以使用 --loop 参数定期收集会话信息。

LocalAdmins(CMPivot 机制)

此收集方法(-c LocalAdmins)执行“默认”收集方法的行为,同时查询“所有系统”集合,以收集每台由 MCM 管理的计算机上本地 Administrators 组的内容。

注意 (1):此收集方法仅查询在线的设备。可以结合 --loop 参数使用以获得更好的覆盖范围。 注意 (2):此收集方法使用 CMPivot 对所有成员执行查询。

CurrentSessions(CMPivot 机制)

此收集方法(-c CurrentSessions)执行“默认”收集方法的行为,同时查询“所有系统”集合,以收集每台由 MCM 管理的计算机的实时会话信息。

此收集方法仅查询当前在线的设备。可以结合 --loop 参数使用以获得更好的覆盖范围。

注意 (1):此收集方法仅查询在线的设备。可以结合 --loop 参数使用以获得更好的覆盖范围。 注意 (2):此收集方法使用 CMPivot 对所有成员执行查询。

所有收集方法

要一次性运行所有收集方法,只需将收集方法指定为 All(-c All)

关于基于 CMPivot 的收集方法的信息

我建议阅读以下 Microsoft 文档,以更好地了解 CMPivot 的工作原理: https://learn.microsoft.com/en-us/mem/configmgr/core/servers/manage/cmpivot

简而言之 - CMPivot 收集方法已由 Microsoft 在多达 50,000 个客户端的环境中进行了测试,在整个网络上产生了 <50MB 的流量。SCCMHound 的收集方法已在约 1000 台机器的环境中进行了测试,未发现任何问题或服务降级。

欢迎反馈这些收集方法在大型环境中的使用情况,以便将其纳入此处。

如何使用此数据集?

除了出色的会话和本地管理员覆盖范围外,SCCMHound 还会为收集到的对象填充额外的属性。这些属性可以在 BloodHound 的“节点信息”选项卡中看到,并以“sccm”为前缀。例如 sccmADSiteName。

收集的属性包括:

  • SCCM 停用状态
  • 计算机报告的 IP 地址(IPv4 和 IPv6)
  • 上次登录时间戳
  • 上次登录用户所属的域
  • 上次登录用户的名称
  • 无法解析的枚举会话(无法创建相应的 BloodHound 对象,例如本地帐户)

用于 SCCMHound 数据集的自定义 BloodHound 查询

customqueries.json 提供了可与导入的 SCCMHound 数据集一起执行的 Cypher 查询。随着 SCCMHound 添加更多功能,此文件也将随之扩展。

要使用它,只需将 customqueries.json 复制到 ~/.config/bloodhound/customqueries.json,然后重新启动 BloodHound。这些查询将出现在 BloodHound 的“分析”选项卡下。

下载工具