権限昇格とドメイン支配
足がかりの確保からDomain Adminへの到達までを学びます。
「権限昇格とドメイン支配」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
足がかりからDomain Adminへ
足がかりを得ることが最終目標になることは、ほとんどありません。ADのエンゲージメントでは通常、Domain Admin、より正確にはTier 0(DCとID基盤)を制御できる経路を実証することが目的です。
ADにおける権限昇格では、ローカルでの昇格、認証情報の窃取、ディレクトリの設定ミスを連鎖させ、最も重要な資産に到達します。
まずはローカル権限昇格
ホスト上の低権限シェルから始めた場合、通常は認証情報をダンプするためにローカルのSYSTEM権限が必要です。一般的なローカル権限昇格の経路には次のようなものがあります。
- 引用符で囲まれていないサービスパスと、脆弱なサービス権限
- 書き込み可能なサービスバイナリ、またはDLLハイジャック
- AlwaysInstallElevated MSIポリシー
- SeImpersonatePrivilegeを悪用するトークン偽装(Potato family)
# Enumerate local escalation paths
winPEAS.exe
# SeImpersonate abuse
PrintSpoofer.exe -i -c cmd.exe収集してピボット
SYSTEM権限を取得したら、キャッシュされた認証情報をダンプしてピボットします。新たに得た認証情報によって、別のホストやより高い権限が利用できるようになります。
手順は、ダンプ → BloodHoundで到達可能な対象を特定 → ラテラルムーブメント → 再度ダンプ、という流れです。特権アカウントの認証情報が見つかるまで繰り返します。
# Map shortest path to Domain Admins from owned principals
# In BloodHound: mark nodes Owned, then run
# 'Shortest Paths to Domain Admins from Owned Principals'ACLベースの権限昇格
設定ミスのあるACLは、エクスプロイトを必要としない確実な権限昇格経路です。特権オブジェクトに対する権限を持つプリンシパルを制御できれば、自分自身にアクセス権を付与できます。
- ユーザーに対するForceChangePasswordがあれば、そのユーザーのパスワードをリセットできます。
- ユーザーに対するGenericWriteがあれば、SPNを設定してKerberoastしたり、RBCDを設定したりできます。
- グループに対するWriteDaclがあれば、自分自身を追加できます。
- 特権グループに対するAddMemberは、直接的な権限昇格につながります。
# PowerView: add self to a group you can WriteDacl
Add-DomainObjectAcl -TargetIdentity 'Domain Admins' -PrincipalIdentity attacker -Rights All
Add-DomainGroupMember -Identity 'Domain Admins' -Members attacker委任の悪用
委任の設定ミスは、高い価値を持つユーザーになりすますための効果的な権限昇格につながります。
- Unconstrained delegation:DCに認証を強制し(PrinterBug / PetitPotam)、そのTGTを取得してからDCSyncを実行します。
- Resource-Based Constrained Delegation:コンピューターに対する書き込み権限があれば、制御下のアカウントをその
msDS-AllowedToActOnBehalfOfOtherIdentityに追加し、S4Uによって任意のユーザーになりすますことができます。
# RBCD takeover (Impacket)
rbcd.py -delegate-to TARGET$ -delegate-from FAKE$ -action write corp/user:pass
getST.py -spn cifs/target.corp -impersonate Administrator corp/FAKE$ADCS攻撃(ESC経路)
Active Directory Certificate Servicesは、証明書ベースの権限昇格を可能にします。設定を誤ったテンプレートによって、低権限ユーザーが任意のユーザーとして認証できる証明書を登録できてしまいます。
- ESC1:テンプレートで、申請者が指定するSANとクライアント認証EKUが許可されています。
- ESC8:Web登録エンドポイントへのNTLMリレーです。
DAにマッピングされた証明書は永続性が高く、パスワードをリセットしても有効です。
# Find vulnerable templates
Certify.exe find /vulnerable
# Request a cert impersonating an admin (ESC1)
Certify.exe request /ca:CA01\corp-CA /template:VulnTemplate /altname:AdministratorDCSyncによる全ハッシュの窃取
Replicating Directory Changes権限を持つプリンシパルを制御できれば、DCになりすまし、標準のレプリケーションプロトコルを介してkrbtgtを含む任意のアカウントのハッシュを取得できます。DC上でコードを実行する必要はありません。
# Mimikatz DCSync of krbtgt
lsadump::dcsync /domain:corp.local /user:krbtgt
# Impacket secretsdump
secretsdump.py corp/admin@dc01 -just-dcドメイン支配の確立
krbtgtとDAレベルのハッシュを取得すると、ドメインを支配できます。永続化の方法には次のようなものがあります。
- Golden Ticket:krbtgtハッシュからTGTを偽造します。
- DCShadow:偽のDCを登録し、悪意のあるディレクトリ変更を適用します。
- AdminSDHolder:保護されたグループに1時間ごとに再適用されるACLテンプレートにバックドアを仕込みます。
- ADCSによる証明書ベースの永続化
最終段階の検知
影響の大きい操作は、検知可能なシグナルを発生させます。
- DC以外を送信元IPとするDCSync:レプリケーションGUIDを伴うイベント
4662 - 認証強制ツールによって、異常なマシンアカウント認証が発生します。
- AdminSDHolderのACL変更(イベント
5136) - 申請者と一致しないSANを含む、異常な証明書登録
Tier 0の防御
ドメイン支配を封じ込めるには、アーキテクチャレベルの防御が必要です。
- 厳格な階層型管理:Tier 0の管理者はTier 0のホストにのみログオンします。
- レプリケーション権限を制限し、DCSync権限を持つユーザーを監査します。
- ADCSテンプレートを堅牢化し、証明書登録の承認を有効にして、PetitPotamとリレー経路にパッチを適用します。
- AdminSDHolderのACLを修正し、保護グループの変更を監視します。
- krbtgtを2回ローテーションするための手順書を準備しておきます。
影響の報告
ドメイン支配に関する検出事項では、完全なキルチェーンを記録してください。獲得した各権限、それを可能にした設定ミス、そして最小限の修正方法を含めます。個別の対処よりも、チェーンを最も早い段階で断ち切る修正(例:ACL経路の修正)を優先します。
エンゲージメントを終了する前に、偽造チケット、悪意のある委任、テスト用証明書を削除してください。
理解度チェック
ドメイン支配について理解できているか確認します。
復習
初期の足がかりからドメイン全体の制御に至る経路を確認しました。
- ローカル権限昇格によって認証情報のダンプが可能になり、BloodHoundがピボット先の判断を支援します。
- ACLの設定ミス、委任の悪用、ADCSのESC経路によって、エクスプロイトなしで権限を昇格できます。
- DCSyncによってkrbtgtを抽出し、Golden TicketとAdminSDHolderによって永続化します。
- 階層化、レプリケーション権限の監査、ADCSの堅牢化によって、この連鎖を断ち切れます。
これでActive DirectoryとKerberosのコースは完了です。
よくある質問
「権限昇格とドメイン支配」レッスンは無料ですか?
はい。「権限昇格とドメイン支配」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「権限昇格とドメイン支配」で何を学びますか?
足がかりの確保からDomain Adminへの到達までを学びます。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「権限昇格とドメイン支配」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。