Active Directory Methodology

Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Βασική επισκόπηση

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

Η δομή του Active Directory αποτελείται από τρία βασικά επίπεδα: τομείς, δέντρα και δάση. Ένας τομέας περιλαμβάνει μια συλλογή αντικειμένων, όπως χρήστες ή συσκευές, που μοιράζονται μια κοινή βάση δεδομένων. Τα δέντρα είναι ομάδες αυτών των τομέων που συνδέονται με μια κοινή δομή, και ένα δάσος αντιπροσωπεύει τη συλλογή πολλών δέντρων, που συνδέονται μέσω σχέσεων εμπιστοσύνης, σχηματίζοντας το ανώτερο επίπεδο της οργανωτικής δομής. Σε κάθε ένα από αυτά τα επίπεδα μπορούν να οριστούν συγκεκριμένα δικαιώματα πρόσβασης και επικοινωνίας.

Βασικές έννοιες εντός του Active Directory περιλαμβάνουν:

  1. Κατάλογος - Περιέχει όλες τις πληροφορίες που αφορούν τα αντικείμενα του Active Directory.

  2. Αντικείμενο - Υποδηλώνει οντότητες εντός του καταλόγου, συμπεριλαμβανομένων χρηστών, ομάδων ή κοινόχρηστων φακέλων.

  3. Τομέας - Λειτουργεί ως ένας δοχείο για αντικείμενα του καταλόγου, με τη δυνατότητα για πολλούς τομείς να συνυπάρχουν εντός ενός δάσους, καθένας διατηρώντας τη δική του συλλογή αντικειμένων.

  4. Δέντρο - Ένας ομαδοποιημένος συνδυασμός τομέων που μοιράζονται έναν κοινό ριζικό τομέα.

  5. Δάσος - Η κορυφή της οργανωτικής δομής στο Active Directory, αποτελούμενη από αρκετά δέντρα με σχέσεις εμπιστοσύνης μεταξύ τους.

Οι **Υπηρεσίες Τομέα Ενε

Απαρίθμηση χρηστών

  • Ανώνυμη απαρίθμηση SMB/LDAP: Ελέγξτε τις σελίδες pentesting SMB και pentesting LDAP.

  • Απαρίθμηση με το Kerbrute: Όταν ζητείται ένα μη έγκυρο όνομα χρήστη, ο διακομιστής θα απαντήσει χρησιμοποιώντας τον κωδικό σφάλματος Kerberos KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN, επιτρέποντάς μας να καθορίσουμε ότι το όνομα χρήστη ήταν μη έγκυρο. Έγκυρα ονόματα χρηστών θα προκαλέσουν είτε την απόκτηση του TGT σε μια απάντηση AS-REP είτε το σφάλμα KRB5KDC_ERR_PREAUTH_REQUIRED, που υποδηλώνει ότι ο χρήστης πρέπει να εκτελέσει προ-πιστοποίηση.

./kerbrute_linux_amd64 userenum -d lab.ropnop.com --dc 10.10.10.10 usernames.txt #From https://github.com/ropnop/kerbrute/releases

nmap -p 88 --script=krb5-enum-users --script-args="krb5-enum-users.realm='DOMAIN'" <IP>
Nmap -p 88 --script=krb5-enum-users --script-args krb5-enum-users.realm='<domain>',userdb=/root/Desktop/usernames.txt <IP>

msf> use auxiliary/gather/kerberos_enumusers

crackmapexec smb dominio.es  -u '' -p '' --users | awk '{print $4}' | uniq
  • Διακομιστής OWA (Outlook Web Access)

Εάν βρείτε έναν από αυτούς τους διακομιστές στο δίκτυο, μπορείτε επίσης να πραγματοποιήσετε απαρίθμηση χρηστών εναντίον του. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε το εργαλείο MailSniper:

ipmo C:\Tools\MailSniper\MailSniper.ps1
# Get info about the domain
Invoke-DomainHarvestOWA -ExchHostname [ip]
# Enumerate valid users from a list of potential usernames
Invoke-UsernameHarvestOWA -ExchHostname [ip] -Domain [domain] -UserList .\possible-usernames.txt -OutFile valid.txt
# Password spraying
Invoke-PasswordSprayOWA -ExchHostname [ip] -UserList .\valid.txt -Password Summer2021
# Get addresses list from the compromised mail
Get-GlobalAddressList -ExchHostname [ip] -UserName [domain]\[username] -Password Summer2021 -OutFile gal.txt

