
Kerberos 対応の bloodhound が必要になり、この コメント を見つけました。実はずっと Kerberos 認証をサポートするブランチがあったのです! このブランチを master にマージして、素敵な BloodHound 4.2+ エクスポートを取得しました。実際にコードを書いた人々にすべての功績があります:)
Dirkjan 氏本人が述べたように、これは「さらなる作業とテストが必要」です。すべての場合に機能するとは限らないため、遭遇した問題を報告していただければ、修正を試みることができます。いつかこれをメインリポジトリへの PR として提出できるかもしれません。
$ python3 /opt/BloodHound.py/bloodhound.py -u redacted -k -d absolute.htb -dc dc.absolute.htb -ns 10.129.202.227 --dns-tcp --zip -no-pass -c All
INFO: Found AD domain: absolute.htb
INFO: Using TGT from cache
INFO: Found TGT with correct principal in ccache file.
INFO: Connecting to LDAP server: dc.absolute.htb
INFO: Found 1 domains
INFO: Found 1 domains in the forest
INFO: Found 1 computers
INFO: Connecting to LDAP server: dc.absolute.htb
INFO: Found 18 users
INFO: Found 55 groups
INFO: Found 0 trusts
INFO: Starting computer enumeration with 10 workers
INFO: Querying computer: dc.absolute.htb
INFO: Ignoring host dc.absolute.htb since its reported name does not match
INFO: Done in 00M 02S
INFO: Compressing output into 20220926135518_bloodhound.zip
DNS エラーが発生した場合は、dnschef を実行しながら DNS を自分自身 (-ns 127.0.0.1) に向けてみてください:
python3 dnschef.py --fakeip <dc ip> --fakedomains <domain> -q
BloodHound.py は、Impacket をベースにした BloodHound 用の Python ベースのインジェスターです。
このバージョンの BloodHound.py は BloodHound 4.2 以降とのみ互換性があります。3.x 系の場合は、pypi からバージョン 1.1.1 を使用してください。バージョン 1.3 以降、BloodHound.py は Python 3 のみをサポートしており、Python 2 はもはやテストされておらず、将来壊れる可能性があります。
BloodHound.py には現在、以下の制限事項があります:
インジェスターは、pip install bloodhound で pip 経由でインストールするか、このリポジトリをクローンして python setup.py install を実行するか、pip install . でインストールできます。
BloodHound.py が機能するには、impacket、ldap3、dnspython が必要です。
インストールすると、コマンドラインツール bloodhound-python が PATH に追加されます。
インジェスターを使用するには、少なくともログインするドメインの資格情報が必要です。
このドメインのユーザー名を -u オプションで指定する必要があります(信頼されたドメインのユーザーの場合は username@domain)。DNS が適切に設定されており、AD ドメインが DNS 検索リストにある場合、BloodHound.py は自動的にドメインを検出します。そうでない場合は、-d オプションで手動で指定する必要があります。
デフォルトでは、BloodHound.py は LDAP とドメインの各コンピューターにクエリを実行して、ユーザー、コンピューター、グループ、信頼、セッション、ローカル管理者を列挙します。
収集を制限したい場合は、--collectionmethod パラメータを指定します。このパラメータは以下のオプションをサポートしています(SharpHound と同様):
複数の収集方法はカンマで区切る必要があります。例: -c Group,LocalAdmin
自動検出オプションの一部を上書きできます。たとえば、異なるドメインコントローラを使用したい場合は -dc でプライマリドメインコントローラのホスト名を指定したり、-gc で独自のグローバルカタログを指定したりできます。
docker build -t bloodhound .docker run -v ${PWD}:/bloodhound-data -it bloodhoundbloodhound-python を実行できます。すべてのデータはコンテナを起動したパスに保存されます。