AD Certificates

Reading time: 9 minutes

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Introduction

Components of a Certificate

  • Ο Θέμα του πιστοποιητικού δηλώνει τον κάτοχό του.
  • Ένα Δημόσιο Κλειδί συνδυάζεται με ένα ιδιωτικά διατηρούμενο κλειδί για να συνδέσει το πιστοποιητικό με τον νόμιμο κάτοχό του.
  • Η Περίοδος Ικανότητας, που καθορίζεται από τις ημερομηνίες NotBefore και NotAfter, σηματοδοτεί τη διάρκεια ισχύος του πιστοποιητικού.
  • Ένας μοναδικός Αριθμός Σειράς, που παρέχεται από την Αρχή Πιστοποίησης (CA), προσδιορίζει κάθε πιστοποιητικό.
  • Ο Εκδότης αναφέρεται στην CA που έχει εκδώσει το πιστοποιητικό.
  • Το SubjectAlternativeName επιτρέπει πρόσθετα ονόματα για το θέμα, ενισχύοντας την ευελιξία αναγνώρισης.
  • Οι Βασικοί Περιορισμοί προσδιορίζουν αν το πιστοποιητικό είναι για μια CA ή μια τελική οντότητα και καθορίζουν περιορισμούς χρήσης.
  • Οι Εκτεταμένες Χρήσεις Κλειδιών (EKUs) καθορίζουν τους συγκεκριμένους σκοπούς του πιστοποιητικού, όπως η υπογραφή κώδικα ή η κρυπτογράφηση email, μέσω Αναγνωριστικών Αντικειμένων (OIDs).
  • Ο Αλγόριθμος Υπογραφής καθορίζει τη μέθοδο υπογραφής του πιστοποιητικού.
  • Η Υπογραφή, που δημιουργείται με το ιδιωτικό κλειδί του εκδότη, εγγυάται την αυθεντικότητα του πιστοποιητικού.

Special Considerations

  • Οι Εναλλακτικές Ονομασίες Θέματος (SANs) επεκτείνουν την εφαρμογή ενός πιστοποιητικού σε πολλές ταυτότητες, κρίσιμη για διακομιστές με πολλαπλά domains. Οι ασφαλείς διαδικασίες έκδοσης είναι ζωτικής σημασίας για την αποφυγή κινδύνων προσποίησης από επιτιθέμενους που χειρίζονται την προδιαγραφή SAN.

Certificate Authorities (CAs) in Active Directory (AD)

Η AD CS αναγνωρίζει τα πιστοποιητικά CA σε ένα δάσος AD μέσω καθορισμένων κοντέινερ, το καθένα εξυπηρετεί μοναδικούς ρόλους:

  • Το κοντέινερ Certification Authorities περιέχει αξιόπιστα πιστοποιητικά ρίζας CA.
  • Το κοντέινερ Enrolment Services περιγράφει τις Enterprise CAs και τα πρότυπα πιστοποιητικών τους.
  • Το αντικείμενο NTAuthCertificates περιλαμβάνει πιστοποιητικά CA που έχουν εξουσιοδοτηθεί για την αυθεντικοποίηση AD.
  • Το κοντέινερ AIA (Authority Information Access) διευκολύνει την επικύρωση της αλυσίδας πιστοποιητικών με ενδιάμεσα και διασταυρούμενα πιστοποιητικά CA.

Certificate Acquisition: Client Certificate Request Flow

  1. Η διαδικασία αίτησης ξεκινά με τους πελάτες να βρίσκουν μια Enterprise CA.
  2. Δημιουργείται μια CSR, που περιέχει ένα δημόσιο κλειδί και άλλες λεπτομέρειες, μετά τη δημιουργία ενός ζεύγους δημόσιου-ιδιωτικού κλειδιού.
  3. Η CA αξιολογεί την CSR σε σχέση με τα διαθέσιμα πρότυπα πιστοποιητικών, εκδίδοντας το πιστοποιητικό με βάση τα δικαιώματα του προτύπου.
  4. Μετά την έγκριση, η CA υπογράφει το πιστοποιητικό με το ιδιωτικό της κλειδί και το επιστρέφει στον πελάτη.

Certificate Templates