Μπορείτε να βρείτε λίστες ονομάτων χρηστών στο αποθετήριο github αυτό και σε αυτό (statistically-likely-usernames).

Ωστόσο, θα πρέπει να έχετε το όνομα των ατόμων που εργάζονται στην εταιρεία από το βήμα αναγνώρισης που θα έπρεπε να έχετε πραγματοποιήσει πριν από αυτό. Με το όνομα και το επώνυμο μπορείτε να χρησιμοποιήσετε το σενάριο namemash.py για να δημιουργήσετε πιθανά έγκυρα ονόματα χρηστών.

Γνωρίζοντας ένα ή περισσότερα ονόματα χρηστών

Εντάξει, λοιπόν, γνωρίζετε ότι έχετε ήδη ένα έγκυρο όνομα χρήστη, αλλά χωρίς κωδικούς πρόσβασης... Τότε δοκιμάστε:

  • ASREPRoast: Εάν ένας χρήστης δεν έχει το χαρακτηριστικό DONT_REQ_PREAUTH, μπορείτε να ζητήσετε ένα μήνυμα AS_REP για αυτόν τον χρήστη που θα περιέχει ορισμένα δεδομένα κρυπτογραφημένα από μια παράγωγη του κωδικού πρόσβασης του χρήστη.

  • Password Spraying: Δοκιμάστε τους συνηθέστερους κωδικούς πρόσβασης με κάθε έναν από τους ανακαλυφθέντες χρήστες, ίσως κάποιος χρήστης χρησιμοποιεί έναν κακό κωδικό πρόσβασης (να έχετε υπόψη την πολιτική κωδικού πρόσβασης!).

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

pagePassword Spraying / Brute Force

Πλημμύρα LLMNR/NBT-NS

Μπορείτε να αποκτήσετε ορισμένες προκλήσεις hash για να σπάσετε την πλημμύρα ορισμένων πρωτοκόλλων του δικτύου:

pageSpoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks

NTML Relay

Εάν καταφέρατε να απαριθμήσετε τον ενεργό κατάλογο, θα έχετε περισσότερα emails και καλύτερη κατανόηση του δικτύου. Μπορείτε να προσπαθήσετε να επιβάλετε επιθέσεις relay NTML για να αποκτήσετε πρόσβαση στο περιβάλλον AD.

Κλοπή NTLM διαπιστευτηρίων

Εάν μπορείτε να αποκτήσετε πρόσβαση σε άλλους υπολογιστές ή κοινόχρηστους φακέλους με τον null ή guest χρήστη, μπορείτε να τοποθετήσετε αρχεία (όπως ένα αρχείο SCF) που, εάν προσπελαστούν κατά κάποιον τρόπο, θα ενεργοποιήσουν μια πιστοποίηση NTML εναντίον σας ώστε να μπορείτε να κλέψετε την πρόκληση NTLM για να την σπάσετε:

pagePlaces to steal NTLM creds

Απαρίθμηση του ενεργού καταλόγου ΜΕ διαπιστευτήρια/συνεδρία

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

Πριν ξεκινή

Απομακρυσμένη σύνδεση (RDP, SSH, FTP, Win-RM, κλπ)

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

Ανέλιξη τοπικών δικαιωμάτων

Εάν έχετε διαρρεύσει διαπιστευτήρια ή μια συνεδρία ως κανονικός χρήστης του τομέα και έχετε πρόσβαση με αυτόν τον χρήστη σε οποιοδήποτε μηχάνημα στον τομέα, θα πρέπει να προσπαθήσετε να βρείτε τον τρόπο να αναβαθμίσετε τα τοπικά δικαιώματα και να αποκτήσετε πρόσβαση σε διαπιστευτήρια. Αυτό συμβαίνει επειδή μόνο με δικαιώματα τοπικού διαχειριστή θα μπορείτε να αντλήσετε τις κατακερματισμένες τιμές άλλων χρηστών από τη μνήμη (LSASS) και τοπικά (SAM).

Υπάρχει μια πλήρης σελίδα σε αυτό το βιβλίο για την ανέλιξη τοπικών δικαιωμάτων στα Windows και μια λίστα ελέγχου. Επίσης, μην ξεχάσετε να χρησιμοποιήσετε το WinPEAS.

Τρέχοντα εισιτήρια συνεδρίας

