
BloodHoundが示すActive Directoryの権限昇格パスを自動的に悪用するツール
autobloodyautobloody は、BloodHound に表示される Active Directory の権限昇格パスを自動的に悪用するツールです。
このツールは、BloodHoundデータベースに権限昇格パスが存在する場合、2つのADオブジェクト(所有しているソースと目的のターゲット)間のAD権限昇格を自動化します。 自動化は2つのステップで構成されています:
bloodyADパッケージを使用して実行する。autobloodyはbloodyADに依存しているため、クリアテキストパスワード、パス・ザ・ハッシュ、パス・ザ・チケット、または証明書を使用した認証をサポートし、ドメインコントローラのLDAPサービスにバインドしてAD権限昇格を実行します。
Pythonパッケージが利用可能です:
pip install autobloody
または、リポジトリをクローンできます:
git clone --depth 1 https://github.com/CravateRouge/autobloody
pip install .
パフォーマンスを向上させるには、GDSライブラリをNeo4jにインストールすることをお勧めします。これがない場合、autobloodyはネイティブのCYPHERクエリを使用しますが、これは遅いですが機能します。
GDSプラグインを備えた軽量のBloodHound環境は、https://github.com/CravateRouge/Single-User-BloodHoundから./bloodhound-ceを起動してインストールできます。
まず、BloodHoundにデータをインポートし(例:SharpHoundまたはBloodHound.pyを使用)、Neo4jを起動しておく必要があります。
⚠️ -ds と -dt の値は大文字と小文字を区別します
簡単な使用例:
autobloody -p 'Password123!' --host 192.168.10.2 -dp 'neo4jP@ss' -ds '[email protected]' -dt 'BLOODY.LOCAL'
全ヘルプ:
[bloodyAD]$ ./autobloody.py -h
usage: autobloody.py [-h] [--dburi DBURI] [-du DBUSER] -dp DBPASSWORD -ds DBSOURCE -dt DBTARGET [-d DOMAIN] [-u USERNAME] [-p PASSWORD] [-k] [-c CERTIFICATE] [-s] --host HOST [-y] [-v] [--timeout TIMEOUT]
AD Privesc Automation
options:
-h, --help show this help message and exit
--dburi DBURI The host neo4j is running on (default is "bolt://localhost:7687")
-du DBUSER, --dbuser DBUSER
Neo4j username to use (default is "neo4j")
-dp DBPASSWORD, --dbpassword DBPASSWORD
Neo4j password to use
-ds DBSOURCE, --dbsource DBSOURCE
Case sensitive label of the source node (name property in bloodhound)
-dt DBTARGET, --dbtarget DBTARGET
Case sensitive label of the target node (name property in bloodhound)
-d DOMAIN, --domain DOMAIN
Domain used for NTLM authentication (optional, default is dbsource domain)
-u USERNAME, --username USERNAME
Username used for NTLM authentication (optional, default is dbsource sAMAccountName)
-p PASSWORD, --password PASSWORD
Cleartext password or LMHASH:NTHASH for NTLM authentication
-k, --kerberos
-c CERTIFICATE, --certificate CERTIFICATE
Certificate authentication, e.g: "path/to/key:path/to/cert"
-s, --secure Try to use LDAP over TLS aka LDAPS (default is LDAP)
--host HOST Hostname or IP of the DC (ex: my.dc.local or 172.16.1.3)
-y, --yes Assume yes to apply the generated privesc
-v, --verbose Enable verbose output (-v for INFO, -vv for DEBUG)
--timeout TIMEOUT Connection timeout in seconds (default is 60)
まず、Neo4jのGDSライブラリに実装されたダイクストラ法を使用して、権限昇格パスを見つけます。 ダイクストラ法は、重み付きグラフ上の最短経路問題を解くことができます。デフォルトでは、BloodHoundが作成するエッジには重みはなく、タイプ(例:MemberOf、WriteOwner)があります。その後、エッジのタイプと到達したノードのタイプ(例:ユーザー、グループ、ドメイン)に応じて、各エッジに重みが追加されます。
パスが生成されると、autobloodyはDCに接続し、パスを実行して、元に戻せる部分(ForcePasswordChangeとsetOwnerを除くすべて)をクリーンアップします。
現時点では、自動悪用のために以下のBloodHoundエッジのみがサポートされています:
パーソナライズされたサポートが必要ですか? トレーニングやカスタム機能については、メールでお問い合わせください。