Az - Pass the Certificate

Support HackTricks

Pass the Certificate (Azure)

Azure에 가입된 머신에서는 두 머신이 NegoEx 인증 메커니즘을 지원할 때, Azure AD CA에서 발급된 인증서를 사용하여 한 머신에서 다른 머신으로 인증할 수 있습니다.

매우 간단히 말하자면:

  • 연결을 시작하는 머신(클라이언트)은 사용자를 위한 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와 동일한 기간 동안 유효합니다. 인증서를 사용하려면 파이썬 도구 AzureADJoinedMachinePTC를 사용하여 원격 머신에 인증하고, PSEXEC를 실행하며, 피해자 머신에서 CMD를 엽니다. 이를 통해 Mimikatz를 다시 사용하여 다른 사용자의 PRT를 얻을 수 있습니다.

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

References

HackTricks 지원하기

Last updated