Είναι πολύ απίθανο να βρείτε εισιτήρια στον τρέχοντα χρήστη που σας δίνουν άδεια πρόσβασης σε αναπάντεχους πόρους, αλλά μπορείτε να το ελέγξετε:

## List all tickets (if not admin, only current user tickets)
.\Rubeus.exe triage
## Dump the interesting one by luid
.\Rubeus.exe dump /service:krbtgt /luid:<luid> /nowrap
[IO.File]::WriteAllBytes("ticket.kirbi", [Convert]::FromBase64String("<BASE64_TICKET>"))

NTML Relay

Εάν καταφέρετε να απαριθμήσετε το ενεργό κατάλογο, θα έχετε περισσότερα emails και καλύτερη κατανόηση του δικτύου. Μπορείτε να προσπαθήσετε να εκτελέσετε επιθέσεις NTML relay.

Αναζήτηση διαπιστευτηρίων στα κοινόχρηστα αρχεία των υπολογιστών

Τώρα που έχετε μερικά βασικά διαπιστευτήρια, πρέπει να ελέγξετε αν μπορείτε να βρείτε οποιαδήποτε ενδιαφέροντα αρχεία που κοινοποιούνται μέσα στον AD. Μπορείτε να το κάνετε χειροκίνητα, αλλά είναι μια πολύ βαρετή επαναλαμβανόμενη εργασία (και ακόμα περισσότερο αν βρείτε εκατοντάδες εγγράφων που πρέπει να ελέγξετε).

Ακολουθήστε αυτόν τον σύνδεσμο για να μάθετε για εργαλεία που μπορείτε να χρησιμοποιήσετε.

Κλοπή NTLM Creds

Εάν μπορείτε να έχετε πρόσβαση σε άλλους υπολογιστές ή κοινόχρηστα, μπορείτε να τοποθετήσετε αρχεία (όπως ένα αρχείο SCF) που αν προσπελαστούν κατά κάποιον τρόπο θα ενεργοποιήσουν μια NTML πιστοποίηση εναντίον σας, ώστε να μπορείτε να κλέψετε την πρόκληση NTLM για να την αποκρυπτογραφήσετε:

pagePlaces to steal NTLM creds

CVE-2021-1675/CVE-2021-34527 PrintNightmare

Αυτή η ευπάθεια επέτρεπε σε οποιονδήποτε εξουσιοδοτημένο χρήστη να θέσει σε κίνδυνο τον ελεγκτή του τομέα.

pagePrintNightmare

Ανέλιξη προνομιακών δικαιωμάτων στον ενεργό κατάλογο ΜΕ προνομιακά διαπιστευτήρια/συνεδρία

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

Εξαγωγή κατακερματισμένων κωδικών

Ελπίζουμε ότι καταφέρατε να θέσετε σε κίνδυνο κάποιο τοπικό λογαριασμό διαχειριστή χρησιμοποιώντας το AsRepRoast, Password Spraying, Kerberoast, Responder συμπεριλαμβανομένης της ανακατεύθυνσης, EvilSSDP, ανέλιξη προνομιακών δικαιωμάτων τοπικά. Στη συνέχεια, είναι καιρός να αντλήσετε όλους τους κατακερματισμένους κωδικούς από τη μνήμη και τοπικά. Διαβάστε αυτήν τη σελίδα για διάφορους τρόπους απόκτησης των κατακερματισμένων κωδικών.

Περάστε τον κατακερματισμένο κωδικό

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

Περάστε τον κατακερματισμένο κωδικό/κλειδί

Αυτή η επίθεση στοχεύει να χρησιμοποιήσει τον κατακερματισμένο κωδικό NTLM του χρήστη για να ζητήσει εισιτήρια Kerberos, ως εναλλακτική λύση στο κοινό πρωτόκολλο Pass The Hash μέσω NTLM. Επομένως, αυτό μπορεί να είναι ιδιαίτερα χρήσιμο σε δίκτυα όπου το πρωτόκολλο NTLM είναι απενεργοποιημένο και επιτρέπεται μόνο το πρωτόκολλο Kerberos ως πρωτόκολλο πιστοποίησης.

pageOver Pass the Hash/Pass the Key

Περάστε το εισιτήριο

Στη μέθοδο επίθεσης Pass The Ticket (PTT), οι επιτιθέμενοι κλέβουν το εισιτήριο πιστοποίησης ενός χρήστη αντί για τον κωδικό πρόσβασης ή τις τιμές κατακερματισμένων κωδικών. Το κλεμμένο εισιτ

