____ _____ __ __ __ __
/ __ \_________ / __(_) /__ / / / /___ __ ______ ____/ /
/ /_/ / ___/ __ \/ /_/ / / _ \/ /_/ / __ \/ / / / __ \/ __ /
/ ____/ / / /_/ / __/ / / __/ __ / /_/ / /_/ / / / / /_/ /
/_/ /_/ \____/_/ /_/_/\___/_/ /_/\____/\__,_/_/ /_/\__,_/
ProfileHound 是一个权限提升后工具,用于通过定位目标机器上的域用户配置文件来帮助实现红队目标。它使用 BloodHound OpenGraph 格式构建一种名为 HasUserProfile 的新边,该边用于判断计算机上是否存在用户配置文件。该边使操作员能够做出更明智的决策,确定哪些计算机最适合用于窃取机密信息。
此工具需要目标机器上 C$ 共享的管理员访问权限才能枚举用户配置文件。
特别感谢 Remi Gascou (@podalirius) 贡献的 ShareHound 和 bhopengraph 工具。我一直想构建一个工具来收集这些数据,使用这些库让我能够专注于构建本身,而不是底层实现。
[!WARNING] ProfileHound 尚处于早期开发阶段,尚未实现所有收集模式。在生产环境中请谨慎使用,使用此工具的风险由您自行承担。
Active Directory 中的后利用目标已从本地存储的数据转向 SaaS 应用程序和云端。为了证明渗透测试的价值,我们需要展示如何能够攻破对这些服务的访问权限。在许多情况下,这些服务仅被特定组或用户使用,例如 HR、财务等。在某些场景中,某些 SaaS 应用程序只能从特定机器访问。
BloodHound 的 HasSession 边非常有用,但它仅在用户登录到机器时才有效。如果数据收集时用户未登录到机器,可能很难找到包含机密信息以促进进一步利用的计算机。用户配置文件中可能包含大量有价值的情报,例如 DPAPI、缓存的凭据、SSH 密钥、云密钥等——这些都不需要活跃的用户会话就能访问。

ProfileHound 使用 BloodHound 的 OpenGraph 格式来构建一个名为 HasUserProfile 的新图边,用于判断域机器上是否存在用户配置文件。这可以帮助操作员将注意力集中在高价值用户或组拥有配置文件的机器上。
HasUserProfile 边包含配置文件的创建日期和最后修改日期等属性。这些信息有助于确定:

该边还包含配置文件创建和修改的时间戳属性,允许通过特定的 Cypher 查询找到特定机器上活跃或长期存在的用户配置文件。
使用 pipx 安装 ProfileHound(除非您喜欢依赖地狱):
pipx install profilehound
要使用最新开发版本,您可以从源码安装:
pipx install git+https://github.com/m4lwhere/profilehound.git
要使用容器化方法,请使用以下命令构建镜像并运行工具:
docker build -t profilehound .
docker run --rm profilehound --help
docker run --rm -v ${PWD}:/profilehound profilehound --auth-user alice --auth-password whiteRabbit --auth-domain sccm.lab --dns 192.168.57.10 --auth-dc-ip 192.168.57.10
例如,使用域管理员账户 sccm.lab\alice 及密码 whiteRabbit 运行:
$ profilehound --auth-user alice --auth-password whiteRabbit --auth-domain sccm.lab --target 192.168.57.0/27
____ _____ __ __ __ __
/ __ \_________ / __(_) /__ / / / /___ __ ______ ____/ /
/ /_/ / ___/ __ \/ /_/ / / _ \/ /_/ / __ \/ / / / __ \/ __ /
/ ____/ / / /_/ / __/ / / __/ __ / /_/ / /_/ / / / / /_/ /
/_/ /_/ \____/_/ /_/_/\___/_/ /_/\____/\__,_/_/ /_/\__,_/ v0.1.1
@m4lwhere
BloodHound CE OpenGraph 收集器,用于收集域机器上的用户配置文件。
[12/30/25 11:58:05] INFO 加载了 32 个目标
[12/30/25 11:58:08] INFO 以 sccm.lab\alice 身份在 192.168.57.10 (192.168.57.10) 上认证成功
INFO 以 sccm.lab\alice 身份成功连接到共享 \\192.168.57.10\C$
INFO 正在枚举 \\192.168.57.10\C$\Users\ 中的配置文件...
INFO vagrant: S-1-5-21-3016982856-3796307652-1246469985-1000 创建时间:2025-11-07 修改时间:2025-11-07
INFO 在 192.168.57.10 上找到 1 个域配置文件
INFO 以 sccm.lab\alice 身份在 192.168.57.11 (192.168.57.11) 上认证成功
[12/30/25 11:58:09] INFO 以 sccm.lab\alice 身份成功连接到共享 \\192.168.57.11\C$
INFO 正在枚举 \\192.168.57.11\C$\Users\ 中的配置文件...
INFO administrator: S-1-5-21-3016982856-3796307652-1246469985-500 创建时间:2025-11-07 修改时间:2025-11-07
INFO alice: S-1-5-21-3016982856-3796307652-1246469985-1112 创建时间:2025-12-28 修改时间:2025-11-07
INFO eve: S-1-5-21-3016982856-3796307652-1246469985-1116 创建时间:2025-12-27 修改时间:2025-11-07
INFO 在 192.168.57.11 上找到 3 个域配置文件
INFO 以 sccm.lab\alice 身份在 192.168.57.12 (192.168.57.12) 上认证成功
INFO 以 sccm.lab\alice 身份成功连接到共享 \\192.168.57.12\C$
INFO 正在枚举 \\192.168.57.12\C$\Users\ 中的配置文件...
INFO alice: S-1-5-21-3016982856-3796307652-1246469985-1112 创建时间:2025-12-28 修改时间:2025-12-28
INFO franck: S-1-5-21-3016982856-3796307652-1246469985-1117 创建时间:2025-12-27 修改时间:2025-11-07
INFO sccm-sql: S-1-5-21-3016982856-3796307652-1246469985-1121 创建时间:2025-11-07 修改时间:2025-11-07
INFO 在 192.168.57.12 上找到 3 个域配置文件
INFO 以 sccm.lab\alice 身份在 192.168.57.13 (192.168.57.13) 上认证成功
INFO 以 sccm.lab\alice 身份成功连接到共享 \\192.168.57.13\C$
INFO 正在枚举 \\192.168.57.13\C$\Users\ 中的配置文件...
INFO alice: S-1-5-21-3016982856-3796307652-1246469985-1112 创建时间:2025-12-26 修改时间:2025-12-28
INFO sccm-account-da: S-1-5-21-3016982856-3796307652-1246469985-1119 创建时间:2025-12-26 修改时间:2025-11-07
INFO 在 192.168.57.13 上找到 2 个域配置文件
[12/30/25 11:59:27] INFO 找到 4 台包含配置文件的机器
INFO 已导出 OpenGraph 情报到 profilehound_20251230-115805.json
这在当前目录下创建了一个名为 profilehound_20251230-115805.json 的文件。该文件可以直接导入 BHCE:只需将文件拖放到 BloodHound UI 中即可。它会自动解析并通过 SID 关联节点。新的 HasUserProfile 边将创建以显示用户与配置文件之间的关系。