Az - Pass the Certificate

HackTricks 지원

인증서 전달 (Azure)

Azure에 가입된 기기에서는 NegoEx 인증 메커니즘을 지원하는 경우 Azure AD CA에서 발급된 인증서를 사용하여 한 기기에서 다른 기기로 인증하는 것이 가능합니다.

매우 간단히 설명하면:

  • 연결을 시작하는 기기(클라이언트)는 Azure AD에서 사용자를 위해 인증서가 필요합니다.

  • 클라이언트는 PRT 및 기타 세부 정보를 포함하는 JSON Web Token (JWT) 헤더를 생성하고, 파생 키(세션 키 및 보안 컨텍스트를 사용하여)를 사용하여 서명하고 Azure AD로 전송합니다.

  • Azure AD는 클라이언트 세션 키 및 보안 컨텍스트를 사용하여 JWT 서명을 확인하고, PRT의 유효성을 확인하고 인증서로 응답합니다.

이 시나리오에서 PRT 전달 공격에 필요한 모든 정보를 수집한 후:

  • 사용자 이름

  • 테넌트 ID

  • PRT

  • 보안 컨텍스트

  • 파생 키

사용자를 위한 P2P 인증서를 요청할 수 있습니다. 이를 위해 PrtToCert** 도구를 사용하세요:**

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