ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Anthropic-Cybersecurity-Skills 实战:基于 Event 4662 的 Active Directory DCSync 攻击检测与猎捕指南

Anthropic-Cybersecurity-Skills 实战:基于 Event 4662 的 Active Directory DCSync 攻击检测与猎捕指南 Anthropic-Cybersecurity-Skills 实战基于 Event 4662 的 Active Directory DCSync 攻击检测与猎捕指南【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-SkillsDCSync 是 MITRE ATTCK T1003.006OS Credential Dumping: DCSync技术攻击者通过滥用 Active DirectoryAD的目录复制权限模拟域控制器向真实 DC 发起DsGetNCChanges请求从而在不触碰目标主机的情况下批量提取密码哈希。本文以本仓库skills/detecting-dcsync-attack-in-active-directory技能包为骨架结合其配套 Python 检测脚本与参考文档系统讲解 DCSync 的攻击原理、三个关键复制 GUID、基于 Event 4662 的 Splunk / KQL / Sigma 检测查询以及从权限审计、主动监控到应急处置的完整猎捕流程。读完本文你将掌握一套可直接落地的非域控制器账户请求复制权限即告警的检测方案并能在应急处置中对 KRBTGT 哈希泄露、黄金票据风险做出准确评估。DCSync 攻击原理与检测核心什么是 DCSyncDCSync 是 Mimikatz 中lsadump::dcsync命令背后的攻击思路域内具备复制目录更改权限的账户可以通过 MS-DRSRMicrosoft Directory Replication Service Remote Protocol从域控制器复制目录数据其中包含密码哈希。攻击者无需直接访问 DC 的内存或 NTDS.dit 文件只需向 DC 发起DsGetNCChangesRPC 调用即可逐项提取包括 KRBTGT 在内的所有账户哈希。在本仓库技能包的元数据中SKILL.md该技能被标注为mitre_attack: T1003.006并关联了 NIST CSF 的 DE.CM-01、DE.AE-02、DE.AE-07、ID.RA-05 以及多个 D3FEND 技术映射文件 mappings/README.md 也确认 DCSyncT1003.006是项目中最受关注的技术之一。攻击的典型闭环是攻击者获得具备复制权限的账户域管、被篡改 ACL 的普通账户、被攻陷的 Azure AD Connect 服务账户等使用 Mimikatz 或 Impacketsecretsdump.py发起 DCSync拿到哈希后用于 Pass-the-Hash 或制作黄金票据Golden Ticket。三个决定检测成败的复制 GUID目录复制权限的授予对象是三个扩展权限GUID检测的核心就是盯住它们出现在 Event 4662 的Properties字段中。技能包的 api-reference.md 与 standards.md 均给出了完整定义GUID权限名称风险说明1131f6aa-9c07-11d1-f79f-00c04fc2dcd2DS-Replication-Get-Changes发起复制的基本权限DCSync 的充分条件1131f6ad-9c07-11d1-f79f-00c04fc2dcd2DS-Replication-Get-Changes-All可复制含密码等机密属性的完整数据风险最高89e95b76-444d-4c62-991a-0facbeda640cDS-Replication-Get-Changes-In-Filtered-Set过滤集复制权限部分场景下同样可被滥用检测原则非常简单凡是持有这三个 GUID 权限、且发起复制请求的账户不是合法域控制器或已备案服务账户的都应当告警。检测前提日志与审计策略配置前置条件清单技能包 SKILL.md 明确了启用本检测方案的环境要求Windows 安全事件日志中开启Event ID 4662目录服务对象访问高级审核策略中启用Audit Directory Service Access域控制器事件转发至 SIEMSplunk / Sentinel 等掌握合法域控制器的主机名与 IP 清单在域对象上配置 SACL审计目录服务访问。配套的猎捕模板 template.md 中的 Pre-Hunt Checklist 进一步要求确认所有 DC 上已启用 4662 审计策略、域根对象已配置 SACL、DC 资产清单已建档、拥有复制权限的已知服务账户已登记、混合环境中已识别 Azure AD Connect 账户。启用审计策略按 workflows.md 的 Phase 2使用auditpol在每台 DC 上启用目录服务访问审计auditpol /set /subcategory:Directory Service Access /success:enable /failure:enable随后在域根对象上配置 SACL审计对象为 Everyone 或 Authenticated Users访问类型为控制访问并勾选上述三个复制 GUID。只有 SACL 配置到位Windows 才会为复制权限的访问生成 4662 事件——这一步缺失会导致检测盲区。猎捕工作流七步检测法技能包 SKILL.md 给出了完整的七步工作流workflows.md 将其细化为五个 Phase可归纳为识别合法复制源按主机名、IP、计算机账户登记所有域控制器只有它们应当执行目录复制启用所需审计通过高级审核策略在 DC 上捕获带复制 GUID 的 Event 4662监控复制权限访问跟踪三个关键 GUID 的访问行为即上表标记非 DC 复制请求任何非域控制器账户请求复制权限即触发告警关联网络流量DCSync 会产生从攻击机到 DC 的 MS-DRSR/RPC 复制流量监控来自非 DC IP 的DrsGetNCChangesRPC 调用调查来源上下文核查发起复制请求的进程、账户与机器检查凭据滥用检测到 DCSync 后跟进哈希的后续使用Pass-the-Hash、黄金票据创建。其中第 1、2 步属于建立基线是整个方案能够低误报运行的前提先枚举合法 DC 与拥有复制权限的账户PowerShell BloodHound再部署检测最后才是持续监控与调查。检测查询Splunk、KQL 与 Sigma 三件套Splunk基于 Event 4662 的 DCSync 检测技能包 SKILL.md 提供的基础查询indexwineventlog EventCode4662 | 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其中的两个where NOT是降低误报的关键.*\\$$过滤掉计算机账户合法 DC 复制请求的账户名以$结尾known_svc_account1等占位符用于排除已备案的服务账户实际部署时应替换为 DC 账户清单与 Azure AD Connect 账户。workflows.md 的 Phase 3 给出了更工程化的实时检测版本它通过rex提取 GUID、用 lookup 表判定账户是否属于 DC并对命中事件直接赋CRITICAL级别indexwineventlog sourceWinEventLog:Security EventCode4662 | rex fieldProperties (?guid\{[0-9a-f-]\}) | where guid IN ({1131f6aa-9c07-11d1-f79f-00c04fc2dcd2}, {1131f6ad-9c07-11d1-f79f-00c04fc2dcd2}, {89e95b76-444d-4c62-991a-0facbeda640c}) | lookup dc_accounts SubjectUserName OUTPUT is_dc | where is_dc!true | eval alert_severityCRITICAL | table _time SubjectUserName SubjectDomainName Computer guid alert_severity同阶段还提供了网络层检测——直接对 Zeek 的 DCE/RPC 日志匹配DRSGetNCChanges操作从数据平面交叉验证日志层告警indexzeek sourcetypedce_rpc | where operationDRSGetNCChanges | lookup domain_controllers src_ip OUTPUT is_dc | where is_dc!true | table _time src_ip dst_ip operationKQLMicrosoft Sentinel 检测SKILL.md 提供的 Sentinel KQL 查询利用!endswith $与!in完成同样的白名单过滤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注意MSOL_*是 Azure AD Connect 同步服务账户的常见命名模式在混合环境中必须显式排除否则会被误报为 DCSync。Sigma跨平台规则SKILL.md 提供可直接用于 Sigma 兼容 SIEM如 Elastic、Splunk ES、Chronicle的规则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其逻辑与 Splunk 查询完全一致selection命中复制 GUIDfilter_dc排除计算机账户。若要进一步降低误报可在filter_dc中追加已知复制服务账户清单。源码级实现仓库自带的两套检测脚本agent.pyEVTX 原生日志解析agent.py 是本仓库技能包提供的核心检测 Agent依赖python-evtx直接解析 Windows Security EVTX 文件。其检测逻辑严格对应查询中的过滤链条全局定义REPLICATION_GUIDS字典agent.py与文档中的三个 GUID 一一对应load_dc_accounts()从文本文件加载已知 DC 账户支持#注释行并统一转为大写比较parse_4662_events()逐条读取 EVTX 记录先过滤EventID4662/EventID再从Data NameProperties中匹配复制 GUID同时提取SubjectUserName、SubjectDomainName、SubjectLogonId、ObjectName、SystemTime、Computer等字段白名单判定agent.py账户名以$结尾且命中 DC 清单时跳过合法 DC 复制账户名含域前缀命中 DC 清单时同样跳过严重度分级agent.py未知计算机账户$结尾发起复制请求判定为HIGH未知用户账户发起则判定为CRITICAL——用户账户被滥用通常意味着更直接的凭据泄露。CLI 用法见 api-reference.mdpython agent.py --security-log Security.evtx --dc-accounts known_dcs.txt python agent.py --generate-sigma python agent.py --check-perms--check-perms会输出一段内嵌 PowerShellagent.py用于在装有 RSAT 的 DC 上审计 ACL 中授予了复制权限的账户--generate-sigma以结构化字典生成上述 Sigma 规则输出为 JSON包含total_4662_events、dcsync_detections与total_detections等字段。process.py通用日志格式批量猎捕process.py 是面向日常猎捕的版本支持 JSON / CSV含 EVTX 导出的 CSV输入适合直接喂给从 SIEM 导出的数据python process.py --input events.json --dc-list known_dcs.txt --output ./dcsync_hunt_output其检测差异点在于用正则GUID_PATTERN从Properties中提取全部 GUID 再与REPLICATION_GUIDS比对process.py对日志格式更宽容严重度规则是命中DS-Replication-Get-Changes-All即CRITICAL否则HIGHprocess.py因为该权限包含密码等机密属性输出双产物dcsync_findings.json结构化结果含hunt_id前缀TH-DCSYNC-日期与dcsync_report.md按严重度排版的 Markdown 报告process.py。两套脚本共同印证了检测规则的核心排除已知 DC 与备案账户后任何命中复制 GUID 的 4662 事件即告警。python-evtx未安装时 agent.py 会返回明确错误提示pip install python-evtx而 process.py 无需该依赖更适合纯 JSON/CSV 场景。权限审计摸清谁有 DCSync 能力检测的前提是知道哪些账户本就持有复制权限。技能包提供两条审计路径PowerShell枚举 ACL 中的复制权限api-reference.md 的基础版本$domain (Get-ADDomain).DistinguishedName $acl Get-Acl AD:\$domain $acl.Access | Where-Object { $_.ObjectType -in ( 1131f6aa-9c07-11d1-f79f-00c04fc2dcd2, 1131f6ad-9c07-11d1-f79f-00c04fc2dcd2 ) } | Select IdentityReference, ObjectTypeworkflows.md 的完整版Phase 1额外加载 ActiveDirectory 模块、通过Get-ADRootDSE获取域名并过滤AccessControlType -eq Allow更适合基线登记Import-Module ActiveDirectory $rootDSE Get-ADRootDSE $domainDN $rootDSE.defaultNamingContext $acl Get-Acl AD:\$domainDN $acl.Access | Where-Object { $_.ObjectType -eq 1131f6ad-9c07-11d1-f79f-00c04fc2dcd2 -or $_.ObjectType -eq 1131f6aa-9c07-11d1-f79f-00c04fc2dcd2 } | Select-Object IdentityReference, ActiveDirectoryRights, ObjectTypeBloodHound图查询复制权限路径workflows.md 提供 Cypher 查询找出所有持有GetChanges/GetChangesAll权限的非域对象MATCH p(n)-[:GetChanges|GetChangesAll]-(d:Domain) WHERE NOT n:Domain RETURN n.name, labels(n)运行结果应逐条登记到模板的 Accounts with Replication Rights Audit 表中标注账户类型User/Service/Computer、权限Get-Changes / Get-Changes-All、是否合法及理由形成环境基线白名单。合法复制源识别standards.md 给出了合法却容易误报的四类复制源及其判别特征来源理由判别方式域控制器正常 AD 复制计算机账户以$结尾Azure AD Connect混合身份同步MSOL_服务账户备份软件AD 备份操作已备案的服务账户迁移工具跨林迁移临时、已文档化的操作这正是所有查询中反复出现的$后缀过滤与MSOL_排除规则的现实依据。调查取证从告警到定案定位来源机器日志层告警先拿到的是账户名。要定位发起复制的物理机器需将 Event 4662 与登录事件Event 4624LogonType3网络登录关联workflows.md Phase 4indexwineventlog EventCode4624 LogonType3 | where TargetUserName[suspected_account] | table _time TargetUserName IpAddress WorkstationName LogonType排查凭据的后续滥用DCSync 得手后最常见的下一步是请求 KRBTGT 服务票据用于构造黄金票据。技能包提供了基于Event 4769Kerberos 服务票据请求的追踪查询重点关注针对 KRBTGT 且加密类型为0x17RC4的请求indexwineventlog EventCode4769 | where ServiceNamekrbtgt | where TicketEncryptionType0x17 | table _time TargetUserName ServiceName IpAddress TicketEncryptionTypeRC4 加密的 KRBTGT 票据请求是黄金票据滥用的强信号应与 DCSync 告警时间线交叉比对。关联事件 ID 全景standards.md 汇总了完整的事件 ID 关联矩阵事件 ID来源用途4662Security目录服务对象访问主检测4624Security成功登录关联复制来源4672Security分配特殊权限管理员登录4738Security用户账户更改权限授予5136Security目录服务对象修改ACL 变更其中 5136 可用于捕获攻击者先给自己授予复制权限再 DCSync的路径对应常见场景 3而 4738 可追踪账户属性的异常变更。常见攻击场景与影响评估五个典型场景技能包 SKILL.md 归纳了最常见的攻击路径Mimikatz DCSync域管运行lsadump::dcsync /user:krbtgt提取 KRBTGT 哈希以制作黄金票据Impacket secretsdump通过secretsdump.py domain/user:passworddc-ip远程批量提取域内全部哈希委派复制权限攻击者先通过 ACL 修改为自己授予复制目录更改权限再执行 DCSyncAzure AD Connect 滥用攻陷本就持有合法复制权限的 Azure AD Connect 服务账户DSInternals PowerShell使用Get-ADReplAccount命令定向复制特定账户凭据。影响评估清单检测命中后按模板 template.md 的 Post-DCSync Impact Assessment 逐项核实损害面检查项说明KRBTGT 哈希是否可能泄露若是黄金票据攻击成为可能域管哈希是否被提取影响全部域内资产的受控程度服务账户凭据是否面临风险影响横向移动与持久化能力黄金票据是否可能被创建决定是否需要 KRBTGT 双次重置应急响应五步法按 workflows.md Phase 5 与模板 Response Actions响应顺序如下禁用立即禁用被攻陷账户重置KRBTGT 密码重置两次、间隔 12 小时第一次使现有黄金票据失效第二次清理遗留票据链撤销移除未授权的复制权限复查所有 DCSync 能力账户调查对来源机器开展取证在网络层封锁来源 IP隔离主机监控持续追踪后续凭据滥用Pass-the-Hash、黄金票据并重置受影响服务账户密码。长期加固方向包括实施分层管理模型Tiered Administration、启用 Microsoft Defender for Identity 的原生 DCSync 告警、将管理账户纳入 Protected Users 安全组。猎捕模板与输出规范技能包提供了可直接复用的模板 template.md包含完整字段Hunt MetadataHunt ID: TH-DCSYNC-YYYY-MM-DD-NNN、Analyst、Status、Hypothesis、Pre-Hunt Checklist、Detection Findings 表、复制权限账户审计表、影响评估表与响应动作清单。检测结果的标准化输出格式SKILL.mdHunt 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]此输出可直接用于 SOAR 编排、告警工单与事件时间线重建也可作为 workflows.md 中process.py生成dcsync_report.md的补充字段。框架映射与持续运营在项目整体框架映射中该技能属于mappings/目录所覆盖的 ATTCK 技术族。从源码结构与元数据看其设计同时满足 NIST CSF 2.0DE.CM-01 持续监控、DE.AE-02 异常活动分析、DE.AE-07 攻击向量关联、ID.RA-05 威胁情报与 D3FEND 的多个防御技术平台监控、网络流量分析、客户端-服务器负载剖析等适合作为企业 SIEM 检测工程中凭据访问类用例的落地范本。持续运营建议DCSync 检测依赖的 DC 清单、复制权限账户清单属于动态资产应随 AD 变更定期用 workflows.md Phase 1 的 PowerShell / BloodHound 查询刷新白名单MSOL_*、备份账户等合法复制源在变更后应及时同步到 Splunk lookup、KQL!in列表与 Sigmafilter_dc中避免因基线过期导致漏报或大面积误报。最后务必先在测试域内用 Mimikatz / Impacket 复现一次 DCSync仅限授权环境验证 4662 事件是否真实产生、SACL 是否生效再投入生产监控。【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进