Ορισμένα εντός της AD, αυτά τα πρότυπα περιγράφουν τις ρυθμίσεις και τα δικαιώματα για την έκδοση πιστοποιητικών, συμπεριλαμβανομένων των επιτρεπόμενων EKUs και δικαιωμάτων εγγραφής ή τροποποίησης, κρίσιμα για τη διαχείριση της πρόσβασης στις υπηρεσίες πιστοποιητικών.

Certificate Enrollment

Η διαδικασία εγγραφής για πιστοποιητικά ξεκινά από έναν διαχειριστή που δημιουργεί ένα πρότυπο πιστοποιητικού, το οποίο στη συνέχεια δημοσιεύεται από μια Enterprise Certificate Authority (CA). Αυτό καθιστά το πρότυπο διαθέσιμο για εγγραφή πελατών, ένα βήμα που επιτυγχάνεται προσθέτοντας το όνομα του προτύπου στο πεδίο certificatetemplates ενός αντικειμένου Active Directory.

Για να ζητήσει ένας πελάτης ένα πιστοποιητικό, πρέπει να παραχωρηθούν δικαιώματα εγγραφής. Αυτά τα δικαιώματα καθορίζονται από τους περιγραφείς ασφαλείας στο πρότυπο πιστοποιητικού και την ίδια την Enterprise CA. Τα δικαιώματα πρέπει να παραχωρούνται και στις δύο τοποθεσίες για να είναι επιτυχής μια αίτηση.

Template Enrollment Rights

Αυτά τα δικαιώματα καθορίζονται μέσω Εισόδων Ελέγχου Πρόσβασης (ACEs), που περιγράφουν δικαιώματα όπως:

  • Δικαιώματα Certificate-Enrollment και Certificate-AutoEnrollment, το καθένα συνδεδεμένο με συγκεκριμένα GUIDs.
  • ExtendedRights, επιτρέποντας όλες τις εκτεταμένες άδειες.
  • FullControl/GenericAll, παρέχοντας πλήρη έλεγχο πάνω στο πρότυπο.

Enterprise CA Enrollment Rights

Τα δικαιώματα της CA περιγράφονται στον περιγραφέα ασφαλείας της, προσβάσιμο μέσω της κονσόλας διαχείρισης της Αρχής Πιστοποίησης. Ορισμένες ρυθμίσεις επιτρέπουν ακόμη και σε χρήστες χαμηλών προνομίων απομακρυσμένη πρόσβαση, γεγονός που θα μπορούσε να είναι ανησυχητικό για την ασφάλεια.

Additional Issuance Controls

Ορισμένοι έλεγχοι μπορεί να ισχύουν, όπως:

  • Έγκριση Διαχειριστή: Τοποθετεί τις αιτήσεις σε εκκρεμή κατάσταση μέχρι να εγκριθούν από έναν διαχειριστή πιστοποιητικών.
  • Πράκτορες Εγγραφής και Εξουσιοδοτημένες Υπογραφές: Προσδιορίζουν τον αριθμό των απαιτούμενων υπογραφών σε μια CSR και τα απαραίτητα Αναγνωριστικά Πολιτικής Εφαρμογής OIDs.

Methods to Request Certificates

Τα πιστοποιητικά μπορούν να ζητηθούν μέσω:

  1. Windows Client Certificate Enrollment Protocol (MS-WCCE), χρησιμοποιώντας διεπαφές DCOM.
  2. ICertPassage Remote Protocol (MS-ICPR), μέσω ονομάτων σωλήνων ή TCP/IP.
  3. Της διαδικτυακής διεπαφής εγγραφής πιστοποιητικών, με τον ρόλο Web Enrollment της Αρχής Πιστοποίησης εγκατεστημένο.
  4. Της Υπηρεσίας Εγγραφής Πιστοποιητικών (CES), σε συνδυασμό με την υπηρεσία Πολιτικής Εγγραφής Πιστοποιητικών (CEP).
  5. Της Υπηρεσίας Εγγραφής Δικτύου (NDES) για συσκευές δικτύου, χρησιμοποιώντας το Απλό Πρωτόκολλο Εγγραφής Πιστοποιητικών (SCEP).

Οι χρήστες Windows μπορούν επίσης να ζητήσουν πιστοποιητικά μέσω της GUI (certmgr.msc ή certlm.msc) ή εργαλείων γραμμής εντολών (certreq.exe ή της εντολής Get-Certificate του PowerShell).

bash
# Example of requesting a certificate using PowerShell
Get-Certificate -Template "User" -CertStoreLocation "cert:\\CurrentUser\\My"