# Local Auth Spray (once you found some local admin pass or hash)
## --local-auth flag indicate to only try 1 time per machine
crackmapexec smb --local-auth 10.10.10.10/23 -u administrator -H 10298e182387f9cab376ecd08491764a0 | grep +

Να σημειωθεί ότι αυτό είναι αρκετά θορυβώδες και το LAPS θα το περιορίσει.

Κατάχρηση MSSQL & Αξιόπιστοι Σύνδεσμοι

Εάν ένας χρήστης έχει δικαιώματα να έχει πρόσβαση σε περιπτώσεις MSSQL, μπορεί να το χρησιμοποιήσει για να εκτελέσει εντολές στον κεντρικό υπολογιστή MSSQL (εάν εκτελείται ως SA), να κλέψει το NetNTLM hash ή ακόμα και να πραγματοποιήσει μια επίθεση ανακατεύθυνσης. Επίσης, εάν ένα περιβάλλον MSSQL είναι αξιόπιστο (σύνδεσμος βάσης δεδομένων) από ένα διαφορετικό περιβάλλον MSSQL. Εάν ο χρήστης έχει δικαιώματα στην αξιόπιστη βάση δεδομένων, θα μπορεί να χρησιμοποιήσει τη σχέση εμπιστοσύνης για να εκτελέσει ερωτήματα και στο άλλο περιβάλλον. Αυτές οι συνδέσεις μπορούν να αλυσοδεθούν και σε κάποιο σημείο ο χρήστης μπορεί να βρει μια κακοδιαμορφωμένη βάση δεδομένων όπου μπορεί να εκτελέσει εντολές. Οι συνδέσεις μεταξύ των βάσεων δεδομένων λειτουργούν ακόμα και μεταξύ εμπιστοσύνης δάσους.

pageMSSQL AD Abuse

Μη περιορισμένη Αναθέση

Εάν βρείτε οποιοδήποτε αντικείμενο Υπολογιστή με το χαρακτηριστικό ADS_UF_TRUSTED_FOR_DELEGATION και έχετε δικαιώματα τομέα στον υπολογιστή, θα μπορείτε να αντλήσετε TGT από τη μνήμη κάθε χρήστη που συνδέεται στον υπολογιστή. Έτσι, εάν ένας Διαχειριστής του τομέα συνδέεται στον υπολογιστή, θα μπορείτε να αντλήσετε το TGT του και να τον προσομοιώσετε χρησιμοποιώντας το Pass the Ticket. Χάρη στην περιορισμένη ανάθεση, μπορείτε ακόμα και να προσβάλετε αυτόματα έναν εκτυπωτικό διακομιστή (ελπίζουμε ότι θα είναι ένας DC).

pageUnconstrained Delegation

Περιορισμένη Αναθέση

Εάν ένας χρήστης ή υπολογιστής επιτρέπεται για την "Περιορισμένη Αναθέση", θα μπορεί να προσομοιώσει οποιονδήποτε χρήστη για να έχει πρόσβαση σε ορισμένες υπηρεσίες σε έναν υπολογιστή. Στη συνέχεια, εάν προσβάλετε το hash αυτού του χρήστη/υπολογιστή, θα μπορείτε να προσομοιώσετε οποιονδήποτε χρήστη (ακόμα και διαχειριστές τομέα) για να έχει πρόσβαση σε ορισμένες υπηρεσίες.

pageConstrained Delegation

Περιορισμένη Αναθέση βάσει Πόρων

Έχοντας το προνόμιο ΕΓΓΡΑΦΗ σε ένα αντικείμενο Active Directory ενός απομακρυσμένου υπολογιστή, επιτρέπεται η επίτευξη εκτέλεσης κώδικα με αυξημένα προνόμια:

pageResource-based Constrained Delegation

Κατάχρηση ACLs

Ο χρήστης που έχει παραβιάσει μπορεί να έχει ορισμένα ενδιαφέροντα προνόμια σε ορισμένα αντικείμενα του τομέα που μπορούν να σας επιτρέψουν να μετακινηθείτε πλευρικά/αναβαθμίσετε προνόμια.

pageAbusing Active Directory ACLs/ACEs

Κατάχρηση υπηρεσίας Printer Spooler

Η ανακάλυψη μιας **υπηρεσίας Spool που ακο

