AD Certificates
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Podmiot certyfikatu oznacza jego właściciela.
Klucz publiczny jest sparowany z kluczem prywatnym, aby powiązać certyfikat z jego prawowitym właścicielem.
Okres ważności, określony przez daty NotBefore i NotAfter, oznacza czas obowiązywania certyfikatu.
Unikalny Numer seryjny, dostarczony przez Urząd Certyfikacji (CA), identyfikuje każdy certyfikat.
Wystawca odnosi się do CA, który wydał certyfikat.
SubjectAlternativeName pozwala na dodatkowe nazwy dla podmiotu, zwiększając elastyczność identyfikacji.
Podstawowe ograniczenia identyfikują, czy certyfikat jest dla CA, czy dla podmiotu końcowego oraz definiują ograniczenia użytkowania.
Rozszerzone zastosowania kluczy (EKU) określają konkretne cele certyfikatu, takie jak podpisywanie kodu lub szyfrowanie e-maili, za pomocą identyfikatorów obiektów (OID).
Algorytm podpisu określa metodę podpisywania certyfikatu.
Podpis, stworzony za pomocą klucza prywatnego wystawcy, gwarantuje autentyczność certyfikatu.
Alternatywne nazwy podmiotu (SAN) rozszerzają zastosowanie certyfikatu na wiele tożsamości, co jest kluczowe dla serwerów z wieloma domenami. Bezpieczne procesy wydawania są niezbędne, aby uniknąć ryzyka podszywania się przez atakujących manipulujących specyfikacją SAN.
AD CS uznaje certyfikaty CA w lesie AD poprzez wyznaczone kontenery, z których każdy pełni unikalne role:
Kontener Certification Authorities przechowuje zaufane certyfikaty głównych CA.
Kontener Enrolment Services zawiera szczegóły dotyczące Enterprise CA i ich szablonów certyfikatów.
Obiekt NTAuthCertificates zawiera certyfikaty CA autoryzowane do uwierzytelniania AD.
Kontener AIA (Authority Information Access) ułatwia walidację łańcucha certyfikatów z certyfikatami pośrednimi i krzyżowymi CA.
Proces żądania rozpoczyna się od znalezienia przez klientów Enterprise CA.
Tworzony jest CSR, zawierający klucz publiczny i inne szczegóły, po wygenerowaniu pary kluczy publiczno-prywatnych.
CA ocenia CSR w odniesieniu do dostępnych szablonów certyfikatów, wydając certyfikat na podstawie uprawnień szablonu.
Po zatwierdzeniu CA podpisuje certyfikat swoim kluczem prywatnym i zwraca go klientowi.
Zdefiniowane w AD, te szablony określają ustawienia i uprawnienia do wydawania certyfikatów, w tym dozwolone EKU oraz prawa do rejestracji lub modyfikacji, co jest kluczowe dla zarządzania dostępem do usług certyfikacyjnych.
Proces rejestracji certyfikatów inicjuje administrator, który tworzy szablon certyfikatu, który następnie jest publikowany przez Enterprise Certificate Authority (CA). To sprawia, że szablon jest dostępny do rejestracji przez klientów, co osiąga się poprzez dodanie nazwy szablonu do pola certificatetemplates
obiektu Active Directory.
Aby klient mógł zażądać certyfikatu, muszą być przyznane prawa rejestracji. Prawa te są określone przez deskryptory zabezpieczeń na szablonie certyfikatu oraz samym Enterprise CA. Uprawnienia muszą być przyznane w obu lokalizacjach, aby żądanie było skuteczne.
Prawa te są określone za pomocą wpisów kontroli dostępu (ACE), szczegółowo opisujących uprawnienia, takie jak:
Prawa Certificate-Enrollment i Certificate-AutoEnrollment, z każdym związanym z określonymi GUID.
ExtendedRights, pozwalające na wszystkie rozszerzone uprawnienia.
FullControl/GenericAll, zapewniające pełną kontrolę nad szablonem.
Prawa CA są określone w jego deskryptorze zabezpieczeń, dostępnym za pośrednictwem konsoli zarządzania Urzędem Certyfikacji. Niektóre ustawienia pozwalają nawet użytkownikom o niskich uprawnieniach na zdalny dostęp, co może stanowić zagrożenie dla bezpieczeństwa.
Mogą obowiązywać pewne kontrole, takie jak:
Zatwierdzenie menedżera: Umieszcza żądania w stanie oczekiwania do zatwierdzenia przez menedżera certyfikatów.
Agenci rejestracji i autoryzowane podpisy: Określają liczbę wymaganych podpisów na CSR oraz niezbędne identyfikatory polityki aplikacji OID.
Certyfikaty można żądać za pośrednictwem:
Protokół rejestracji certyfikatów klienta Windows (MS-WCCE), używając interfejsów DCOM.
Protokół ICertPassage Remote (MS-ICPR), przez potok nazwany lub TCP/IP.
Interfejs internetowy rejestracji certyfikatów, z zainstalowaną rolą Web Enrollment Urzędu Certyfikacji.
Usługa rejestracji certyfikatów (CES), w połączeniu z usługą polityki rejestracji certyfikatów (CEP).
Usługa rejestracji urządzeń sieciowych (NDES) dla urządzeń sieciowych, używając prostego protokołu rejestracji certyfikatów (SCEP).
Użytkownicy systemu Windows mogą również żądać certyfikatów za pośrednictwem GUI (certmgr.msc
lub certlm.msc
) lub narzędzi wiersza poleceń (certreq.exe
lub polecenia PowerShell Get-Certificate
).
Active Directory (AD) wspiera uwierzytelnianie za pomocą certyfikatów, głównie wykorzystując protokoły Kerberos i Secure Channel (Schannel).
W procesie uwierzytelniania Kerberos, żądanie użytkownika o Ticket Granting Ticket (TGT) jest podpisywane za pomocą klucza prywatnego certyfikatu użytkownika. To żądanie przechodzi przez kilka walidacji przez kontroler domeny, w tym ważność, ścieżkę i status unieważnienia certyfikatu. Walidacje obejmują również weryfikację, że certyfikat pochodzi z zaufanego źródła oraz potwierdzenie obecności wystawcy w magazynie certyfikatów NTAUTH. Pomyślne walidacje skutkują wydaniem TGT. Obiekt NTAuthCertificates
w AD, znajdujący się pod:
is central to establishing trust for certificate authentication.
Schannel ułatwia bezpieczne połączenia TLS/SSL, gdzie podczas handshake klient przedstawia certyfikat, który, jeśli zostanie pomyślnie zweryfikowany, upoważnia do dostępu. Mapowanie certyfikatu do konta AD może obejmować funkcję Kerberos S4U2Self lub Subject Alternative Name (SAN) certyfikatu, między innymi metody.
Usługi certyfikatów AD można enumerować za pomocą zapytań LDAP, ujawniając informacje o Enterprise Certificate Authorities (CAs) i ich konfiguracjach. Jest to dostępne dla każdego użytkownika uwierzytelnionego w domenie bez specjalnych uprawnień. Narzędzia takie jak Certify i Certipy są używane do enumeracji i oceny podatności w środowiskach AD CS.
Commands for using these tools include:
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)