Az - Pass the Certificate

支持 HackTricks

传递证书 (Azure)

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

用非常简化的术语来说:

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

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

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

在这种情况下,在获取用于 传递 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