Μόνιμη Παραμονή Πιστοποιητικών Τομέα

Χρησιμοποιώντας πιστοποιητικά είναι επίσης δυνατή η μόνιμη παραμονή με υψηλά προνόμια εντός του τομέα:

pageAD CS Domain Persistence

Ομάδα AdminSDHolder

Το αντικείμενο AdminSDHolder στο Active Directory εξασφαλίζει την ασφάλεια των προνομιούχων ομάδων (όπως οι Domain Admins και οι Enterprise Admins) εφαρμόζοντας ένα τυποποιημένο Access Control List (ACL) σε αυτές τις ομάδες για να αποτρέψει μη εξουσιοδοτημένες αλλαγές. Ωστόσο, αυτό το χαρακτηριστικό μπορεί να εκμεταλλευτεί. Εάν ένας επιτιθέμενος τροποποιήσει το ACL του AdminSDHolder για να δώσει πλήρη πρόσβαση σε έναν κανονικό χρήστη, αυτός ο χρήστης αποκτά έλεγχο πάνω σε όλες τις προνομιούχες ομάδες. Αυτός ο μηχανισμός ασφαλείας, που έχει σκοπό να προστατεύει, μπορεί να αντιδράσει αντίθετα, επιτρέποντας μη εξουσιοδοτημένη πρόσβαση εκτός αν παρακολουθείται στενά.

Περισσότερες πληροφορίες για την ομάδα AdminSDHolder εδώ.

Διαπιστευτήρια DSRM

Μέσα σε κάθε Domain Controller (DC) υπάρχει ένας τοπικός λογαριασμός διαχειριστή. Αποκτώντας δικαιώματα διαχειριστή σε ένα τέτοιο μηχάνημα, μπορεί να εξαχθεί το hash του τοπικού διαχειριστή χρησιμοποιώντας το mimikatz. Ακολούθως, απαιτείται μια τροποποίηση του μητρώου για να ενεργοποιηθεί η χρήση αυτού του κωδικού, επιτρέποντας την απομακρυσμένη πρόσβαση στον τοπικό λογαριασμό διαχειριστή.

pageDSRM Credentials

Μόνιμη Παραμονή ACL

Μπορείτε να δώσετε ορισμένα ειδικά δικαιώματα σε έναν χρήστη πάνω σε ορισμένα συγκεκριμένα αντικείμενα του τομέα που θα επιτρέψουν στον χρήστη να αναβαθμίσει τα προνόμια στο μέλλον.

pageAbusing Active Directory ACLs/ACEs

Περιγραφείς Ασφάλειας

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

pageSecurity Descriptors

Σκελετός Κλειδιού

Τροποποιήστε το LSASS στη μνήμη για να δημιουργήσετε ένα καθολικό κωδικό πρόσβασης, παρέχοντας πρόσβαση σε όλους τους λογαριασμούς του τομέα.

pageSkeleton Key

Προσαρμοσμένο SSP

Μάθετε τι είναι ένα SSP (Security Support Provider) εδώ. Μπορείτε να δημιουργήσετε το δικό σας SSP για να καταγράψετε σε καθαρό κείμενο τα διαπιστευτήρια που χρησιμοποι

Άλλες διαφορές στις εμπιστευτικές σχέσεις

  • Μια εμπιστευτική σχέση μπορεί επίσης να είναι μεταβατική (Α εμπιστεύεται Β, Β εμπιστεύεται Γ, τότε Α εμπιστεύεται Γ) ή μη μεταβατική.

  • Μια εμπιστευτική σχέση μπορεί να οριστεί ως διπλής κατεύθυνσης εμπιστοσύνη (και οι δύο εμπιστεύονται ο ένας τον άλλο) ή ως μονής κατεύθυνσης εμπιστοσύνη (μόνο ένας από αυτούς εμπιστεύεται τον άλλο).

