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.
Wydawca 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 podmiotu końcowego oraz definiują ograniczenia użytkowania.
Rozszerzone zastosowania kluczy (EKU) określają konkretne cele certyfikatu, takie jak podpisywanie kodu czy szyfrowanie e-maili, za pomocą identyfikatorów obiektów (OID).
Algorytm podpisu określa metodę podpisywania certyfikatu.
Podpis, stworzony za pomocą klucza prywatnego wydawcy, 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 Urzędów Certyfikacji przechowuje zaufane certyfikaty głównych CA.
Kontener Usług rejestracji zawiera informacje o CA przedsiębiorstwa i ich szablonach certyfikatów.
Obiekt NTAuthCertificates zawiera certyfikaty CA autoryzowane do uwierzytelniania AD.
Kontener AIA (Dostęp do informacji o urzędzie) ułatwia walidację łańcucha certyfikatów z certyfikatami pośrednimi i krzyżowymi CA.
Proces żądania rozpoczyna się od znalezienia przez klientów CA przedsiębiorstwa.
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 jest inicjowany przez administratora, który tworzy szablon certyfikatu, który następnie jest publikowany przez Urząd Certyfikacji (CA) przedsiębiorstwa. Umożliwia to klientom rejestrację, 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ą definiowane przez deskryptory zabezpieczeń na szablonie certyfikatu oraz samym Urzędzie Certyfikacji. Uprawnienia muszą być przyznane w obu lokalizacjach, aby żądanie mogło być skuteczne.
Prawa te są określane za pomocą wpisów kontroli dostępu (ACE), szczegółowo opisujących uprawnienia, takie jak:
Prawa Certificate-Enrollment i Certificate-AutoEnrollment, każde związane 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ą rejestracji internetowej 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 weryfikacji przez kontroler domeny, w tym ważność, ścieżkę i status unieważnienia certyfikatu. Weryfikacje obejmują również potwierdzenie, że certyfikat pochodzi z zaufanego źródła oraz potwierdzenie obecności wystawcy w magazynie certyfikatów NTAUTH. Pomyślne weryfikacje skutkują wydaniem TGT. Obiekt NTAuthCertificates
w AD, znajdujący się pod:
jest kluczowe dla ustanowienia zaufania w przypadku uwierzytelniania za pomocą certyfikatów.
Schannel ułatwia bezpieczne połączenia TLS/SSL, w których 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.
Polecenia do korzystania z tych narzędzi obejmują:
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)