语言:
Microsoft Entra 租户可以与外部域联合,以便与另一个域建立信任,从而进行身份验证和授权。组织使用联合功能,将 Active Directory 用户的身份验证委派到本地 Active Directory Federation Services (AD FS)。(请注意:外部域不是 Active Directory“域”。) 然而,如果恶意攻击者在 Microsoft Entra ID 中获得了更高的特权,他们可以添加自己的联合域或编辑现有的联合域来添加包含自己设置的辅助配置,从而滥用这种联合机制来创建后门程序。
联合域上设置的后门程序依赖于专门伪造的令牌签名证书,该证书被插入到配置中,可以通过主要或次要令牌签名证书进行设置。使用常见的开源攻击者工具(如 AADInternals 和 ConvertTo-AADIntBackdoor cmdlet)时,有一些迹象表明可能存在可疑活动。
与“已知的联合域后门程序”风险暴露指标 (IoE) 不同,此 IoE 并不一定意味着存在由攻击者创建的后门程序。相反,它会提供 Entra ID 租户中所有联合域的完整列表,使您能够验证每个域的颁发者 URI 是否与您配置的外部身份提供程序 (IdP) 匹配。通常情况下,这将是您的本地 AD FS 服务器。颁发者 URI 表示受信任的联合服务器的 URL。
正如 Microsoft 所述,联合到 AD FS 的域的默认颁发者设置为 http://<ADFSServiceFQDN>/adfs/services/trust
。但是,如果您使用不同的联合身份提供程序,此值会有所不同。
microsoft.directory/domains/allProperties/allTasks
和 microsoft.directory/domains/federation/update
权限可授予管理员修改联合域的能力。截至 2023 年 11 月,包括潜在的自定义角色在内,以下内置 Microsoft Entra 角色具有此权限:
审查联合域的属性,以评估其合法性,从而验证您是否使用身份提供程序中指定的配置专门创建了联合域。 验证特定属性,如颁发者 URI 以及主要和次要令牌签名证书的颁发者和使用者属性。如果确认所有内容均合法,您可以通过排除项来忽略联合域。
否则,如果您发现与您环境中的受信任联合身份提供程序 (IdP) 不对应的属性,则表明存在攻击者设置的潜在后门程序。启动配有取证分析的事件响应程序,以确定所指控的攻击,识别攻击的发起者和时间,并评估可能的入侵程度。 鉴于安装此类后门程序需要更高的特权(通常需要“全局管理员”角色,以及较少为人所知的 Entra 角色),Entra ID 可能已遭到完全入侵。
如要查看 Azure 门户中的联合域,请导航到“自定义域名”模块,并在“联合”列中查找带有复选标记的域名。潜在恶意域的名称与发现结果中标记的名称相符。但是,与 MS Graph API 不同,Azure 门户不会显示联合技术的细节。
使用来自 MS Graph API 的 PowerShell cmdlet:使用 Get-MgDomain
列出域以及使用 Get-MgDomainFederationConfiguration
列出联合配置,如下所示:
Connect-MgGraph -Scopes "Domain.Read.All"
Get-MgDomain -All | Where-Object { $_.AuthenticationType -eq "Federated" } | ForEach-Object { $_​ ; Get-MgDomainFederationConfiguration -DomainId $_.Id }
为最终进行取证分析而保存证据之后:
Remove-MgDomain
将其移除。Remove-MgDomainFederationConfiguration
移除联合配置。您可以按照 Microsoft 提供的“紧急轮换 AD FS 证书”修复指导进行操作。
为了确认操作,请确保该风险暴露指标报告的发现结果已得到解决和清除。
另外,请务必考虑攻击者是否有可能已经建立了其他持久性机制(例如后门程序)。向事件响应专家寻求帮助,以识别和消除任何额外的威胁。
请注意,联合是 Microsoft Entra ID 正常且合法的功能,而此类攻击滥用了该功能。为了防止未来的攻击,请对可以修改联合设置的管理员数量加以限制。这是一项主动措施,因为攻击者需要更高的特权才能创建此类后门程序。查看漏洞描述以获取具体的权限要求和角色列表。
名称: 联合域列表
代码名称: FEDERATED-DOMAINS-LIST
严重性: Low
类型: Microsoft Entra ID Indicator of Exposure