
ProfileHound - ドメインマシンに保存されているユーザープロファイルのためのBloodHound OpenGraphコレクター。ドメインマシン上のアクティブなユーザープロファイルを特定することで、秘密情報の収奪について情報に基づいた判断を下せます。
____ _____ __ __ __ __
/ __ \_________ / __(_) /__ / / / /___ __ ______ ____/ /
/ /_/ / ___/ __ \/ /_/ / / _ \/ /_/ / __ \/ / / / __ \/ __ /
/ ____/ / / /_/ / __/ / / __/ __ / /_/ / /_/ / / / / /_/ /
/_/ /_/ \____/_/ /_/_/\___/_/ /_/\____/\__,_/_/ /_/\__,_/
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 クエリを使用して、特定のマシン上のアクティブなユーザープロファイルや長期間使用されているユーザープロファイルを見つけることができます。
ProfileHound は pipx を使用してインストールします(依存関係地獄を避けるため):
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 collector for user profiles stored on domain machines.
[12/30/25 11:58:05] INFO Loaded 32 targets
[12/30/25 11:58:08] INFO Successful authentication on 192.168.57.10 (192.168.57.10) as sccm.lab\alice
INFO Successfully connected to share \\192.168.57.10\C$ as sccm.lab\alice
INFO Enumerating profiles in \\192.168.57.10\C$\Users\...
INFO vagrant: S-1-5-21-3016982856-3796307652-1246469985-1000 created:2025-11-07 modified:2025-11-07
INFO Found 1 domain profile(s) for 192.168.57.10
INFO Successful authentication on 192.168.57.11 (192.168.57.11) as sccm.lab\alice
[12/30/25 11:58:09] INFO Successfully connected to share \\192.168.57.11\C$ as sccm.lab\alice
INFO Enumerating profiles in \\192.168.57.11\C$\Users\...
INFO administrator: S-1-5-21-3016982856-3796307652-1246469985-500 created:2025-11-07 modified:2025-11-07
INFO alice: S-1-5-21-3016982856-3796307652-1246469985-1112 created:2025-12-28 modified:2025-11-07
INFO eve: S-1-5-21-3016982856-3796307652-1246469985-1116 created:2025-12-27 modified:2025-11-07
INFO Found 3 domain profile(s) for 192.168.57.11
INFO Successful authentication on 192.168.57.12 (192.168.57.12) as sccm.lab\alice
INFO Successfully connected to share \\192.168.57.12\C$ as sccm.lab\alice
INFO Enumerating profiles in \\192.168.57.12\C$\Users\...
INFO alice: S-1-5-21-3016982856-3796307652-1246469985-1112 created:2025-12-28 modified:2025-12-28
INFO franck: S-1-5-21-3016982856-3796307652-1246469985-1117 created:2025-12-27 modified:2025-11-07
INFO sccm-sql: S-1-5-21-3016982856-3796307652-1246469985-1121 created:2025-11-07 modified:2025-11-07
INFO Found 3 domain profile(s) for 192.168.57.12
INFO Successful authentication on 192.168.57.13 (192.168.57.13) as sccm.lab\alice
INFO Successfully connected to share \\192.168.57.13\C$ as sccm.lab\alice
INFO Enumerating profiles in \\192.168.57.13\C$\Users\...
INFO alice: S-1-5-21-3016982856-3796307652-1246469985-1112 created:2025-12-26 modified:2025-12-28
INFO sccm-account-da: S-1-5-21-3016982856-3796307652-1246469985-1119 created:2025-12-26 modified:2025-11-07
INFO Found 2 domain profile(s) for 192.168.57.13
[12/30/25 11:59:27] INFO Found 4 machines with profiles
INFO Exported OpenGraph intel to profilehound_20251230-115805.json
これにより、カレントディレクトリに profilehound_20251230-115805.json というファイルが作成されます。このファイルは、BloodHound UI にドラッグ&ドロップすることで BHCE に直接インポートできます。自動的に解析され、SID を介してノードが関連付けられます。新しいエッジ HasUserProfile が作成され、ユーザーとプロファイルの関係を示します。