ARTICLE · INTELLIGENCE

战地情报 · 详情页

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

基于 Anthropic-Cybersecurity-Skills 的 Active Directory 蜜标部署 API 全解析:从 PowerShell 生成器到 SIEM 检测规则

基于 Anthropic-Cybersecurity-Skills 的 Active Directory 蜜标部署 API 全解析:从 PowerShell 生成器到 SIEM 检测规则 基于 Anthropic-Cybersecurity-Skills 的 Active Directory 蜜标部署 API 全解析从 PowerShell 生成器到 SIEM 检测规则【免费下载链接】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导读本文围绕 deploying-active-directory-honeytokens 技能的 API 参考文档系统讲解如何在 Active Directory 中部署基于欺骗的蜜标Honeytoken防御体系包括伪造特权账户AdminCount1、用于 Kerberoasting 检测的假 SPNhoneyroasting、带 cpassword 陷阱的诱饵 GPO以及误导攻击者的虚假 BloodHound 路径。通过阅读本文你将掌握PowerShellGenerator、SIEMRuleGenerator、ADHoneytokenMonitor、HoneytokenDeployer四个核心类的完整接口契约、Deploy-ADHoneytokens.ps1模块的六个导出函数以及 agent.py CLI 的八个动作能够独立完成从部署到监控、再到 SIEM 规则导出的完整闭环。一、技能全景欺骗式检测在 AD 中的定位该技能在仓库中属于deception-technology欺骗技术子域其设计思想是传统基于签名的检测对新型攻击手段失效而蜜标提供近零误报的高保真检测——任何对诱饵对象的交互本质上都是可疑的。技能元数据见 SKILL.md声明了以下框架映射MITRE ATTCKT1558.003Kerberoasting、T1558.004AS-REP Roasting、T1110.003密码喷洒、T1003.006凭据转储、T1552.006GPP 密码NIST CSF 2.0DE.CM-01持续监控、DE.AE-06异常活动关联、PR.IR-01响应计划。仓库的 ATTACK_COVERAGE.md 也印证了这一映射关系该技能是 T1484.001、T1552.006、T1558.003、T1087.002 等技术的覆盖项。其架构由三层构成层次组件作用部署层PowerShellGenerator/Deploy-ADHoneytokens.ps1生成可执行的 PowerShell 部署脚本检测层ADHoneytokenMonitor分析 Windows 安全事件日志并产出结构化告警集成层SIEMRuleGenerator生成 Sigma、Splunk SPL、Sentinel KQL 检测规则下文以 API 参考文档 references/api-reference.md 为主线逐一展开。二、PowerShellGenerator五类部署脚本的生成引擎PowerShellGenerator源码见 scripts/agent.py是纯静态方法的脚本工厂每个方法返回一段完整可执行的 PowerShell 字符串。2.1generate_create_honeytoken_account(...)伪造特权账户参数类型默认值说明sam_account_namestr必填蜜标账户的 sAMAccountNamedisplay_namestr必填显示名称descriptionstr必填描述字段需伪装得像真实账户ou_dnstr必填目标 OU 的 Distinguished Namepassword_lengthint128随机密码长度set_admin_countboolTrue是否设置 AdminCount1account_age_daysint5475密码回拨天数约 15 年返回完整的 PowerShell 脚本字符串。生成的脚本依次执行以下 AD 操作与 agent.py 中的模板一一对应创建用户通过New-ADUser创建账户密码由 ASCII 33–126 字符随机生成-join ((33..126) | Get-Random -Count $PasswordLength | ForEach-Object { [char]$_ })并设置PasswordNeverExpires$true、CannotChangePassword$true设置 AdminCount1Set-ADUser -Replace {AdminCount 1}使 BloodHound/SharpHound 将账户识别为高价值目标回拨密码时间将pwdLastSet通过(Get-Date).AddDays(-$AccountAgeDays).ToFileTime()回拨至 15 年前模拟长期未轮换的遗留服务账户加入可见组Add-ADGroupMember将账户加入 Remote Desktop Users提高攻击者兴趣配置 SACL 审计以EveryoneSID S-1-1-0为主体、ReadProperty权限、Success审计标志创建ActiveDirectoryAuditRule并写入账户 ACL。对应检测事件Event ID 4662访问了目录服务对象。任何对该蜜标账户 DACL 的读取都将触发审计。对应的 PowerShell 模块函数为New-HoneytokenAdmin见 Deploy-ADHoneytokens.ps1两者参数与实现完全一致还额外返回Get-ADUser -Properties *的完整对象供脚本继续使用。2.2generate_add_honey_spn(...)假 SPN 与 honeyroasting参数类型默认值说明sam_account_namestr必填要添加 SPN 的账户service_classstrMSSQLSvcSPN 服务类hostnamestr必填伪造主机名portint1433服务端口返回注册 SPN 并启用 RC4AES 加密的 PowerShell 脚本。核心原理该 SPN 指向不存在的服务因此任何 TGS 票证请求都是确定性的恶意行为即 honeyroasting。脚本实现agent.py要点Set-ADUser -ServicePrincipalNames {Add $SPN}注册形如MSSQLSvc/sql-legacy-bak01.corp.example.com:1433的假 SPN检查msDS-SupportedEncryptionTypes若未包含0x4RC4则整体设置为280x4 0x8 0x10 RC4 AES128 AES256。这一设计意图在源码注释中明确攻击者倾向选择 RC4 以降低破解成本保留 RC4 使蜜标对 Kerberoast 工具更具吸引力。对应检测事件Event ID 4769请求了 Kerberos TGS 票证当ServiceName匹配蜜标账户时即判为恶意。2.3generate_decoy_gpo(...)cpassword 凭据陷阱参数类型默认值说明gpo_namestr必填GPO 显示名称decoy_usernamestr必填cpassword 陷阱中的用户名decoy_domainstr必填短域名如 CORPsysvol_pathstr必填SYSVOL Policies 路径enable_saclboolTrue是否在 GPO 文件夹上设置 SACL 审计返回创建 GPO 目录结构、植入带 cpassword 的 Groups.xml、创建密码不同的陷阱 AD 账户并设置 SACL 的完整脚本。关键实现细节agent.py生成随机 GPO GUID在 SYSVOL 下创建{GUID}\Machine\Preferences\Groups目录结构生成伪装密码H0n3yT0k3n_Tr4p_2024!并做 Base64 编码写入Groups.xml的cpassword属性。注意源码 agent.py 中声明了 GPP 加密所用的公开 AES 密钥常量GPP_AES_KEY_B64这正是攻击者用 Get-GPPPassword、gpp-decrypt、CrackMapExec 等工具可以离线解密的同一把钥匙——他们的成功解密恰恰触发了我们布下的陷阱同步创建与 XML 中同名的真实 AD 陷阱账户但密码与 GPP 中的不同随机 64 位从而保证任何使用 cpassword 凭据的登录都会失败并产生 4625设置文件夹级 SACLFileSystemAuditRule(Everyone, ReadData, ContainerInherit,ObjectInherit, ...)任何人读取 GPO 文件夹即记录审计。完整检测链脚本末尾的DETECTION CHAIN输出攻击者枚举 SYSVOL →Event ID 4663文件读取攻击者离线解密 cpassword → 无事件离线行为攻击者使用解密凭据登录 →Event ID 4625登录失败关联 4663 4625 且来源 IP 一致 确认攻击者。2.4generate_deceptive_bloodhound_path(...)虚假攻击路径参数类型默认值说明honeytoken_samstr必填蜜标账户名target_groupstrDomain Admins欺骗路径指向的高价值组intermediate_oustrOUService Accounts中间对象所在 OU返回创建 GenericAll ACE、欺骗性中间组以及带 deny 安全网的 WriteDacl 边的脚本。生成的 BloodHound 路径Remote Desktop Users -[GenericAll]- honeytoken_account honeytoken_account -[MemberOf]- IT-Infrastructure-Admins honeytoken_account -[WriteDacl]- Domain Admins (blocked by deny ACE)源码实现agent.py的三步策略将Remote Desktop Users组以GenericAll权限授予蜜标账户 ACL创建名为IT-Infrastructure-Admins的 DomainLocal 安全组名字本身极具欺骗性并把蜜标加入其中构成MemberOf边在 Domain Admins 组 ACL 上先添加GenericAll的Deny 规则安全网再添加蜜标账户的WriteDaclAllow 规则——这条边在 BloodHound 图中可见但实际利用被 deny 规则阻断杜绝了真实提权风险。该设计体现了既要诱敌深入又不能真的把攻击者放进 Domain Admins的安全边界思想。2.5generate_validation_script(sam_account_name)部署完整性校验生成用于验证蜜标部署完整性的 PowerShell 脚本其检查项及通过标准为检查项通过标准账户存在能在 AD 中找到账户账户启用Enabled TrueAdminCount1AdminCount 属性为 1SPN 已配置至少注册一个 SPN密码年龄大于 365 天SACL 审计至少配置一条审计规则组成员关系列出全部组INFO 级RC4 支持msDS-SupportedEncryptionTypes 含 0x4Kerberos 审计auditpol显示已启用 Kerberos TGS 审计校验脚本会汇总 PASS / WARN / FAIL 结果并输出格式化表格其中 Kerberos 审计一项若未启用会直接给出修复命令auditpol /set /subcategory:Kerberos Service Ticket Operations /success:enable见 agent.py。三、SIEMRuleGenerator三大平台的检测规则工厂SIEMRuleGeneratoragent.py负责将蜜标清单转化为可落地的检测查询。3.1generate_detection_rules(...)接口参数类型说明honeytoken_accountslist[str]需要监控的账户名honey_spnslist[str]需要监控的 SPN 值gpo_trap_accountslist[str]GPO 凭据陷阱的用户名siemstr目标平台sigma、splunk、sentinel返回list[dict]每个规则包含title、detection_logic、rule完整查询文本。传入不支持的平台会抛出ValueError源码通过字典映射generators.get(siem)实现平台分发。3.2 Sigma 规则规则Event IDMITRE 技术Honeytoken Kerberoast Detected4769T1558.003Honeytoken GPO Credential Use Detected4624, 4625T1552.006Honeytoken AD Object Accessed4662T1087.002生成的 Sigma 规则结构完整含id随机 UUID、status: production、level: critical、logsourceproduct: windows / service: security、detection选择条件及condition: selection and not filter_machine_accounts过滤以$结尾的机器账户见 agent.py可直接被 Sigma 转换器翻译为各检测引擎查询。3.3 Splunk SPL 规则规则说明Honeytoken Kerberoast Detection索引 wineventlogEventCode4769且按ServiceName过滤并用case()将加密类型映射为可读描述0x17→RC4-HMAC 弱加密、0x12→AES256、0x11→AES128附加alert_severitycritical与mitre_techniqueT1558.003Honeytoken GPO Credential UseEventCode4624 OR 4625且TargetUserName匹配logon_result字段区分成功/失败并标注SUCCESS - INVESTIGATE IMMEDIATELYAttack Chain Correlation攻击链关联4663SYSVOL 枚举4625凭据使用按src_ip聚合stats统计攻击阶段与事件类型数量where event_types 2确认完整攻击链其中关联规则的stats earliest(_time) ... by src_ipvalues(stage)逻辑agent.py把读文件与用凭据两个独立事件串成一条时间线是降低噪声、提高置信度的关键设计。3.4 Microsoft Sentinel KQL 规则规则说明Honeytoken Kerberoast DetectionSecurityEvent表EventID 4769且ServiceName in (...)case()映射加密类型并注入AlertSeverity、MitreTechnique字段Honeytoken GPO Credential UseEventID in (4624, 4625)且TargetUserName in (...)iff()标记成功登录为 SUCCESS - IMMEDIATE INVESTIGATION REQUIRED3.5export_rules(output_dir, formatjson)将所有已生成规则落盘json格式写入rule_{i1}_{title 前 40 字符}.jsonyaml格式写入rule_{i1}.yml直接保存rule[rule]的 Sigma YAML 文本返回保存的文件路径列表。四、ADHoneytokenMonitor事件日志分析与告警生成ADHoneytokenMonitoragent.py是纯 Python 的离线事件分析器构造函数ADHoneytokenMonitor(config_pathNone)可从 JSON 配置文件加载初始配置。4.1register_honeytoken(identifier, token_typeadmin_account, metadataNone)注册待监控的蜜标token_type有三种类型描述admin_account伪造的特权 AD 账户spn伪造的服务主体名称gpo_credential诱饵 GPO cpassword 陷阱账户每个注册项自动生成HT-AD-前缀的token_id与注册时间戳并维护alert_count计数器。4.2analyze_event_log(events)接收事件列表每个事件是含EventID/EventCode的字典返回告警列表。事件 ID 到告警的映射Event ID告警类型严重级4769KERBEROAST_HONEYTOKENcritical4624HONEYTOKEN_LOGONcritical4625HONEYTOKEN_LOGON_FAILEDcritical4662HONEYTOKEN_DACL_READhigh5136HONEYTOKEN_GPO_MODIFIEDcritical每个告警为结构化字典包含alert_id、alert_type、severity、description、mitre_technique、source_ip、source_host等字段。分析逻辑agent.py中值得关注的点4769 事件会把TicketEncryptionType通过KERBEROS_ENCRYPTION常量表0x17/0x12/0x11转换为可读描述——该常量表定义在文件头部agent.py与 Splunk 规则中的case()映射同源4624成功登录映射到T1078有效账户4625失败登录映射到 T1552.0065136对象修改仅在注册类型为gpo_credential时触发映射到T1484.001域策略修改。4.3 其他方法generate_detection_rules(siemsigma)按注册类型自动分组admin_account/spn→ 账户与 SPN 列表gpo_credential→ 陷阱账户列表委托给SIEMRuleGeneratorget_alert_summary()按严重级、类型、来源 IP 聚合并列出被触发的蜜标账户集合。五、HoneytokenDeployer端到端部署编排器HoneytokenDeployeragent.py将上述组件串联为一次调用即可产出全部交付物的编排层。5.1 构造函数HoneytokenDeployer(domaincorp.example.com, service_account_ouOUService Accounts, sysvol_path)未显式指定sysvol_path时自动推导为\\{domain}\SYSVOL\{domain}\Policies。构造时内部实例化PowerShellGenerator与SIEMRuleGenerator。5.2generate_realistic_name()按组织常见命名模式生成逼真的服务账户名。源码中维护了模板库agent.py前缀svc_服务包括 sqlbackup、exchange_legacy、sharepoint_crawl、adfs_proxy、scom_monitoring、sccm_push、wsus_sync、dns_update、print_spool、backup_exec、veeam_proxy、citrix_sf 等、admin.maintenance、helpdesk_legacy、deployment、monitoring以及无前缀的 PascalCase 名称ScanService、ReportRunner、TaskScheduler、AutomationSvc。SPN 服务类同样来自常量表agent.pyMSSQLSvc、HTTP、TERMSRV、exchangeMDB、FIMService、WSMAN、mongodb、postgres、oracle。返回含sam_account_name、display_name、hostname的字典其中主机名形如{服务缩写}-legacy-{两位随机数}.{domain}。5.3deploy_full_suite(...)参数类型默认值说明token_countint3蜜标账户数量include_spnboolTrue添加假 SPNinclude_gpoboolTrue创建诱饵 GPOinclude_bloodhoundboolTrue创建欺骗性 BloodHound 路径siem_typestrsigma检测规则目标 SIEM返回含deployment_idDEPLOY-前缀、tokens、scripts、detection_rules的字典。输出物按固定编号组织agent.py编号文件类型0101_create_{sam}.ps1create_account0202_add_spn_{sam}.ps1add_spn0303_create_decoy_gpo.ps1decoy_gpo0404_create_bloodhound_paths.ps1bloodhound_deception0505_validate_deployment.ps1validation其中 GPO 陷阱用户名自动生成admin_maintenance_{两位随机数}SPN 的端口从[1433, 443, 8080, 5432, 3306, 27017]中随机选择以匹配不同数据库/服务特征。5.4save_deployment(deployment, output_dir)将全部交付物落盘PowerShell 脚本存入scripts/子目录检测规则JSON含完整元数据存入detection_rules/另生成deployment_manifest.json含 deployment_id、时间、域名、令牌清单、脚本与规则清单返回所有保存的文件路径。六、PowerShell 模块Deploy-ADHoneytokens.ps1模块文件 scripts/Deploy-ADHoneytokens.ps1 是 Python 生成器产物的手工版等价实现开头声明了前置条件#Requires -Modules ActiveDirectory #Requires -Version 5.16.1 导出函数一览函数说明New-HoneytokenAdmin创建 AdminCount1、带 SACL 与回拨密码的蜜标 AD 账户Add-HoneytokenSPN注册假 SPN 用于 Kerberoasting 检测New-DecoyGPO在 SYSVOL 创建带 cpassword 陷阱的诱饵 GPONew-DeceptiveBloodHoundPath创建伪造的 BloodHound 攻击路径Test-HoneytokenDeployment校验蜜标部署完整性支持-ValidateAdminCount、-ValidateSPN、-ValidateGPODecoy、-ValidateAuditPolicy开关Deploy-FullHoneytokenSuite部署完整蜜标套件模块使用Set-StrictMode -Version Latest与$ErrorActionPreference Stop严格模式内部通过Write-DeployLog维护带时间戳的部署日志$Script:DeploymentLog。Deploy-FullHoneytokenSuite内置了五个预置服务模板Deploy-ADHoneytokens.ps1svc_sqlbackup_legacy(MSSQLSvc)、svc_exchange_transport(exchangeMDB)、svc_scom_monitor(HTTP:5723)、svc_adfs_proxy_old(HTTP:443)、svc_citrix_storefront(HTTP:443)可直接投入生产环境模拟。6.2 运行前提来自 SKILL.mdDomain Admin 或委派的 AD 管理权限AD 域推荐 Windows Server 2016事件日志转发至 SIEMSplunk、Sentinel、ElasticPowerShell 5.1 与 ActiveDirectory 模块、GPMC对 AD 安全、Kerberos 与 BloodHound 攻击路径的基本理解。七、Windows 事件 ID 速查表整个检测体系围绕以下事件 ID 展开技能元数据声明监控 4769/4625/4662/5136完整速查见 api-reference.mdEvent ID描述蜜标用途4769请求了 Kerberos TGS 票证针对蜜标 SPN 的 Kerberoast4768请求了 Kerberos TGT对蜜标账户的 AS-REP 烤制4625登录失败诱饵 GPO 凭据被使用4624登录成功蜜标账户被入侵4662访问了目录服务对象对蜜标用户的 DACL 读取4648使用显式凭据登录哈希传递PtH检测5136修改了目录服务对象GPO 被修改5137创建了目录服务对象模仿诱饵的 GPO 创建4663尝试访问对象SYSVOL 诱饵文件被读取八、CLI 使用一次命令完成部署闭环agent.py通过argparse暴露了八个动作agent.py默认动作为full_deploy。# 完整部署生成全部脚本、规则与清单 python agent.py --action full_deploy \ --domain corp.example.com \ --ou OUService Accounts \ --token-count 3 \ --siem sigma \ --output-dir honeytoken_deployment # 仅生成检测规则 python agent.py --action generate_rules \ --account-name svc_sqlbackup_legacy \ --siem splunk # 生成单个账户创建脚本 python agent.py --action deploy_account \ --account-name svc_sqlbackup_legacy \ --domain corp.example.com # 生成 SPN 添加脚本 python agent.py --action deploy_spn \ --account-name svc_sqlbackup_legacy # 生成诱饵 GPO 脚本 python agent.py --action deploy_gpo \ --domain corp.example.com # 生成 BloodHound 欺骗脚本 python agent.py --action deploy_bloodhound \ --account-name svc_sqlbackup_legacy # 校验部署 python agent.py --action validate \ --account-name svc_sqlbackup_legacy # 分析事件日志并输出蜜标告警 python agent.py --action analyze_logs \ --account-name svc_sqlbackup_legacy \ --event-log events.jsonCLI 参数表参数默认值说明--actionfull_deploy执行的动作--domaincorp.example.comAD 域 FQDN--ouOUService Accounts蜜标账户所在 OU--sysvol自动推导SYSVOL Policies 路径--account-namesvc_sqlbackup_legacy蜜标账户名--token-count3部署的蜜标数量--siemsigma目标 SIEMsigma/splunk/sentinel--output-dirhoneytoken_deployment输出目录--include-spnTrue包含假 SPN--include-gpoTrue包含诱饵 GPO--include-bloodhoundTrue包含 BloodHound 欺骗--event-logNone用于日志分析的事件 JSON 路径analyze_logs动作会加载 JSON 事件列表支持EventID或EventCode两种字段名调用ADHoneytokenMonitor逐条匹配输出每条告警的严重级、类型、描述、来源 IP、账户与 MITRE 编号最后给出按来源 IP 聚合的汇总。九、与手工 PowerShell 流程的衔接若选择完全手工执行不使用 Python 生成器SKILL.md 提供了六步流程导入模块 →New-HoneytokenAdmin创建假特权账户 →Add-HoneytokenSPN注册假 SPN →New-DecoyGPO部署 cpassword 陷阱 →New-DeceptiveBloodHoundPath制造虚假路径 →Test-HoneytokenDeployment校验。其中 Python 侧PowerShellGenerator生成的是等价脚本的自动批量版两者可交叉验证先用python agent.py --action full_deploy生成全套脚本再人工复核执行。同时 SKILL.md 提供了两个可直接落地的手写检测查询示例Splunk Kerberoasting 检测indexwineventlog EventCode4769 ServiceNamesvc_sqlbackup_legacy | eval alert_severitycritical | eval alert_typehoneytoken_kerberoast | table _time, src_ip, Account_Name, ServiceName, Ticket_Encryption_Type | sort - _timeSentinel KQL 检测SecurityEvent | where EventID 4769 | where ServiceName in (svc_sqlbackup_legacy, svc_exchange_legacy) | extend AlertType Honeytoken Kerberoast Detected | project TimeGenerated, Computer, Account, ServiceName, IpAddress, TicketEncryptionType十、实战要点与部署建议综合 SKILL.md 与 API 文档让蜜标看起来正常是检测有效性的前提账户年龄尽量复用 10–15 年前的旧停用账户或在同类年龄的域中新建account_age_days5475即模拟约 15 年账龄AdminCount1将账户标记为拥有提升的 AD 权限成为 Kerberoasting 的高吸引力目标命名真实贴合组织命名规范svc_sqlbackup、admin.maintenance、svc_exchange_legacy 等模板已内置于SERVICE_ACCOUNT_TEMPLATES密码回拨10 年以上的密码年龄配上 SPN在攻击者眼中是典型的高价值、被忽视的服务账户组归属加入 Remote Desktop Users 等可见组或自定义 Backup Operators 风格组提高攻击者兴趣消除识别特征攻击者会核对创建时间、最后登录时间与密码修改时间的一致性部署脚本必须注意这三者的时序统一。结语从 API 参考文档出发本文完整梳理了该技能的四层 API 体系PowerShellGenerator负责把 AD 欺骗对象落地为可执行脚本ADHoneytokenMonitor负责把安全事件转化为结构化告警SIEMRuleGenerator负责把蜜标清单翻译为 Sigma/Splunk/Sentinel 三方查询HoneytokenDeployer则把前三者编排为一条full_deploy命令即可产出的完整交付物脚本 规则 清单。配合 Deploy-ADHoneytokens.ps1 的手工模块与 SKILL.md 的六步流程安全团队可以在不引入第三方商业产品的前提下以近乎零误报的方式捕获 Kerberoasting 侦察、GPP 凭据收割与基于图论的 AD 攻击路径探测。【免费下载链接】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

延伸阅读

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