これは現在 SHARPHOUND3 を優先するため非推奨です。この方法で収集したデータは BLOODHOUND 3.0 では動作しません。
SharpHound - BloodHound Ingestor の C# リライト
SharpHound を入手する
SharpHound の最新ビルドは常に BloodHound リポジトリ こちら にあります。
コンパイル手順
Sharphound は C# 7.0 の機能を使用して記述されています。このプロジェクトを簡単にコンパイルするには、Visual Studio 2017 を使用してください。
以前のバージョンの Visual Studio でコンパイルする場合は、Microsoft.Net.Compilers nuget パッケージをインストールできます。
プロジェクトをビルドすると、実行可能ファイルと、その実行可能ファイルをカプセル化する PowerShell スクリプトが生成されます。すべての依存関係はバイナリに組み込まれます。
要件
Sharphound は .Net 3.5 をターゲットとして設計されています。Sharphound は、ログオン経由で直接、または RUNAS などの別の方法を通じて、ドメインユーザーのコンテキストから実行する必要があります。
詳細情報
使用方法
列挙オプション
- CollectionMethod - 使用する収集方法です。このパラメータはカンマ区切りの値のリストを受け入れます。以下の値が指定可能です (デフォルト: Default):
- Default - グループメンバーシップ収集、ドメイントラスト収集、ローカル管理者収集、セッション収集を実行します
- Group - グループメンバーシップ収集を実行します
- LocalAdmin - ローカル管理者収集を実行します
- RDP - リモートデスクトップユーザー収集を実行します
- DCOM - 分散 COM ユーザー収集を実行します
- GPOLocalGroup - グループポリシーオブジェクトを使用してローカル管理者収集を実行します
- Session - セッション収集を実行します
- ComputerOnly - ローカル管理者、RDP、DCOM、セッション収集を実行します
- LoggedOn - 特権セッション収集を実行します (対象システムの管理者権限が必要)
- Trusts - ドメイントラストの列挙を実行します
- ACL - ACL の収集を実行します
- Container - コンテナの収集を実行します
- DcOnly - LDAP のみを使用して収集を実行します。Group、Trusts、ACL、ObjectProps、Container、GPOLocalGroup が含まれます。
- All - GPOLocalGroup と LoggedOn を除くすべての収集方法を実行します
- SearchForest - 現在のドメインだけでなく、フォレスト内のすべてのドメインを検索します
- Domain - 特定のドメインを検索します。null の場合は現在のドメインを使用します (デフォルト: null)
- Stealth - ステルス収集方法を実行します。すべてのステルスオプションはシングルスレッドです。
- SkipGCDeconfliction - セッション列挙中にグローバルカタログの競合解決をスキップします。これにより列挙を高速化できますが、データに不正確さが生じる可能性があります。
- ExcludeDc - 列挙からドメインコントローラーを除外します (Microsoft ATA のフラグを回避します :) )
- ComputerFile - コンピューター名/IP を読み込むファイルを指定します
- OU - 列挙する OU を指定します
接続オプション
- DomainController - 接続するドメインコントローラーを指定します (デフォルト: null)
- LdapPort - LDAP が使用するポートを指定します (デフォルト: 0)
- SecureLdap - 通常の LDAP の代わりにセキュア LDAP を使用して AD に接続します。デフォルトでポート 636 に接続します。
- IgnoreLdapCert - LDAP SSL 証明書を無視します。たとえば自己署名証明書がある場合に使用します
- LDAPUser - LDAP への接続に使用するユーザー名です。LDAPPassword パラメータも必要です (デフォルト: null)
- LDAPPass - LDAP への接続に使用するユーザーのパスワードです。LDAPUser パラメータも必要です (デフォルト: null)
- DisableKerbSigning - LDAP 暗号化を無効にします。推奨されません。
パフォーマンスオプション
- Threads - 使用するスレッド数を指定します (デフォルト: 10)
- PingTimeout - ping リクエストのタイムアウトをミリ秒単位で指定します (デフォルト: 250)
- SkipPing - システムが稼働しているか確認する ping リクエストをスキップするよう Sharphound に指示します
- LoopDelay - セッションループ間の秒数です (デフォルト: 300)
- MaxLoopTime - セッションループを継続する時間です。形式は 0d0h0m0s です。null の場合は 2 時間ループします。(デフォルト: 2h)
- Throttle - コンピューターへの各リクエスト後に遅延を追加します。値はミリ秒単位です (デフォルト: 0)
- Jitter - スロットルにパーセンテージのジッターを追加します。(デフォルト: 0)
出力オプション
- JSONFolder - JSON ファイルを保存するフォルダーです (デフォルト: .)
- JSONPrefix - JSON ファイルに追加するプレフィックスです (デフォルト: "")
- NoZip - JSON ファイルを zip ファイルに圧縮しません。JSON ファイルをディスク上に残します。(デフォルト: false)
- EncryptZip - zip ファイルにランダムに生成されたパスワードを追加します。
- ZipFileName - zip ファイルの名前を指定します
- RandomFilenames - 出力ファイル名をランダム化します
- PrettyJson - 読みやすさを向上させるため、JSON を複数行にインデントして出力します。トレードオフとしてファイルサイズが増加します。
キャッシュオプション
- CacheFile - Sharphound キャッシュのファイル名です。(デフォルト: .bin)
- NoSaveCache - キャッシュファイルをディスクに保存しません。このフラグがない場合、.bin がディスクに書き込まれます
- Invalidate - キャッシュファイルを無効化し、新しいキャッシュを構築します
その他のオプション
- StatusInterval - 列挙中の進行状況を表示する間隔をミリ秒単位で指定します (デフォルト: 30000)
- Verbose - 詳細な出力を有効にします