
ADSyncDump BOFは、Dirk-Jan Mollemaのadconnectdump.py / ADSyncDecryptを、依存関係ゼロのBeacon Object File (BOF)に移植したものです。
ADSyncDump BOF は、Dirkjan Mollema の adconnectdump.py / ADSyncDecrypt を Beacon Object File (BOF) に移植したもので、Cobalt Strike、Sliver、Havoc で使用できます。
[!NOTE] このツールは、Azure AD Connect バージョン
2.2.1.0を実行する Windows Server 2019 でテストされています。BOF の 32ビット版は未テストですが、完全を期すために含めています。使用は自己責任でお願いします。
BOF をコンパイルするには、ソースコードが含まれるディレクトリで make を実行するだけです。これにより、BOF の 32ビット版と 64ビット版の両方が生成されます。
make
Cobalt Strike では adsyncdump.cna スクリプトをロードし、Sliver では extension install コマンドと extension load コマンドを使用して BOF をインストールします。インストール後、NT AUTHORITY\SYSTEM として AD Sync サーバーへ横展開し、adsyncdump コマンドを実行します:
beacon> adsyncdump


この BOF は、数年前のエンゲージメント中に誕生しました。もともとの Python スクリプトがクライアントシステムに対して侵襲的すぎるという問題に遭遇し、.NET 版を正しく実行するのも困難だったためです。そこで、余暇を利用して復号化プロセスで使用される正確な Win32 API 呼び出しをリバースエンジニアリングし、BOF に移植することを決めました。
当初は、ADSync アカウントが常軌を逸した特権を保持しており、既存ツールの検出もあまり優れていなかったことから、共有することは無責任だと感じ、このプロジェクトを共有する予定はありませんでした。しかし、その後、ADSync アカウントの特権は Microsoft によって大幅に制限され、影響は軽減されました(それでも良いとは言えませんが、少なくとも条件付きアクセスポリシーを編集することはできなくなりました1)。
さらに、他の研究者がすでに復号化プロセスの内部動作に関する情報を公開していること(Dr Syynimaa2 氏と Dirkjan Mollema3 氏に大いに敬意を表します)、また検出がより広く普及していることから、今ではこの BOF をコミュニティの他のメンバーと共有することに抵抗がなくなりました(遅ればせながらすみません)。
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細は LICENSE ファイルを参照してください。このツールの使用によって引き起こされた誤用や損害について、私は一切責任を負いません。明示的な許可がある環境でのみ使用してください。
https://raw.githubusercontent.com/paradoxis/adsyncdump-bof/main/%3Chttps:/x.com/_dirkjan/status/1715263925971821008%3E ↩
https://raw.githubusercontent.com/paradoxis/adsyncdump-bof/main/%3Chttps:/aadinternals.com/post/adsync/%3E ↩
https://raw.githubusercontent.com/paradoxis/adsyncdump-bof/main/%3Chttps:/dirkjanm.io/updating-adconnectdump-a-journey-into-dpapi/%3E ↩