Az - Device Registration

支持 HackTricks

基本信息

当设备加入 AzureAD 时,会在 AzureAD 中创建一个新对象。

在注册设备时,用户需要使用他的账户登录(如有需要会要求 MFA),然后请求设备注册服务的令牌,最后询问最终确认提示。

然后,在设备中生成两个 RSA 密钥对:设备密钥钥)发送到 AzureAD传输密钥(钥)如果可能则存储在 TPM 中。

接着,在 AzureAD 中生成 对象(而不是在 Intune 中),AzureAD 会向设备返回一个由其签名的 证书。您可以检查 设备是否已加入 AzureAD 以及有关 证书 的信息(例如是否由 TPM 保护)。

dsregcmd /status

在设备注册后,LSASS CloudAP模块请求一个主刷新令牌并将其提供给设备。与PRT一起交付的还有会话密钥,只有设备可以解密(使用传输密钥的公钥),并且使用PRT是必需的。

有关PRT的更多信息,请查看:

Az - Primary Refresh Token (PRT)

TPM - 受信任的平台模块

TPM 保护防止从关闭的设备中提取密钥(如果由PIN保护)以及从操作系统层提取私有材料。 但它不保护防止嗅探TPM与CPU之间的物理连接或在系统运行时使用TPM中的加密材料,这可能来自具有SYSTEM权限的进程。

如果您查看以下页面,您将看到窃取PRT可以用于像用户一样访问,这很好,因为PRT位于设备上,因此可以从它们中窃取(或者如果没有被窃取,则被滥用以生成新的签名密钥):

Az - Pass the PRT

使用SSO令牌注册设备

攻击者可以从被攻陷的设备请求Microsoft设备注册服务的令牌并注册它。

# Initialize SSO flow
roadrecon auth prt-init
.\ROADtoken.exe <nonce>

# Request token with PRT with PRT cookie
roadrecon auth -r 01cb2876-7ebd-4aa4-9cc9-d28bd4d359a9 --prt-cookie <cookie>

# Custom pyhton script to register a device (check roadtx)
registerdevice.py

将为您提供一个可以用于将来请求PRT的证书。因此,保持持久性并绕过MFA,因为用于注册新设备的原始PRT令牌已经获得了MFA权限

请注意,要执行此攻击,您需要有注册新设备的权限。此外,注册设备并不意味着该设备将被允许注册到Intune

此攻击在2021年9月已被修复,因为您无法再使用SSO令牌注册新设备。然而,仍然可以以合法方式注册设备(如果需要,提供用户名、密码和MFA)。请查看:roadtx

覆盖设备票证

可以请求设备票证覆盖设备的当前票证,并在流程中窃取PRT(因此无需从TPM窃取它。有关更多信息,请查看此演讲

然而,这已被修复。

覆盖WHFB密钥

在这里查看原始幻灯片

攻击摘要:

  • 可以通过SSO覆盖来自设备注册WHFB密钥

  • 击败TPM保护,因为密钥在新密钥生成过程中被嗅探

  • 这也提供了持久性

用户可以通过Azure AD Graph修改自己的searchableDeviceKey属性,但是,攻击者需要在租户中拥有一个设备(动态注册或从合法设备窃取证书和密钥)以及有效的AAD Graph访问令牌。

然后,可以使用以下方式生成新密钥:

roadtx genhellokey -d <device id> -k tempkey.key

然后PATCH可搜索的DeviceKey的信息:

可以通过设备代码钓鱼从用户那里获取访问令牌,并利用之前的步骤窃取他的访问权限。有关更多信息,请查看:

Az - Phishing Primary Refresh Token (Microsoft Entra)

参考文献

支持HackTricks

Last updated