AD CS Domain Persistence
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)
Αυτή είναι μια περίληψη των τεχνικών διαρκούς παρουσίας τομέα που μοιράστηκαν στο https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf. Ελέγξτε το για περισσότερες λεπτομέρειες.
Πώς μπορείτε να καταλάβετε ότι ένα πιστοποιητικό είναι πιστοποιητικό CA;
Μπορεί να προσδιοριστεί ότι ένα πιστοποιητικό είναι πιστοποιητικό CA εάν πληρούνται αρκετές προϋποθέσεις:
Το πιστοποιητικό είναι αποθηκευμένο στον διακομιστή CA, με το ιδιωτικό του κλειδί ασφαλισμένο από το DPAPI της μηχανής ή από υλικό όπως TPM/HSM αν το λειτουργικό σύστημα το υποστηρίζει.
Τα πεδία Issuer και Subject του πιστοποιητικού ταιριάζουν με το διακριτό όνομα του CA.
Μια επέκταση "CA Version" είναι παρούσα στα πιστοποιητικά CA αποκλειστικά.
Το πιστοποιητικό δεν έχει πεδία Extended Key Usage (EKU).
Για να εξαγάγετε το ιδιωτικό κλειδί αυτού του πιστοποιητικού, το εργαλείο certsrv.msc
στον διακομιστή CA είναι η υποστηριζόμενη μέθοδος μέσω της ενσωματωμένης GUI. Παρ' όλα αυτά, αυτό το πιστοποιητικό δεν διαφέρει από άλλα που είναι αποθηκευμένα στο σύστημα. Έτσι, μέθοδοι όπως η THEFT2 technique μπορούν να εφαρμοστούν για την εξαγωγή.
Το πιστοποιητικό και το ιδιωτικό κλειδί μπορούν επίσης να αποκτηθούν χρησιμοποιώντας το Certipy με την ακόλουθη εντολή:
Αφού αποκτηθεί το πιστοποιητικό CA και το ιδιωτικό του κλειδί σε μορφή .pfx
, εργαλεία όπως το ForgeCert μπορούν να χρησιμοποιηθούν για τη δημιουργία έγκυρων πιστοποιητικών:
Ο χρήστης που στοχεύεται για πλαστογράφηση πιστοποιητικού πρέπει να είναι ενεργός και ικανός να αυθεντικοποιείται στο Active Directory για να επιτύχει η διαδικασία. Η πλαστογράφηση ενός πιστοποιητικού για ειδικούς λογαριασμούς όπως ο krbtgt είναι αναποτελεσματική.
Αυτό το πλαστογραφημένο πιστοποιητικό θα είναι έγκυρο μέχρι την ημερομηνία λήξης που έχει καθοριστεί και όσο το πιστοποιητικό της ρίζας CA είναι έγκυρο (συνήθως από 5 έως 10+ χρόνια). Είναι επίσης έγκυρο για μηχανές, οπότε σε συνδυασμό με το S4U2Self, ένας επιτιθέμενος μπορεί να διατηρήσει επιμονή σε οποιαδήποτε μηχανή τομέα όσο το πιστοποιητικό CA είναι έγκυρο. Επιπλέον, τα πιστοποιητικά που παράγονται με αυτή τη μέθοδο δεν μπορούν να ανακληθούν καθώς η CA δεν είναι ενήμερη γι' αυτά.
Το αντικείμενο NTAuthCertificates
ορίζεται για να περιέχει ένα ή περισσότερα πιστοποιητικά CA εντός του χαρακτηριστικού cacertificate
, το οποίο χρησιμοποιεί το Active Directory (AD). Η διαδικασία επαλήθευσης από τον ελεγκτή τομέα περιλαμβάνει τον έλεγχο του αντικειμένου NTAuthCertificates
για μια καταχώρηση που ταιριάζει με την CA που καθορίζεται στο πεδίο Εκδότη του αυθεντικοποιητικού πιστοποιητικού. Η αυθεντικοποίηση προχωρά εάν βρεθεί ταίριασμα.
Ένα αυτο-υπογεγραμμένο πιστοποιητικό CA μπορεί να προστεθεί στο αντικείμενο NTAuthCertificates
από έναν επιτιθέμενο, εφόσον έχει έλεγχο αυτού του αντικειμένου AD. Κανονικά, μόνο τα μέλη της ομάδας Enterprise Admin, μαζί με τους Domain Admins ή Administrators στο δενδρικό τομέα ρίζας, έχουν άδεια να τροποποιούν αυτό το αντικείμενο. Μπορούν να επεξεργαστούν το αντικείμενο NTAuthCertificates
χρησιμοποιώντας το certutil.exe
με την εντολή certutil.exe -dspublish -f C:\Temp\CERT.crt NTAuthCA126
, ή χρησιμοποιώντας το PKI Health Tool.
Αυτή η δυνατότητα είναι ιδιαίτερα σχετική όταν χρησιμοποιείται σε συνδυασμό με μια προηγουμένως περιγραφείσα μέθοδο που περιλαμβάνει το ForgeCert για τη δυναμική δημιουργία πιστοποιητικών.
Οι ευκαιρίες για επιμονή μέσω τροποποιήσεων περιγραφής ασφαλείας των στοιχείων AD CS είναι πολλές. Οι τροποποιήσεις που περιγράφονται στην ενότητα "Domain Escalation" μπορούν να εφαρμοστούν κακόβουλα από έναν επιτιθέμενο με ανυψωμένη πρόσβαση. Αυτό περιλαμβάνει την προσθήκη "δικαιωμάτων ελέγχου" (π.χ., WriteOwner/WriteDACL κ.λπ.) σε ευαίσθητα στοιχεία όπως:
Το αντικείμενο υπολογιστή AD του CA server
Ο RPC/DCOM server του CA server
Οποιοδήποτε καταγωγικό αντικείμενο ή κοντέινερ AD στο CN=Public Key Services,CN=Services,CN=Configuration,DC=<DOMAIN>,DC=<COM>
(για παράδειγμα, το κοντέινερ Πρότυπα Πιστοποιητικών, το κοντέινερ Αρχών Πιστοποίησης, το αντικείμενο NTAuthCertificates κ.λπ.)
Ομάδες AD που έχουν δικαιώματα ελέγχου AD CS από προεπιλογή ή από τον οργανισμό (όπως η ενσωματωμένη ομάδα Cert Publishers και οποιοδήποτε από τα μέλη της)
Ένα παράδειγμα κακόβουλης εφαρμογής θα περιλάμβανε έναν επιτιθέμενο, ο οποίος έχει ανυψωμένα δικαιώματα στο τομέα, να προσθέτει την άδεια WriteOwner
στο προεπιλεγμένο πρότυπο πιστοποιητικού User
, με τον επιτιθέμενο να είναι ο κύριος για το δικαίωμα. Για να εκμεταλλευτεί αυτό, ο επιτιθέμενος θα άλλαζε πρώτα την ιδιοκτησία του προτύπου User
σε αυτόν. Ακολούθως, η mspki-certificate-name-flag
θα ρυθμιστεί σε 1 στο πρότυπο για να επιτρέψει το ENROLLEE_SUPPLIES_SUBJECT
, επιτρέποντας σε έναν χρήστη να παρέχει ένα Subject Alternative Name στην αίτηση. Στη συνέχεια, ο επιτιθέμενος θα μπορούσε να εγγραφεί χρησιμοποιώντας το πρότυπο, επιλέγοντας ένα όνομα τομεακού διαχειριστή ως εναλλακτικό όνομα, και να χρησιμοποιήσει το αποκτηθέν πιστοποιητικό για αυθεντικοποίηση ως DA.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)