Az - Pass the Certificate

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Przekazanie Certyfikatu (Azure)

W przypadku połączonych maszyn w Azure możliwe jest uwierzytelnianie z jednej maszyny do drugiej za pomocą certyfikatów, które muszą być wydane przez Azure AD CA dla wymaganego użytkownika (jako podmiot), gdy obie maszyny obsługują mechanizm uwierzytelniania NegoEx.

W bardzo uproszczonych terminach:

  • Maszyna (klient) inicjująca połączenie potrzebuje certyfikatu od Azure AD dla użytkownika.

  • Klient tworzy nagłówek JSON Web Token (JWT) zawierający PRT i inne szczegóły, podpisuje go za pomocą klucza pochodnego (używając klucza sesji i kontekstu zabezpieczeń) i wysyła go do Azure AD.

  • Azure AD weryfikuje podpis JWT za pomocą klucza sesji klienta i kontekstu zabezpieczeń, sprawdza ważność PRT i odpowiada certyfikatem.

W tym scenariuszu, po zebraniu wszystkich potrzebnych informacji do ataku Przekazanie PRT:

  • Nazwa użytkownika

  • ID najemcy

  • PRT

  • Kontekst zabezpieczeń

  • Klucz pochodny

Możliwe jest żądanie certyfikatu P2P dla użytkownika za pomocą narzędzia PrtToCert:

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

Certyfikaty będą trwać tak samo jak PRT. Aby użyć certyfikatu, można skorzystać z narzędzia Python AzureADJoinedMachinePTC, które uwierzytelnia się na zdalnej maszynie, uruchamia PSEXEC i otwiera CMD na maszynie ofiary. Pozwoli nam to ponownie użyć Mimikatz, aby uzyskać PRT innego użytkownika.

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

Odnośniki

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated