Az - Cloud Kerberos Trust
本文是 https://dirkjanm.io/obtaining-domain-admin-from-azure-ad-via-cloud-kerberos-trust/ 的摘要,可查看有关此攻击的更多信息。该技术还在 https://www.youtube.com/watch?v=AFay_58QubY** 中有评论。**
基本信息
信任
与Azure AD建立信任时,在AD中创建了一个只读域控制器(RODC)。RODC计算机帐户名为**AzureADKerberos$
。此外,还创建了一个次要的krbtgt
帐户,名为krbtgt_AzureAD
。该帐户包含Azure AD创建的用于票证的Kerberos密钥**。
因此,如果此帐户受到损害,可能会冒充任何用户...尽管这并不正确,因为此帐户被阻止为任何常见特权AD组(如域管理员、企业管理员、管理员...)创建票证。
然而,在实际情况下,会有特权用户不属于这些组。因此,如果次要的krbtgt帐户受到损害,则可以用于冒充它们。
Kerberos TGT
此外,当用户使用混合身份Azure AD在Windows上进行身份验证时,Azure AD将发出部分Kerberos票证以及PRT。TGT是部分的,因为AzureAD对用户在本地AD中的信息有限(如安全标识符(SID)和名称)。
Windows可以通过请求krbtgt
服务的服务票证来交换此部分TGT以获取完整的TGT。
NTLM
由于可能存在不支持kerberos身份验证而支持NTLM的服务,因此可以请求使用次要krbtgt
签名的部分TGT,其中包括请求的**KERB-KEY-LIST-REQ
**字段,然后获取使用主krbtgt
签名的完整TGT,响应中包括NT哈希。
滥用云Kerberos信任以获取域管理员权限
当AzureAD生成部分TGT时,它将使用其了解的用户详细信息。因此,如果全局管理员可以修改AzureAD中用户的安全标识符和名称等数据,那么在为该用户请求TGT时,安全标识符将是不同的。
通过Microsoft Graph或Azure AD Graph无法执行此操作,但可以使用API Active Directory Connect来创建和更新同步用户,全局管理员可以使用该API来修改任何混合用户的SAM名称和SID,然后进行身份验证,获取包含修改后SID的部分TGT。
请注意,我们可以使用AADInternals执行此操作,并通过Set-AADIntAzureADObject cmdlet更新同步用户。
攻击先决条件
攻击的成功和获得域管理员权限取决于满足以下某些先决条件:
通过同步API更改帐户的能力至关重要。可以通过拥有全局管理员角色或拥有AD Connect同步帐户来实现此目标。或者,混合身份管理员角色也足够,因为它授予管理AD Connect和建立新同步帐户的权限。
必须具有混合帐户。此帐户必须可以使用受害者帐户的详细信息进行修改,并且还必须可用于身份验证。
在Active Directory中识别目标受害者帐户是必要的。尽管可以对已同步的任何帐户执行攻击,但Azure AD租户不得复制本地安全标识符,因此需要修改未同步帐户以获取票证。
此外,此帐户应具有域管理员等效权限,但不得是典型AD管理员组的成员,以避免AzureAD RODC生成无效TGT。
最适合的目标是AD Connect Sync服务使用的Active Directory帐户。此帐户未与Azure AD同步,使其SID成为可行目标,并且由于其在同步密码哈希中的作用,它固有地具有域管理员等效权限(假设密码哈希同步处于活动状态)。对于快速安装的域,此帐户以MSOL_为前缀。对于其他情况,可以通过列举在域对象上具有目录复制权限的所有帐户来确定该帐户。
完整攻击
请查看原始帖子:https://dirkjanm.io/obtaining-domain-admin-from-azure-ad-via-cloud-kerberos-trust/
Last updated