Az - Pass the Certificate

Support HackTricks

Pass the Certificate (Azure)

在 Azure 加入的机器中,可以使用 必须由 Azure AD CA 为所需用户(作为主题)颁发的证书,从一台机器认证到另一台机器,当两台机器都支持 NegoEx 认证机制时。

简单来说:

  • 发起连接的机器(客户端)需要 Azure AD 为用户颁发的证书

  • 客户端创建一个包含 PRT 和其他详细信息的 JSON Web Token (JWT) 头,使用派生密钥(使用会话密钥和安全上下文)对其进行签名,并 将其发送到 Azure AD

  • Azure AD 使用客户端会话密钥和安全上下文验证 JWT 签名,检查 PRT 的有效性,并 响应证书

在这种情况下,并在获取所有进行 Pass the PRT 攻击所需的信息后:

  • 用户名

  • 租户 ID

  • PRT

  • 安全上下文

  • 派生密钥

可以使用工具 PrtToCert** 请求用户的 P2P 证书:**

RequestCert.py [-h] --tenantId TENANTID --prt PRT --userName USERNAME --hexCtx HEXCTX --hexDerivedKey HEXDERIVEDKEY [--passPhrase PASSPHRASE]

证书的有效期与PRT相同。要使用证书,可以使用python工具 AzureADJoinedMachinePTC,该工具将认证到远程机器,运行PSEXEC并在受害者机器上打开CMD。这将允许我们再次使用Mimikatz获取另一个用户的PRT。

Main.py [-h] --usercert USERCERT --certpass CERTPASS --remoteip REMOTEIP

参考文献

支持 HackTricks

Last updated