
ADCollectorは、Active Directory環境を列挙して潜在的な攻撃ベクトルを特定する軽量ツールです。これにより、環境の構成/展開の基本的な理解を出発点として得られます。
ADCollectorは強力なPowerViewの代替品ではなく、初期偵察段階であまり考えずに簡単に有益な情報を特定するために列挙を自動化するだけです。ADCollectorで実装されている機能は、多数のユーザー/コンピュータが存在する大規模なエンタープライズ環境での列挙に最適で、大量のトラフィックを発生させずに長時間を要することなく、最も価値のあるターゲットから有用な属性/プロパティ/ACLのみを抽出することに重点を置いています。後でより詳細な列挙を行うには、間違いなくPowerViewが必要になります。 何を列挙したいかがわかっていれば、PowerViewの代わりにADSIを使用してドメインを列挙できます。https://dev-2null.github.io/Easy-Domain-Enumeration-with-ADSI/ を参照してください。
このツールの開発目的は、Active Directoryのセキュリティについて別の視点から学び、また、それらのPowerView関数の舞台裏で何が起こっているのかを理解することです。
S.DS名前空間を使用して、ドメインコントローラー(LDAPサーバー)からドメイン/フォレスト情報を取得します。また、LDAP検索にはS.DS.P名前空間も利用します。
このツールはまだ開発中です。実装予定の機能については、プロジェクトページを参照してください
ドメイン参加していないホストから実行する場合は、SYSVOLにアクセスできることを確認してください。ハードンUNCポリシーが適用されている場合は、次のコマンドを実行する必要があるかもしれません。
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\NetworkProvider\HardenedPaths /v "\\*\SYSVOL" /d "RequireMutualAuthentication=0" /t REG_SZ
PS C:\> .\ADCollector.exe --help
_ ____ ____ _ _ _
/ \ | _ \ / ___|___ | | | ___ ___ _| |_ ___ _ __
/ _ \ | | | | | / _ \| | |/ _ \/ __|_ __/ _ \| '__|
/ ___ \| |_| | |__| (_) | | | __/ (__ | || (_) | |
/_/ \_\____/ \____\___/|_|_|\___|\___| |__/\___/|_|
v3.0.1 by dev2null
--Domain Domain to enumerate
--LDAPS (Default: false) LDAP over SSL/TLS
--DisableSigning (Default: false) Disable Kerberos Encryption (with -LDAPS flag)
--UserName Alternative UserName
--Password Alternative Credential
--DC Alternative Domain Controller (Hostname/IP) to connect to
--OU Perform the Search under a specific Organizational Unit
--LDAPONLY Only Enumearte Objects in LDAP
--ACLScan Perform ACL scan for an Identity
--ADCS (Default: false) Only Perform AD Certificate Service Check
--TEMPLATES (Default: false) Only Enumerate All Certificate Templates with their DACL
--SCHEMA (Default: false) Count Schema Attributes in the default naming context
--ADIDNS (Default: false) Only Collect ADIDNS Records
--NGAGP Only enumerate Nested Group Membership and Applied Group Policies on the target object
--DACL Enumerate DACL on the target object (with DistinguishedName)
--SessionEnum (Default: false) Enumerate session information on the target host
--UserEnum (Default: false) Enumerate user information on the target host
--LocalGMEnum (Default: false) Enumerate local group members on the target host
--Host (Default: Localhost) Hostname for Session/User/Groupmember Enumeration
--Group (Default: Administrators) Local Group Name for Local GroupMember Enumeration
--Debug (Default: false) Debug Mode
--help Display this help screen.
Example: .\ADCollector.exe
.\ADCollector.exe --LDAPs --DisableSigning
.\ADCollector.exe --OU IT
.\ADCollector.exe --OU OU=IT,DC=domain,DC=local
.\ADCollector.exe --ADCS
.\ADCollector.exe --TEMPLATES
.\ADCollector.exe --LDAPOnly
.\ADCollector.exe --SCHEMA
.\ADCollector.exe --ADIDNS
.\ADCollector.exe --NGAGP samaccountname
.\ADCollector.exe --DACL DC=domain,DC=net
.\ADCollector.exe --ACLScan user --OU OU=IT,DC=domain,DC=local
.\ADCollector.exe --SessionEnum --Host targetHost
.\ADCollector.exe --UserEnum --Host targetHost
.\ADCollector.exe --LocalGMEnum --Host targetHost --Group 'Remote Desktop Users'
.\ADCollector.exe --Domain domain.local --Username user --Password pass
.\ADCollector.exe --Domain domain.local --DC 10.10.10.1
1. 証明書テンプレート、スキーマ、ユーザー資格情報の列挙を追加
2. いくつかのフラグを追加
1. コードのリファクタリングとバグ修正
2. 特権権限とオブジェクトDACL列挙を追加
3. デバッグモードを追加
4. インタラクティブメニューをコマンドラインに統合し、いくつかの単純なLDAP列挙を削除(ADSIを使用。 [ADSI Enum](https://dev-2null.github.io/Easy-Domain-Enumeration-with-ADSI/) を参照)
1. バグ修正といくつかの改善
2. LAPSおよび制限付きグループ列挙の新しい実装ロジック
3. 重い列挙関数を処理するためにTaskを使用(大規模ドメインではるかに高速)
4. GPPキャッシュとDCSyncアカウントの列挙を削除
1. 特定のOUの下で検索
2. LAPSの詳細ビュー
3. Machine Owners
4. 制限付きグループ
5. ADCS構成
6. ACLスキャン
7. バグ修正: SYSVOLアクセス、ネストされたグループメンバーシップ
8. 外部のreadINF依存関係をカスタム実装に置き換え
9. Protected Users
1. 完全な書き直し(より拡張可能に)
2. コマンドライン選択によるインタラクティブメニューを追加
3. 直接API呼び出しを使用して信頼関係を列挙
4. セキュリティフィルタリングとWMIフィルタリングを備えた適用済みGPO列挙を更新(WMIFilterは手動で確認する必要があります)
5. LDAP DNSレコード列挙を追加
6. RunAs: 別のユーザーコンテキストでADCollectorを実行
7. 柔軟なSPNスキャン、DNSレコード、ネストされたグループメンバーシップ、ACL列挙
8. NetSessionEnum、NetLocalGroupGetMembers、NetWkstaUserEnumを追加
1. いくつかのバグが修正され、いくつかの詳細が改善されました
2. SPNスキャンはオプションになりました
3. SYSVOL/キャッシュ内のGPP cpassword
4. GPO上の興味深いACL; ユーザーオブジェクト上の興味深い説明;
5. 異常なDCSyncアカウント; 機密および委任不可アカウント
6. ユーザー/コンピュータに有効なGPO
7. 制限付きグループ
8. ネストされたグループメンバーシップ
9. LAPSパスワード表示アクセス
1. SPNスキャン結果、特権アカウントのグループメンバーシップを修正
2. パスワードが無期限のアカウント; SPNが設定されたユーザーアカウント;
3. Kerberosポリシー
4. ドメインオブジェクトの興味深いACL列挙、GUIDの解決
5. DC情報が戻ってきました
1. 3つのクラスに分割。
2. LDAP接続を適切に破棄。
3. 列挙: AdminSDHolder、ドメイン属性(MAQ、minPwdLength、maxPwdAge、lockOutThreshold、ドメインオブジェクトにリンクされたGP)、事前認証が不要なアカウント。
4. LDAP基本情報(supportedLDAPVersion、supportedSASLMechanisms、ドメイン/フォレスト/DC機能レベル)
5. SPNスキャン(MSSQL、Exchange、RDP、PSリモートのSPN)
6. 制約付き委任の列挙(S4U2Self、S4U2Proxy、リソースベースの制約付き委任)
7. RODC(RODCを管理するグループ)
1. 検索操作にS.DS.P名前空間を使用するようになり、検索がより高速で実装が容易になりました(ページング検索もサポート)。
2. 他のドメインでの検索をサポートするようになりました(コマンドラインパーサーはまだ実装されていません)。
3. コードロジックが再構築され、コードが減り、より理解しやすく、凝集性が高まりました。
このツールの詳細(進捗状況/ToDoリストなど)については、プロジェクトページをご覧ください。