Πιστοποίηση Πιστοποιητικού

Το Active Directory (AD) υποστηρίζει την πιστοποίηση μέσω πιστοποιητικού, κυρίως χρησιμοποιώντας τα πρωτόκολλα Kerberos και Secure Channel (Schannel).

Διαδικασία Πιστοποίησης Kerberos

Στη διαδικασία πιστοποίησης Kerberos, το αίτημα ενός χρήστη για ένα Ticket Granting Ticket (TGT) υπογράφεται χρησιμοποιώντας το ιδιωτικό κλειδί του πιστοποιητικού του χρήστη. Αυτό το αίτημα υποβάλλεται σε πολλές επικυρώσεις από τον ελεγκτή τομέα, συμπεριλαμβανομένης της έγκυρης κατάστασης του πιστοποιητικού, της διαδρομής και της κατάστασης ανάκλησης. Οι επικυρώσεις περιλαμβάνουν επίσης την επαλήθευση ότι το πιστοποιητικό προέρχεται από μια αξιόπιστη πηγή και την επιβεβαίωση της παρουσίας του εκδότη στο κατάστημα πιστοποιητικών NTAUTH. Οι επιτυχείς επικυρώσεις οδηγούν στην έκδοση ενός TGT. Το αντικείμενο NTAuthCertificates στο AD, που βρίσκεται στη:

bash
CN=NTAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,DC=<domain>,DC=<com>

είναι κεντρικό για την establishment εμπιστοσύνης για την πιστοποίηση μέσω πιστοποιητικών.

Secure Channel (Schannel) Authentication

Το Schannel διευκολύνει ασφαλείς συνδέσεις TLS/SSL, όπου κατά τη διάρκεια ενός handshake, ο πελάτης παρουσιάζει ένα πιστοποιητικό που, αν επικυρωθεί επιτυχώς, εξουσιοδοτεί την πρόσβαση. Η αντιστοίχιση ενός πιστοποιητικού σε έναν λογαριασμό AD μπορεί να περιλαμβάνει τη λειτουργία S4U2Self του Kerberos ή το Subject Alternative Name (SAN) του πιστοποιητικού, μεταξύ άλλων μεθόδων.

AD Certificate Services Enumeration

Οι υπηρεσίες πιστοποιητικών του AD μπορούν να καταμετρηθούν μέσω LDAP queries, αποκαλύπτοντας πληροφορίες σχετικά με τις Enterprise Certificate Authorities (CAs) και τις ρυθμίσεις τους. Αυτό είναι προσβάσιμο από οποιονδήποτε χρήστη που έχει πιστοποίηση τομέα χωρίς ειδικά προνόμια. Εργαλεία όπως το Certify και το Certipy χρησιμοποιούνται για την καταμέτρηση και την αξιολόγηση ευπαθειών σε περιβάλλοντα AD CS.

Οι εντολές για τη χρήση αυτών των εργαλείων περιλαμβάνουν:

bash
# Enumerate trusted root CA certificates and Enterprise CAs with Certify
Certify.exe cas
# Identify vulnerable certificate templates with Certify
Certify.exe find /vulnerable

# Use Certipy (>=4.0) for enumeration and identifying vulnerable templates
certipy find -vulnerable -dc-only -u john@corp.local -p Passw0rd -target dc.corp.local

# Request a certificate over the web enrollment interface (new in Certipy 4.x)
certipy req -web -target ca.corp.local -template WebServer -upn john@corp.local -dns www.corp.local

# Enumerate Enterprise CAs and certificate templates with certutil
certutil.exe -TCAInfo
certutil -v -dstemplate

Πρόσφατες Ευπάθειες & Ενημερώσεις Ασφαλείας (2022-2025)

