detecting-dcsync-attack-in-active-directory について
Active Directory の防御担当者向けに、DCSync 攻撃を検出するスキルです。監査設定、複製権限とネットワークの監視、発信元の調査、後続の認証情報悪用の確認を扱います。
主な機能
- 01正規のドメインコントローラーの把握
- 02イベント ID 4662 の監査設定
- 03ディレクトリ複製権限の監視
- 04非 DC からの複製要求の検出
- 05RPC 通信と認証情報悪用の関連付け
活用シーン
- 01Active Directory の認証情報窃取の調査
- 02Mimikatz や secretsdump 使用の確認
- 03ドメイン内の横展開への対応
- 04ディレクトリ複製権限の監査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill detecting-dcsync-attack-in-active-directoryインストール後、Claude Code で/detecting-dcsync-attack-in-active-directoryを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEassets/template.mdreferences/api-reference.mdstandards.mdworkflows.mdscripts/agent.pyprocess.py詳細
Active Directory での DCSync 攻撃の検知
使用する場面
- Active Directory 環境での認証情報窃取を調査する場合
- Replicating Directory Changes 権限を持つアカウントが侵害された後
- Mimikatz または Impacket secretsdump の使用が疑われる場合の調査
- ドメイン管理者の認証情報を使ったラテラルムーブメントに関するインシデント対応時
- セキュリティ強化の一環として AD のレプリケーション権限を監査する場合
前提条件
- イベント ID 4662(オブジェクトアクセス)が有効になっている Windows セキュリティイベントログ
- Advanced Audit Policy の Audit Directory Service Access が有効
- ドメインコントローラーのイベントが SIEM に転送されていること
- 正規のドメインコントローラーのホスト名と IP アドレスを把握していること
- ドメインオブジェクトに SACL を設定した Directory Service Access 監査
ワークフロー
- 正規のレプリケーション元を特定する:環境内のすべてのドメインコントローラーについて、ホスト名、IP アドレス、コンピューターアカウントを記録します。ディレクトリのレプリケーションを実行するのは、これらのみにしてください。
- 必要な監査を有効にする:レプリケーション権限に関する特定の GUID を監視するよう設定し、ドメインコントローラーでイベント ID 4662 を記録する Advanced Audit Policy を構成します。
- レプリケーション権限へのアクセスを監視する:重要な 3 つの GUID へのアクセスを追跡します。DS-Replication-Get-Changes(1131f6aa-9c07-11d1-f79f-00c04fc2dcd2)、DS-Replication-Get-Changes-All(1131f6ad-9c07-11d1-f79f-00c04fc2dcd2)、DS-Replication-Get-Changes-In-Filtered-Set(89e95b76-444d-4c62-991a-0facbeda640c)です。
- ドメインコントローラー以外からのレプリケーション要求を検知する:ドメインコントローラーに関連付けられていないアカウントがレプリケーション権限を要求した場合にアラートを発します。
- ネットワークトラフィックと相関分析する:DCSync は攻撃者のマシンからドメインコントローラーへのレプリケーショントラフィック(MS-DRSR/RPC)を生成します。ドメインコントローラー以外の IP アドレスからの DrsGetNCChanges RPC 呼び出しを監視します。
- 送信元のコンテキストを調査する:レプリケーション要求の発生元となったプロセス、ユーザーアカウント、マシンを調べます。
- 認証情報の不正使用を確認する:DCSync を検知した後、抽出されたハッシュがその後使用されていないか監査します(パス・ザ・ハッシュ、ゴールデンチケットの作成など)。
主要な概念
| 概念 | 説明 |
|---|---|
| T1003.006 | OS の認証情報ダンプ:DCSync |
| DCSync | ドメインコントローラーのレプリケーションを模倣して認証情報を抽出する手法 |
| DsGetNCChanges | AD のレプリケーションデータを要求する RPC 関数 |
| DS-Replication-Get-Changes | 必要な AD 権限(GUID:1131f6aa-...) |
| DS-Replication-Get-Changes-All | 機密属性を含む権限(GUID:1131f6ad-...) |
| MS-DRSR | Microsoft Directory Replication Service Remote Protocol |
| KRBTGT ハッシュ | ゴールデンチケット攻撃を可能にする DCSync の主な標的 |
| イベント ID 4662 | ディレクトリサービスのオブジェクトアクセス監査イベント |
ツールとシステム
| ツール | 目的 |
|---|---|
| Mimikatz (lsadump::dcsync) | 主な DCSync 攻撃ツール |
| Impacket secretsdump.py | Python ベースの DCSync 実装 |
| DSInternals | AD レプリケーション用の PowerShell モジュール |
| BloodHound | レプリケーション権限を持つアカウントのマッピング |
| Splunk / Elastic | 4662 イベントの SIEM 相関分析 |
| Microsoft Defender for Identity | ネイティブの DCSync 検知 |
| CrowdStrike Falcon | EDR ベースの DCSync 検知 |
検知クエリ
Splunk -- イベント 4662 による DCSync の検知
index=wineventlog EventCode=4662
| where Properties IN ("*1131f6aa-9c07-11d1-f79f-00c04fc2dcd2*",
"*1131f6ad-9c07-11d1-f79f-00c04fc2dcd2*",
"*89e95b76-444d-4c62-991a-0facbeda640c*")
| where NOT match(SubjectUserName, ".*\\$$")
| where NOT SubjectUserName IN ("known_svc_account1", "known_svc_account2")
| stats count values(Properties) as ReplicationRights by SubjectUserName SubjectDomainName Computer
| where count > 0
| table SubjectUserName SubjectDomainName Computer count ReplicationRights
KQL -- Microsoft Sentinel による DCSync の検知
SecurityEvent
| where EventID == 4662
| where Properties has "1131f6ad-9c07-11d1-f79f-00c04fc2dcd2"
or Properties has "1131f6aa-9c07-11d1-f79f-00c04fc2dcd2"
| where SubjectUserName !endswith "$"
| where SubjectUserName !in ("AzureADConnect", "MSOL_*")
| project TimeGenerated, SubjectUserName, SubjectDomainName, Computer, Properties
| sort by TimeGenerated desc
Sigma ルール -- DCSync アクティビティ
title: DCSync Activity Detected - Non-DC Replication Request
status: stable
logsource:
product: windows
service: security
detection:
selection:
EventID: 4662
Properties|contains:
- '1131f6aa-9c07-11d1-f79f-00c04fc2dcd2'
- '1131f6ad-9c07-11d1-f79f-00c04fc2dcd2'
filter_dc:
SubjectUserName|endswith: '$'
condition: selection and not filter_dc
level: critical
tags:
- attack.credential_access
- attack.t1003.006
よくあるシナリオ
- Mimikatz による DCSync:ドメイン管理者権限を持つ攻撃者が
lsadump::dcsync /user:krbtgtを実行し、ゴールデンチケット作成用の KRBTGT ハッシュを抽出します。 - Impacket secretsdump:
secretsdump.py domain/user:password@dc-ipを使ったリモート DCSync により、ドメイン内のすべてのハッシュを抽出します。 - 委任されたレプリケーション権限:攻撃者が DCSync を実行する前に、ACL を変更して自分に Replicating Directory Changes 権限を付与します。
- Azure AD Connect の悪用:正規のレプリケーション権限を持つ Azure AD Connect サービスアカウントを侵害します。
- DSInternals PowerShell:
Get-ADReplAccountコマンドレットを使って、特定のアカウントの認証情報をレプリケートします。
Output Format
Hunt ID: TH-DCSYNC-[DATE]-[SEQ]
Alert Severity: Critical
Source Account: [Account requesting replication]
Source Machine: [Hostname/IP of requestor]
Target DC: [Domain controller receiving request]
Replication Rights: [GUIDs accessed]
Timestamp: [Event time]
Legitimate DC: [Yes/No]
Known Service Account: [Yes/No]
Risk Assessment: [Critical - non-DC replication detected]
コメント
Markdown 対応