Διαδρομή Επίθεσης

  1. Απαριθμήστε τις εμπιστευτικές σχέσεις

  2. Ελέγξτε αν οποιοδήποτε ασφαλές υποκείμενο (χρήστης/ομάδα/υπολογιστής) έχει πρόσβαση σε πόρους του άλλου τομέα, ίσως μέσω καταχωρήσεων ACE ή είναι μέλος ομάδων του άλλου τομέα. Αναζητήστε σχέσεις ανάμεσα σε τομέα (η εμπιστοσύνη δημιουργήθηκε πιθανότατα γι' αυτό).

  3. Σε αυτήν την περίπτωση, μια εναλλακτική λύση θα μπορούσε να είναι η επίθεση kerberoast.

  4. Παραβίαση των λογαριασμών που μπορούν να μετακινηθούν μέσω των τομέων.

Οι επιτιθέμενοι μπορούν να έχουν πρόσβαση σε πόρους σε άλλο τομέα μέσω τριών κύριων μηχανισμών:

  • Μέληση σε Τοπικές Ομάδες: Τα υποκείμενα μπορεί να προστεθούν σε τοπικές ομάδες σε μηχανήματα, όπως η ομάδα "Διαχειριστές" σε έναν διακομιστή, παρέχοντάς τους σημαντικό έλεγχο πάνω σε αυτό το μηχάνημα.

  • Μέληση σε Ομάδες Ξένου Τομέα: Τα υποκείμενα μπορεί επίσης να είναι μέλη ομάδων εντός του ξένου τομέα. Ωστόσο, η αποτελεσματικότητα αυτής της μεθόδου εξαρτάται από τη φύση της εμπιστοσύνης και την έκταση της ομάδας.

  • Λίστες Ελέγχου Πρόσβασης (ACLs): Τα υποκείμενα μπορεί να καθορίζονται σε μια ACL, ιδιαίτερα ως οντότητες σε ACEs εντός μιας DACL, παρέχοντάς τους πρόσβαση σε συγκεκριμένους πόρους. Για όσους θέλουν να εμβαθύνουν στη μηχανική των ACLs, DACLs και ACEs, το άρθρο με τίτλο "An ACE Up The Sleeve" είναι ένα ανεκτίμητο εργαλείο.

Ανέβασμα δικαιωμάτων δάσους από παιδί σε γονέα

Get-DomainTrust

SourceName      : sub.domain.local    --> current domain
TargetName      : domain.local        --> foreign domain
TrustType       : WINDOWS_ACTIVE_DIRECTORY
TrustAttributes : WITHIN_FOREST       --> WITHIN_FOREST: Both in the same forest
TrustDirection  : Bidirectional       --> Trust direction (2ways in this case)
WhenCreated     : 2/19/2021 1:28:00 PM
WhenChanged     : 2/19/2021 1:28:00 PM

Υπάρχουν 2 αξιόπιστα κλειδιά, ένα για Παιδί --> Γονέας και ένα άλλο για Γονέας --> Παιδί. Μπορείτε να βρείτε αυτό που χρησιμοποιείται από τον τρέχοντα τομέα με την εντολή:

Invoke-Mimikatz -Command '"lsadump::trust /patch"' -ComputerName dc.my.domain.local
Invoke-Mimikatz -Command '"lsadump::dcsync /user:dcorp\mcorp$"'

Εισαγωγή SID-History

Αναβαθμίστε ως διαχειριστής επιχειρησιακού επιπέδου στο παιδικό/γονικό τομέα καταχρώντας την εμπιστοσύνη με την εισαγωγή SID-History:

pageSID-History Injection

Εκμεταλλευτείτε το εγγράψιμο Configuration NC

Η κατανόηση του πώς μπορεί να εκμεταλλευτεί το Configuration Naming Context (NC) είναι κρίσιμη. Το Configuration NC λειτουργεί ως κεντρική αποθήκη για δεδομένα διαμόρφωσης σε ένα δάσος στο περιβάλλον του Active Directory (AD). Αυτά τα δεδομένα αντιγράφονται σε κάθε Domain Controller (DC) εντός του δάσους, με τα εγγράψιμα DC να διατηρούν ένα εγγράψιμο αντίγραφο του Configuration NC. Για να εκμεταλλευτεί αυτό, κάποιος πρέπει να έχει δικαιώματα SYSTEM σε ένα DC, προτιμητέο ένα παιδικό DC.

Σύνδεση GPO στον κεντρικό τοποθεσία του ριζικού DC

Ο περιέκτης Sites του Configuration NC περιλαμβάνει πληροφορίες για όλους τους υπολογιστές που έχουν ενταχθεί στον τομέα στο πλαίσιο του AD δάσους. Χειριζόμενοι με δικαιώματα SYSTEM σε οποιονδήποτε DC, οι επιτιθέμενοι μπορούν να συνδέσουν GPO στις τοποθεσίες του ριζικού DC. Αυτή η ενέργεια δυνητικά απειλεί τον ριζικό τομέα με την παραπλάνηση των πολιτικών που εφαρμόζονται σε αυτές τις τοποθεσίες.

Για λεπτομερείς πληροφορίες, μπορείτε να εξερευνήσετε την έρευνα για την Παράκαμψη του Φιλτραρίσματος SID.

Παραβίαση οποιουδήποτε gMSA στο δάσος

Ένα διάνυσμα επίθεσης περιλαμβάνει την επίθεση σε προνομιούχα gMSA εντός του τομέα. Ο κλειδί ρίζας KDS, το οποίο είναι απαραίτητο για τον υπολογισμό των κωδικών πρόσβασης των gMSA, αποθηκεύεται εντός του Configuration NC. Με δικαιώματα SYSTEM σε οποιονδήποτε DC, είναι δυνατή η πρόσβαση στο κλειδί ρίζας KDS και ο υπολογισμός των κωδικών πρόσβασης για οποιοδήποτε gMSA σε όλο το δάσος.

Λεπτομερής ανάλυση μπορεί να βρεθεί στη συζήτηση για τις Επιθέσεις Εμπιστοσύνης Golden gMSA.

Επίθεση αλλαγής σχήματος

Αυτή η μέθοδος απαιτεί υπομονή, περιμένοντας τη δημιουργία νέων προνομιούχων αντικειμένων AD. Με δικαιώματα SYSTEM, ένας επιτιθέμενος μπορεί να τροποποιήσει το AD Schema για να χορηγήσει σε οποιονδήποτε χρήστη πλήρη έλεγχο σε όλες τις κλάσεις. Αυτό μπορεί να οδηγήσει σε μη εξουσιοδοτημένη πρόσβαση και έλεγχο σε νεοδημιουργημένα αντικείμενα AD.

Περισσότερες πληροφορίες είναι διαθέσιμες στην ανάλυση για τις Επιθέσεις Εμπιστοσύνης Αλλαγής Σχήματος.

Από DA σε EA με το ADCS ESC5

Η ευπάθεια ADCS ESC5 στοχεύει στον έλεγχο των αντικειμένων Δημόσιας Υποδομής Κλειδιών (PKI) για τη δημιουργία ενός προτύπου πιστοποιητικού που επιτρέπει την πιστοποίηση ως οποιονδήποτε χρήστη εντός του δάσους. Καθώς τα αντικείμενα PKI βρίσκονται στο Configuration NC, η παραβίαση ενός εγγράψιμου παιδικού DC επιτρέπει την εκτέλεση επιθέσεων ESC5.

Περισσότερες λεπτομέρειες για αυτό μπορούν να βρεθούν στο Από DA σε EA με το ESC5. Σε περιπτώσεις που λείπει το ADCS, ο επιτιθέμενος έχει τη δυνατότητα να δημιουργήσει τα απαραίτητα στοιχεία, όπως συζητήθηκε στο Αναβάθμιση από Child Domain Admins σε Enterprise Admins.

Εξωτερικός τομέας δάσους - Μονόδρομος (εισερχόμενος) ή διπλής κατεύθυνσης

Get-DomainTrust
SourceName      : a.domain.local   --> Current domain
TargetName      : domain.external  --> Destination domain
TrustType       : WINDOWS-ACTIVE_DIRECTORY
TrustAttributes :
TrustDirection  : Inbound          --> Inboud trust
WhenCreated     : 2/19/2021 10:50:56 PM
WhenChanged     : 2/19/2021 10:50:56 PM

Σε αυτό το σενάριο, το τομέας σας εμπιστεύεται από έναν εξωτερικό τομέα, παρέχοντάς σας απροσδιόριστα δικαιώματα πάνω του. Θα πρέπει να βρείτε ποιοι πρωταρχικοί του τομέα έχουν πρόσβαση στον εξωτερικό τομέα και στη συνέχεια να προσπαθήσετε να το εκμεταλλευτείτε:

pageExternal Forest Domain - OneWay (Inbound) or bidirectional

Εξωτερικός Δασικός Τομέας - Μονόδρομος (Εξερχόμενος)

Get-DomainTrust -Domain current.local

SourceName      : current.local   --> Current domain
TargetName      : external.local  --> Destination domain
TrustType       : WINDOWS_ACTIVE_DIRECTORY
TrustAttributes : FOREST_TRANSITIVE
TrustDirection  : Outbound        --> Outbound trust
WhenCreated     : 2/19/2021 10:15:24 PM
WhenChanged     : 2/19/2021 10:15:24 PM

Σε αυτό το σενάριο, το domain σας εμπιστεύεται ορισμένα προνόμια σε έναν χρήστη από ένα διαφορετικό domain.

Ωστόσο, όταν ένα domain εμπιστεύεται το εμπιστευόμενο domain, το εμπιστευόμενο domain δημιουργεί έναν χρήστη με ένα προβλέψιμο όνομα που χρησιμοποιεί ως κωδικό πρόσβασης τον εμπιστευόμενο κωδικό. Αυτό σημαίνει ότι είναι δυνατόν να αποκτηθεί πρόσβαση σε έναν χρήστη από το εμπιστεύον domain για να μπει στο εμπιστευόμενο και να το απαριθμήσει και να προσπαθήσει να αναβαθμίσει περισσότερα προνόμια:

pageExternal Forest Domain - One-Way (Outbound)

Ένας άλλος τρόπος να διακινδυνεύσετε το εμπιστευόμενο domain είναι να βρείτε ένα SQL trusted link που έχει δημιουργηθεί στην αντίθετη κατεύθυνση της εμπιστοσύνης του domain (που δεν είναι πολύ συνηθισμένο).

Ένας άλλος τρόπος να διακινδυνεύσετε το εμπιστευόμενο domain είναι να περιμένετε σε έναν υπολογιστή όπου ένας χρήστης από το εμπιστευόμενο domain μπορεί να έχει πρόσβαση για να συνδεθεί μέσω RDP. Στη συνέχεια, ο επιτιθέμενος μπορεί να εισαγάγει κώδικα στη διαδικασία της συνεδρίας RDP και να αποκτήσει πρόσβαση στο αρχικό domain του θύματος από εκεί. Επιπλέον, αν ο θύμα έχει τοποθετήσει τον σκληρό του δίσκο, από τη διαδικασία της συνεδρίας RDP ο επιτιθέμενος μπορεί να αποθηκεύσει παρασκηνιακές πόρτες στον φάκελο εκκίνησης του σκληρού δίσκου. Αυτή η τεχνική ονομάζεται RDPInception.

pageRDP Sessions Abuse

Περιορισμός κατάχρησης εμπιστοσύνης domain

Φιλτράρισμα SID:

  • Ο κίνδυνος επιθέσεων που εκμεταλλεύονται το χαρακτηριστικό ιστορικού SID σε εμπιστοσύνη μεταξύ δασών αντιμετωπίζεται με το φιλτράρισμα SID, το οποίο είναι ενεργοποιημένο από προεπιλογή σε όλες τις εμπιστοσύνες μεταξύ δασών. Αυτό βασίζεται στην υπόθεση ότι οι εμπιστοσύνες εντός του ίδιου δάσους είναι ασφαλείς, λαμβάνοντας υπόψη το δάσος, αντί για το domain, ως το όριο ασφαλείας σύμφωνα με τη θέση της Microsoft.

  • Ωστόσο, υπάρχει ένα πρόβλημα: Το φιλτράρισμα SID μπορεί να διακόψει εφαρμογές και πρόσβαση χρηστών, με αποτέλεσμα να απενεργοποιείται περιοδικά.

Εκλεκτή Πιστοποίηση:

  • Για εμπιστοσύνες μεταξύ δασών, η χρήση της Εκλεκτής Πιστοποίησης εξασφαλίζει ότι οι χρήστες από τα δύο δάση δεν πιστοποιούνται αυτόματα. Αντ' αυτού, απαιτούνται ρητές άδειες για τους χρήστες για να έχουν πρόσβαση σε domain και διακομιστές εντός του εμπιστευόμενου domain ή δάσους.

  • Σημαντικό είναι να σημειωθεί ότι αυτά τα μέτρα δεν προστατεύουν από την εκμετάλλευση του εγγράφου ρυθμίσεων Configuration Naming Context (NC) ή από επιθέσεις στον λογαριασμό εμπιστοσύνης.

Περισσότερες πληροφορίες για τις εμπιστοσύνες domain στο ired.team.

AD -> Azure & Azure -> AD

Ορισμένες Γενικές Άμυνες

[**Μάθετε περισσότερα για το πώς να προστατεύετε τα διαπιστευ

Last updated