ΈτοςID / ΌνομαΕπιπτώσειςΚύρια Σημεία
2022CVE-2022-26923 – “Certifried” / ESC6Αύξηση δικαιωμάτων μέσω παραποίησης πιστοποιητικών λογαριασμού μηχανής κατά τη διάρκεια του PKINIT.Η ενημέρωση περιλαμβάνεται στις 10 Μαΐου 2022 ενημερώσεις ασφαλείας. Εισήχθησαν έλεγχοι ελέγχου & ισχυρής αντιστοίχισης μέσω του KB5014754; τα περιβάλλοντα θα πρέπει τώρα να είναι σε κατάσταση Πλήρους Επιβολής.
2023CVE-2023-35350 / 35351Απομακρυσμένη εκτέλεση κώδικα στους ρόλους AD CS Web Enrollment (certsrv) και CES.Δημόσιες PoCs είναι περιορισμένες, αλλά τα ευάλωτα στοιχεία IIS είναι συχνά εκτεθειμένα εσωτερικά. Ενημέρωση από Ιούλιο 2023 Patch Tuesday.
2024CVE-2024-49019 – “EKUwu” / ESC15Χαμηλά προνόμια χρήστες με δικαιώματα εγγραφής θα μπορούσαν να παρακάμψουν οποιοδήποτε EKU ή SAN κατά τη διάρκεια της δημιουργίας CSR, εκδίδοντας πιστοποιητικά που χρησιμοποιούνται για την αυθεντικοποίηση πελατών ή την υπογραφή κώδικα και οδηγώντας σε συμβιβασμό τομέα.Αντιμετωπίστηκε στις ενημερώσεις Απριλίου 2024. Αφαιρέστε την “Παροχή στην αίτηση” από τα πρότυπα και περιορίστε τα δικαιώματα εγγραφής.

Χρονοδιάγραμμα σκληρύνσεων της Microsoft (KB5014754)

Η Microsoft εισήγαγε μια τριφασική ανάπτυξη (Συμβατότητα → Έλεγχος → Επιβολή) για να μεταφέρει την πιστοποίηση πιστοποιητικών Kerberos μακριά από αδύνατες έμμεσες αντιστοιχίσεις. Από 11 Φεβρουαρίου 2025, οι ελεγκτές τομέα αλλάζουν αυτόματα σε Πλήρη Επιβολή αν η τιμή μητρώου StrongCertificateBindingEnforcement δεν έχει οριστεί. Οι διαχειριστές θα πρέπει να:

  1. Ενημερώσουν όλους τους DCs & AD CS servers (Μάιος 2022 ή αργότερα).
  2. Παρακολουθούν το Event ID 39/41 για αδύνατες αντιστοιχίσεις κατά τη διάρκεια της φάσης Έλεγχος.
  3. Επαναεκδώσουν πιστοποιητικά αυθεντικοποίησης πελατών με τη νέα επέκταση SID ή να ρυθμίσουν ισχυρές χειροκίνητες αντιστοιχίσεις πριν από τον Φεβρουάριο 2025.

Ανίχνευση & Βελτιώσεις Σκληρύνσεων

  • Ο Defender for Identity AD CS sensor (2023-2024) τώρα επιφανειοποιεί αξιολογήσεις στάσης για ESC1-ESC8/ESC11 και δημιουργεί ειδοποιήσεις σε πραγματικό χρόνο όπως “Έκδοση πιστοποιητικού ελεγκτή τομέα για μη-DC” (ESC8) και “Αποτροπή Εγγραφής Πιστοποιητικού με αυθαίρετες Πολιτικές Εφαρμογής” (ESC15). Βεβαιωθείτε ότι οι αισθητήρες είναι αναπτυγμένοι σε όλους τους AD CS servers για να επωφεληθούν από αυτές τις ανιχνεύσεις.
  • Απενεργοποιήστε ή περιορίστε αυστηρά την επιλογή “Παροχή στην αίτηση” σε όλα τα πρότυπα; προτιμήστε ρητά καθορισμένες τιμές SAN/EKU.
  • Αφαιρέστε Οποιοσδήποτε Σκοπός ή Καμία EKU από τα πρότυπα εκτός αν είναι απολύτως απαραίτητο (αντιμετωπίζει σενάρια ESC2).
  • Απαιτήστε έγκριση διευθυντή ή αφιερωμένες ροές εργασίας Εγγραφής Πράκτορα για ευαίσθητα πρότυπα (π.χ., WebServer / CodeSigning).
  • Περιορίστε την εγγραφή ιστού (certsrv) και τα σημεία CES/NDES σε αξιόπιστα δίκτυα ή πίσω από αυθεντικοποίηση πιστοποιητικού πελάτη.
  • Επιβάλετε κρυπτογράφηση εγγραφής RPC (certutil –setreg CA\InterfaceFlags +IF_ENFORCEENCRYPTICERTREQ) για να μετριάσετε το ESC11.

Αναφορές

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks