属性 | 详细信息 |
|---|---|
|
攻击类型 |
group Managed Service Account (gMSA) 攻击 |
|
影响等级 |
高 |
|
目标 |
企业,政府 |
|
主要攻击向量 |
Active Directory 利用 |
|
动机 |
间谍活动、权限提升、凭证盗窃 |
|
常见预防方法 |
最小权限、审计日志、密码轮换、KDS 根密钥管理、SACL 监控 |
风险因素 | 级别 |
|---|---|
|
潜在损害 |
高 |
|
执行难易度 |
中等到困难 |
|
可能性 |
中等 |
你的服务账户是否暴露了隐藏的攻击路径?
在专家的帮助下,了解如何检测 gMSA 被滥用情况,并保护 Privileged Access。
什么是 gMSA 攻击?
Group Managed Service Account(gMSA)攻击是一种入侵方式,攻击者通过攻破或推导 gMSA 凭据来获取对服务的未授权访问,并在整个 Active Directory 环境中提升权限。
gMSA 用于 Windows 服务、IIS 应用程序池、SQL Server 服务、计划任务、备份服务以及其他需要自动管理的域凭据的自动化服务身份。由于任何被授权可以检索或使用 gMSA 运行的系统或服务都可能成为攻击者的潜在入口点,gMSA 滥用会提供广泛的攻击面。通过读取 gMSA 密码并利用这些账户,攻击者可以冒充服务身份、在域内横向移动,并维持难以检测和修复的持久存在。
攻击者通常会使用以下方法进行 gMSA 利用:
- 读取 msDS-ManagedPassword:攻击者通过拥有 SYSTEM/已授权的访问权限入侵主机或账号,然后从 Active Directory 中读取 gMSA 的 msDS-ManagedPassword 属性。该属性包含 gMSA 的当前密码和以前的密码,因此通过读取该属性的值,攻击者实际上会读取到 gMSA 的密码。
- Golden gMSA(滥用 KDS root key): 攻击者获取 KDS(Key Distribution Service,密钥分发服务)的 root key 属性(存储在 CN=Master Root Keys,CN=Group Key Distribution Service,CN=Services,CN=Configuration,DC=domain,DC=com 中),并使用它在离线环境中计算 gMSA 密码,而无需联系域控制器。通过伪造有效凭据,攻击者可以随时以这些服务账号进行身份验证。
Golden gMSA 攻击
以下是 Golden gMSA 攻击的关键特征:
- 初始入侵需要高权限(例如:域控制器上的 Domain Admin 或 SYSTEM 账号),以读取或导出 KDS root key 材料。
- 一旦获取了 KDS 根密钥属性(KDS root key attributes),攻击者就可以:
- 无需联系域控制器即可计算当前和未来的 gMSA 密码,从而不会在 DC 上生成身份验证日志。
- 为域中的任意 gMSA 生成凭据。
- 即使在发现初始入侵之后,也能保持持续访问(默认情况下,根密钥有效期最长可达 10 年)。
- 从概念上讲,Golden gMSA 攻击类似于 Golden Ticket 攻击,因为两者都涉及创建伪造或派生的凭据。
工具用途
以下工具和脚本有助于进行 Golden gMSA 利用:
- 凭据转储(credential-dumping)工具用于从主机中提取凭据或凭据材料,以便攻击者升级权限或横向移动。目标包括存放身份验证令牌/NTLM 哈希的内存、已缓存的凭据,以及凭据存储库的备份副本。
- AD 枚举(AD-enumeration)工具会映射 Active Directory 对象、权限和关系,从而让攻击者能够找到敏感密钥/对象所在的位置(针对 gMSA:KDS 根密钥、msDS-ManagedPassword 对象以及服务绑定)。它们会探测组成员关系、ACL 和属性。
- 概念验证(proof-of-concept)工具和自定义脚本实现数学/加密逻辑,从 KDS 根密钥和对象元数据推导出 gMSA 密码。
gMSA 攻击是如何运作的?
gMSA 利用(exploitation)攻击遵循分阶段的路径:攻击者首先发现 gMSA 的使用位置,随后以持久且隐蔽的方式实现横向移动并提升权限。以下是攻击的各个阶段:
发现 gMSA 的使用情况
攻击者首先会绘制(映射)gMSA 在整个环境中部署的位置。他们会扫描 Active Directory 和终端设备,以识别在 gMSA 身份下运行的服务、应用程序池、计划任务,以及数据库或备份进程。有了这些映射之后,他们会对这些主机进行探测,寻找可被利用的漏洞(例如 Web 服务器 RCE、未修补的服务缺陷和较弱的服务配置),这些漏洞可能被滥用,从而获得代码执行能力或将权限提升到 NT AUTHORITY\SYSTEM。
访问 gMSA 密码
在已被攻破的主机上(拥有 SYSTEM 权限),或通过具备足够 Active Directory 权限的账号,攻击者会使用工具或 API(例如,包含 DSInternals 的 PowerShell 或目录读取)来获取 msDS-ManagedPassword 属性。随后,攻击者将凭据块(credential blob)解码为明文(或 NTLM 哈希),通常会使用 PowerShell 函数 ConvertFrom-ADManagedPasswordBlob。借助这些明文或由其派生出的凭据,攻击者可以以服务账号身份登录、运行服务、访问其能够到达的任何资源,并且以很小的代价迁移到其他系统。
Golden gMSA 攻击
在 Golden gMSA 场景中,攻击者会提取 Active Directory 用于推导 gMSA 密码的 KDS 根密钥属性(例如 msKds-RootKeyData、msKds-KDFParam 以及相关 KDF 参数)。借助诸如 GoldenGMSA 之类的工具或自定义脚本,他们可以在离线环境中计算当前和未来的 gMSA 密码。通过这种方式,他们就能够对任何依赖这些 gMSA 的服务进行身份验证。
横向移动或权限提升
一旦攻击者掌控了 gMSA 凭据(无论是直接读取,还是从 KDS 密钥计算得到),他们就可以使用它们来:
- 对接受 gMSA 的数据库、管理接口、文件共享或其他服务进行身份验证。
- 跳转到信任该服务身份的其他主机。
- 结合 Silver Ticket 或 Golden Ticket 技术,或通过令牌滥用来提升权限。
- 外传(窃取)敏感数据。
- 部署持久性,或创建新的特权服务帐户。
在 gMSA 下运行的服务通常以更高的权限运行,并具有广泛的连接能力,从而为攻击者提供了可利用的广阔攻击面。
攻击流程图
下面是一个流程图,用于说明 gMSA 攻击中的事件链;同时还提供了从组织视角出发的示例故事,帮助你理解该攻击。
攻击者通过利用存在漏洞的插件入侵组织面向客户的 Web 服务器,植入 Web shell,在该主机上提升到 SYSTEM 权限,并提取服务凭据材料。随后,他们使用已导出的 KDS root key 和 KDF 参数,在离线环境下计算 gMSA 密码,并在不连接到域控制器的情况下对后端服务(数据库和文件共享)进行身份认证。在 48 小时以上的时间内,他们会外传敏感的客户记录。
gMSA 攻击示例
目前没有公开可获得的报告或泄露披露声称攻击者在真实环境中使用了 gMSA 或 Golden gMSA 攻击。但有大量研究、PoC、工具以及厂商指导证明该技术是真实且可行的。以下是对现实世界证据的总结。
|
公开研究/报告(PoC) |
安全研究人员介绍并描述了Golden gMSA攻击(攻击者如何转储KDS根密钥属性并离线生成gMSA密码),该研究由Semperis发布。
|
|
公开工具/PoC代码
|
Semperis已在GitHub上发布了一个GoldenGMSA工具,该工具实现了研究中描述的攻击技术(对红队和防御者测试其环境非常有用)。 |
|
Golden dMSA/相关AD原语
|
后续研究和建议,特别是由Semperis发布的,描述了针对委派的Managed Service Accounts(dMSA)及相关功能的类似新攻击原语(有时称为Golden dMSA/BadSuccessor)。这表明攻击面正在演变。 |
|
厂商指导 |
Microsoft发布了关于如何从Golden gMSA攻击中恢复以及如何规划AD攻击场景的指导。
|
|
检测建议 |
安全厂商和研究团队(SentinelOne、TrustedSec、SpecterOps等)发布了检测技术、Splunk查询和指导,用于发现gMSA和KDS相关的暴露及离线攻击。 |
gMSA 攻击的后果
IT 团队使用 gMSA 进行自动化的高权限访问。它们一旦被盗,可能会放大事件的影响,使攻击者能够实现隐蔽的横向移动、长期维持的访问以及广泛的数据暴露。这可能带来严重的财务、运营、声誉和法律后果。
影响领域 | 描述 |
|---|---|
|
财务 |
组 Managed Service Account 攻击可能通过引发取证调查、KDS 根密钥轮换和 gMSA 重置等密集的事件响应和补救工作,导致成本上升。它还可能导致与数据盗窃相关的损失、赎金要求和保险费增加,造成即时和长期的财务影响。
|
|
运营 |
gMSA 攻击可能导致服务中断和未经授权的数据访问。由于许多关键服务和集成依赖于 gMSA,其被攻破可能导致故意破坏或计划外的遏制工作。这可能引发长时间的停机、客户服务质量下降以及恢复和重新配置系统的高昂补救费用。
|
|
声誉 |
数据丢失或服务中断的公开披露可能削弱客户和合作伙伴的信任。除了即时的声誉损害外,此类事件还可能导致收入减少、风险评估时的更严格审查、负面媒体报道以及品牌价值的长期损害。如果敏感信息被泄露或关键系统被攻破,影响将成倍增加。
|
|
法律/监管 |
gMSA 被攻破可能导致违反 HIPAA、GDPR 或 PCI-DSS 等法规。组织可能面临监管罚款或执法行动。如果调查人员发现安全控制不足或报告延迟,可能导致诉讼、集体诉讼以及监管机构和行业审计员的长期审查。 |
gMSA 攻击的常见目标:谁面临风险?
从总体上看,运营复杂 Active Directory 环境、并为各类服务(SQL、IIS、Exchange、备份)配置了大量 gMSA 的大型企业、政府机构和金融机构,是 gMSA 攻击最常见的目标之一。从技术角度来看,IT 基础设施中的以下组件最容易受到威胁:
应用服务器
应用服务器是攻击者的潜在目标,尤其是托管在 NT AUTHORITY\SYSTEM 上下文下运行的 Web 应用程序(例如 IIS)的服务器。由于 gMSA 通常与这些服务绑定,以实现无缝、无密码的身份验证,一旦被攻破,攻击者就可能在整个环境中进行身份验证、执行任意代码并提升权限。
数据库服务器
数据库平台(尤其是 SQL Server 实例)同样是重要目标。许多组织会为备份和计划任务等日常工作配置 gMSA。被攻破后,攻击者可以外传敏感数据、窃取凭据,或将服务器用作在网络中横向移动的跳板。
备份与监控系统
备份代理和监控工具是权限极高的服务,通常会使用 gMSA 进行身份验证。这些账号需要在多个系统间具备广泛的访问权限。因此,一旦这些账号被攻破,攻击者将获得更高的网络可见性和控制能力。
计划任务主机
配置了计划任务的系统往往会使用 gMSA,以更高权限执行例行脚本或计划任务。攻击者可以滥用这些任务来实现持久化、权限提升和命令执行,从而把日常操作变成与合法工作流融为一体的攻击通道。
域控制器(间接目标)
虽然域控制器本身不会使用 gMSA 运行,但它们会存储用于推导 gMSA 密码的关键 KDS 根密钥属性。如果攻击者获得对这些属性的访问权,就能够在离线环境中计算出有效的 gMSA 密码,而无需联系任何 DC。
多层应用
在复杂的多层架构中,gMSA 用于对跨应用层和 API 的服务到服务连接进行身份验证。通过攻破某一层(例如前端服务账号),攻击者可以进一步升级到中间层或后端层,最终导致对整个应用的完全接管。
混合 Active Directory 环境
拥有混合或多林 AD 环境的组织会面临更大的攻击面与更高的风险。攻击者可以攻破某个域中的 gMSA,然后利用它实现向其他域或已同步的云服务进行横向移动。
风险评估
评估 gMSA 攻击的风险时,应考虑三个关键因素:攻击可能造成的潜在损害、执行该攻击的难度,以及事件发生的可能性。综合来看,这些因素凸显了为什么 gMSA 需要强有力的保护和监控。
风险因素 | 级别 |
|---|---|
|
潜在损害 |
高
|
|
执行难易度 |
中等到困难
|
|
可能性 |
中等 |
如何防止 gMSA 攻击
通过实施强有力的技术控制和健全的管理实践,组织可以降低 gMSA 被利用攻击的风险。
技术措施
以下技术措施有助于防止 gMSA 和 Golden gMSA 攻击:
- 在 KDS 根密钥上配置系统访问控制列表(SACL),以记录任何尝试读取 msKds-RootKeyData 属性的行为。这样,当攻击者试图访问用于推导 gMSA 密码的机密信息时,安全团队将收到告警。
- 对 gMSA 成员资格实施最小权限原则。为此,请限制哪些账户和组被列在某个 gMSA 的 msDS-GroupMSAMembership 属性中。只有真正需要该 gMSA 的服务才应具有访问权限。移除不必要的成员资格有助于关闭潜在的滥用路径。
- 定期审查谁被授予了管理和使用 gMSA 的权限。安全团队应对权限变更和使用模式进行审计,以发现可能表明未授权访问和特权提升尝试的可疑活动。
- 降低 ManagedPasswordIntervalInDays 设置的数值,以便更频繁地更新 gMSA 密码。这会缩小攻击者重复使用已泄露凭据的机会窗口。
管理最佳实践
作为管理最佳实践的一部分,组织应对 gMSA 的生命周期和密钥管理保持严格控制。
- 定期创建新的 KDS 根密钥,并将它们重新分配给当前处于活动状态的 gMSA。这样可以防止旧的或可能已被泄露的密钥被用于推导有效的 gMSA 密码。
- 监控事件 ID 4662,它会记录尝试访问目录对象的行为。针对 gMSA 属性专门监控该事件,有助于发现未授权访问或可疑查询。
- 主动禁用不再使用的 gMSA,并从旧服务中移除孤立的权限。这会减少攻击者可利用的账户数量,从而最大限度降低整体攻击面。
Netwrix 如何提供帮助
Netwrix’s Identity Threat Detection & Response (ITDR) 套件帮助组织在本地和混合环境中识别可疑活动,并保障其身份基础设施安全。它提供与防御 gMSA 相关的可视性、告警、响应和恢复能力。
以下是其部分核心能力,以及它们如何对应于预防或缓解与 gMSA 相关的风险:
威胁检测
Netwrix ITDR 产品,例如 Threat Manager 和 Threat Prevention ,可以发现与身份基础设施相关的可疑活动,例如 Active Directory 中异常或未经授权的更改。它们能够监控 AD 中对象和属性级别的更改以及访问(例如对 msDS-ManagedPassword 和 msKds-RootKeyData 属性的未经授权读取),并可对高风险的配置更改或特权组成员变更发出警报。
实时监控与告警
Netwrix ITDR 可对关键的 Active Directory 事件以及异常访问模式提供实时告警。这包括监控试图访问敏感 KDS 属性的非域控制器帐户、敏感组的成员身份,以及对特权属性的修改。这些监控功能有助于检测 gMSA 的误用。
快速响应
Netwrix ITDR 支持在检测到入侵时进行自动化或半自动化的事件响应操作,例如禁用帐户、生成告警、回滚不希望的更改以及启动取证调查。在 gMSA 攻击场景中,这意味着当检测到可疑活动时,您可以迅速响应,例如禁用 gMSA 或撤销权限。
安全审计与报告
Netwrix Auditor 提供详细的审计跟踪记录(audit trails)、AD 变更的“变更前与变更后”数值、风险评估报告、仪表板以及合规性报告。这些功能有助于跟踪 gMSA 权限变更、随时间变化的使用情况,并识别错误配置。
使用 Netwrix Identity Threat Detection & Response (ITDR) 检测并响应 gMSA 利用行为。下载免费试用版。
检测、缓解与响应策略
为防御与 gMSA 相关的攻击,组织应采取涵盖早期检测、预防性缓解以及有效响应的主动策略。以下是一些可帮助你加强防护、以应对 KDS root key(KDS 根密钥)与 gMSA 被入侵的实用步骤。
检测
要尽早检测 gMSA 攻击,团队应遵循以下做法:
监控是否存在对关键属性(例如 msDS-ManagedPassword 和 msKds-RootKeyData)的未经授权读取
这些属性与 gMSA 密码检索和离线密码生成直接相关,且在正常的域控制器操作之外很少被访问。针对它们的异常查询可能表明正在尝试进行凭据窃取。为检测这一情况,管理员可以在 Active Directory 中启用目录服务审计,并配置 Advanced Security Auditing 以记录“目录服务访问”(Directory Service Access,事件 ID 4662)。
检查非 DC 帐户是否访问敏感的 KDS 属性
只有域控制器应与 KDS root key 数据进行交互。监控非预期账户的访问情况,可能揭示特权滥用或横向移动尝试。
将监控与分析结合
通过筛选对敏感属性的读取操作,并将其与账号类型进行关联(例如非域控制器账户),安全团队可以检测可疑查询。更进一步,可将这些日志集成到 SIEM 平台中,实现跨事件关联分析、异常检测和实时告警。
为各服务与服务器建立正常 gMSA 使用的基线
当 gMSA 在其预期范围之外被访问时(例如,将 SQL gMSA 用在 Web 服务器上),这将支持异常检测。
缓解
IT 团队应将缓解视为一项协调的、分层的工作:不仅要切断攻击者当前的访问途径,还要加强防御,以最大程度降低未来遭受入侵的可能性。下面将讨论一些重要的缓解步骤。
怀疑已遭入侵时,使用新的 KDS root key 重新创建 gMSA
生成新的 root key 会切断攻击者从先前已暴露的工件中推导出密码的能力,从而恢复对受管理账户的信任。
通过运行来轮换 gMSA 密码:Test-ADServiceAccount
强制刷新密码可确保:即使凭据已被泄露,攻击者也无法再访问有效的机密信息。
应用分段并强制范围
实施网络和服务分段,以限制 gMSA 的使用范围。这样一来,如果某个层级被攻破,攻击者就无法轻易进入其他敏感区域。
定期测试你的补救(修复)作战手册
开展桌面演练和技术演练,模拟 KDS 密钥轮换和 gMSA 恢复,以确保你的流程有效,并能在高压情况下正常运作。
响应
当怀疑或确认发生 gMSA 攻击时,组织必须果断行动,遏制威胁、限制损失,并防止再次发生。
隔离受影响的系统
隔离已被入侵的主机,防止攻击者进一步横向移动,或继续滥用已被泄露的 gMSA 凭据。如果检测到对 msKds-RootKeyData 或其他关键属性的可疑访问,还必须隔离域控制器,确保攻击者无法在目录服务中持久存在。
禁用已被入侵的 gMSA
立即禁用已遭入侵的 gMSA,阻止攻击者利用其进行身份验证和恶意活动。
轮换所有相关凭据,并更新受影响的服务。
轮换所有相关凭据,包括 gMSA、服务帐户和管理员帐户。然后更新受影响的服务,确保使用新轮换的 gMSA 进行顺畅的重新身份验证。
保留取证工件,并启动取证调查。
取证调查有助于确定事件的范围和根本原因。在进行不可逆的修复更改之前,请确保已采集域控制器和 Configuration NC 数据,例如日志和 NTDS 快照。需要在尽快制止攻击的紧迫性与保留证据以便分析之间取得平衡。下一步:
- 检查事件日志、SACL 警报以及与身份相关的异常情况。
- 为进行事后分析,请从受影响的系统中采集易失性数据(例如内存转储和认证日志)。
- 留意在受侵害期间可能已引入的持久化机制,例如计划任务、被修改的 ACL,或“影子”管理员账号。
这些步骤有助于识别攻击机制并弥补安全漏洞。
行业特定影响
gMSA 攻击的影响并不对所有行业都相同。通过了解特定行业可能遭受的后果,组织可以根据最有价值的资产来确定防御优先级。
行业 | 影响 |
|---|---|
|
医疗 |
医疗提供者经常使用gMSA来运行存储或处理电子健康记录的应用程序。此处的安全漏洞可能导致敏感患者信息泄露,引发隐私侵犯、身份盗用以及违反HIPAA等法规。除了法律后果外,此类事件还可能破坏患者信任并干扰关键临床服务。
|
|
金融 |
银行和金融机构依赖gMSA来管理数据库、交易系统和认证服务。如果攻击者获得访问权限,他们可能执行未经授权的交易、篡改财务记录或泄露敏感客户数据。结果不仅是财务损失,还有长期的声誉损害和监管处罚。
|
|
零售 |
零售环境使用gMSA来管理销售点(POS)系统、电子商务平台和客户数据库。攻击者利用这些系统中的gMSA可能劫持POS终端,窃取客户支付卡信息,或收集忠诚度计划数据。后果包括金融欺诈、退款纠纷以及客户对品牌信任度下降。 |
攻击演进与未来趋势
随着组织采用 gMSA 来增强安全性并简化密码管理,攻击者正忙于推进其技术以利用这些账户。以下趋势将突出对手如何利用 gMSA 的薄弱环节,以及威胁态势将走向何处。
关键统计数据与信息图表
gMSA 设计了强大的安全功能,但攻击者若针对 KDS root key,可以绕过这些保护。让我们来看一些支持性事实和统计数据:
- gMSA 会每 30 天轮换一次密码,以限制凭据暴露。但如果攻击者窃取了 KDS root key,他们 就能随时在离线状态下计算 gMSA 密码,从而有效地抵消了轮换保护措施。
- 由于域中的每个 gMSA 都依赖同一个 KDS root key 来生成密码,一旦该 root key 被攻破,就可能影响域中的所有 gMSA。这会从单一故障点带来覆盖整个域的风险。
下图柱状图将预期的安全窗口(30 天轮换)与实际攻击者的访问窗口进行对比(若 KDS 被攻破,则为无限期)。
最后的思考
归根结底,gMSA 是一把双刃剑:当正确管理时,它们简化服务身份验证并增强安全性;但在错误的手中,它们可能成为通往王国的钥匙。当攻击者伪造 Golden gMSA 时,他们不只是窃取密码——他们继承了您基础设施的主密钥,从而具备在各系统与服务之间静默移动的能力。危险在于它们的隐蔽性:在整个企业尚未全面受风险影响之前,威胁可能一直不被察觉、悄然酝酿。保护您的 KDS 根密钥、监控可疑的 gMSA 活动,并实施强有力的域控制器安全,是保障 Active Directory 环境的关键防护措施。
常见问题
分享到
滥用 Entra ID 应用权限——工作原理与防御策略
AdminSDHolder 修改——工作原理与防御策略
AS-REP Roasting 攻击:工作原理与防御策略
Hafnium 攻击——工作原理与防御策略
DCSync 攻击解析:对 Active Directory 安全的威胁
Golden SAML 攻击终极指南
什么是 Golden Ticket 攻击?工作原理、检测与防护
DCShadow 攻击——工作原理、真实案例与防御策略
ChatGPT 提示注入(prompt injection):了解风险、示例与防范
NTDS.dit 提取攻击详解
Kerberoasting 攻击——工作原理与防御策略
理解 Pass-the-Hash(PtH)攻击
Pass-the-Ticket(传票)攻击解析:风险、示例与防御策略
理解密码喷洒(password spraying)攻击
明文密码提取(Plaintext Password Extraction)解析:风险、示例与防范
Zerologon 漏洞详解:风险、利用方式与缓解措施
勒索软件攻击完整指南
Skeleton Key 攻击:工作原理与检测方法
横向移动(Lateral Movement):它是什么、如何运作及防护措施
为什么 PowerShell 对攻击者来说如此受欢迎?
4 种服务账号攻击及防护方法
如何防止恶意软件攻击影响您的业务
什么是凭证填充(Credential Stuffing)?
使用 PowerUpSQL 破坏 SQL Server
什么是 Mousejacking(鼠标劫持)攻击,以及如何防御
使用 Security Support Provider(SSP)窃取凭据
彩虹表攻击:工作原理与防御方法
深入了解密码攻击及其防止方法
LDAP Reconnaissance
通过 Pass-the-Cookie 攻击绕过 MFA
Silver Ticket 攻击