Resource-based Constrained Delegation
Βασικές αρχές της περιορισμένης ανάθεσης βάσει πόρων
Αυτό είναι παρόμοιο με τη βασική Περιορισμένη Ανάθεση αλλά αντί να δίνει δικαιώματα σε ένα αντικείμενο να υποκαταστήσει οποιονδήποτε χρήστη έναντι ενός υπηρεσίας. Η περιορισμένη ανάθεση βάσει πόρων ορίζει στο αντικείμενο ποιος μπορεί να υποκαταστήσει οποιονδήποτε χρήστη έναντι αυτού.
Σε αυτήν την περίπτωση, το περιορισμένο αντικείμενο θα έχει ένα χαρακτηριστικό που ονομάζεται msDS-AllowedToActOnBehalfOfOtherIdentity με το όνομα του χρήστη που μπορεί να υποκαταστήσει οποιονδήποτε άλλο χρήστη έναντι αυτού.
Μια άλλη σημαντική διαφορά από αυτήν την Περιορισμένη Ανάθεση στις άλλες αναθέσεις είναι ότι οποιοσδήποτε χρήστης με δικαιώματα εγγραφής σε ένα λογαριασμό μηχανής (GenericAll/GenericWrite/WriteDacl/WriteProperty κλπ) μπορεί να ορίσει το msDS-AllowedToActOnBehalfOfOtherIdentity (Στις άλλες μορφές Ανάθεσης χρειάζονταν δικαιώματα διαχειριστή του τομέα).
Νέες Έννοιες
Πίσω στην Περιορισμένη Ανάθεση είχε αναφερθεί ότι η σημαία TrustedToAuthForDelegation
μέσα στην τιμή userAccountControl του χρήστη απαιτείται για να πραγματοποιηθεί ένα S4U2Self. Αλλά αυτό δεν είναι εντελώς αλήθεια.
Η πραγματικότητα είναι ότι ακόμη και χωρίς αυτήν την τιμή, μπορείτε να πραγματοποιήσετε ένα S4U2Self εναντίον οποιουδήποτε χρήστη αν είστε ένα service (έχετε ένα SPN) αλλά, αν έχετε το TrustedToAuthForDelegation
το επιστρεφόμενο TGS θα είναι Forwardable και αν δεν έχετε αυτήν τη σημαία το επιστρεφόμενο TGS δεν θα είναι Forwardable.
Ωστόσο, αν το TGS που χρησιμοποιείται στο S4U2Proxy ΔΕΝ είναι Forwardable προσπαθώντας να εκμεταλλευτείτε μια βασική Περιορισμένη Ανάθεση δεν θα λειτουργήσει. Αλλά αν προσπαθείτε να εκμεταλλευτείτε μια Περιορισμένη Ανάθεση βάσει πόρων, θα λειτουργήσει (αυτό δεν είναι μια ευπάθεια, είναι μια λειτουργία, φαίνεται).
Δομή επίθεσης
Αν έχετε ισοδύναμα δικαιώματα εγγραφής σε ένα λογαριασμό Υπολογιστή μπορείτε να αποκτήσετε προνομιακή πρόσβαση σε αυτό τον υπολογιστή.
Υποθέστε ότι ο επιτιθέμενος έχει ήδη ισοδύναμα δικαιώματα εγγραφής στον υπολογιστή θύματος.
Ο επιτιθέμενος διαρρήγνει ένα λογαριασμό που έχει ένα SPN ή δημιουργεί έναν (“Υπηρεσία Α”). Σημειώστε ότι οποιοσδήποτε Διαχειριστής Χρήστης χωρίς κανένα άλλο ειδικό προνόμιο μπορεί να δημιουργήσει μέχρι 10 αντικείμενα Υπολογιστή (MachineAccountQuota) και να τους ορίσει ένα SPN. Έτσι ο επιτιθέμενος μπορεί απλά να δημιουργήσει ένα αντικείμενο Υπολογιστή και να ορίσει ένα SPN.
Ο επιτιθέμενος καταχράζεται το δικαίωμα ΕΓΓΡΑΦΗΣ του στον υπολογιστή θύματος (Υπηρεσία Β) για να ρυθμίσει περιορισμένη ανάθεση βάσει πόρων για να επιτρέψει στην Υπηρεσία Α να υποκαταστήσει οποιονδήποτε χρήστη έναντι αυτού του υπολογιστή θύματος (Υπηρεσία Β).
Ο επιτιθέμενος χρησιμοποιεί το Rubeus για να πραγματοποιήσει μια πλήρη επίθεση S4U (S4U2Self και S4U2Proxy) από την Υπηρεσία Α στην Υπηρεσία Β για έναν χρήστη με προνομιακή πρόσβαση στην Υπηρεσία Β.
S4U2Self (από τον λογαριασμό με τον SPN που διαρράγηκε/δημιουργήθηκε): Ζητήστε ένα TGS του Διαχειριστή προς εμένα (Μη Forwardable).
S4U2Proxy: Χρησιμοποιήστε το μη Forwardable TGS του προηγούμενου βήματος για να ζητήσετε ένα TGS από τον Διαχειριστή προς τον υπολογιστή θύμα.
Ακόμη κι αν χρησιμοποιείτε ένα μη Forwardable TGS, καθώς εκμεταλλεύεστε περιορισμένη ανάθεση βάσει πόρων, θα λειτουργήσει.
Ο επιτιθέμενος μπορεί να περάσει το εισιτήριο και να υποκαταστήσει τον χρήστη για να κερδίσει πρόσβαση στην υπηρεσία Β θύματος.
Για να ελέγξετε το MachineAccountQuota του τομέα μπορείτε να χρησιμοποιήσετε:
Επίθεση
Δημιουργία ενός Αντικειμένου Υπολογιστή
Μπορείτε να δημιουργήσετε ένα αντικείμενο υπολογιστή μέσα στον τομέα χρησιμοποιώντας το powermad:
Διαμόρφωση Περιορισμένης Ανάθεσης με Βάση τον Πόρο
Χρησιμοποιώντας το άρθρωμα PowerShell του Active Directory
Χρησιμοποιώντας το powerview
Εκτέλεση μιας πλήρους επίθεσης S4U
Καταρχάς, δημιουργήσαμε το νέο αντικείμενο Υπολογιστή με τον κωδικό πρόσβασης 123456
, οπότε χρειαζόμαστε το hash του συγκεκριμένου κωδικού:
Αυτό θα εκτυπώσει τις κατακευές RC4 και AES για αυτόν τον λογαριασμό. Τώρα, η επίθεση μπορεί να πραγματοποιηθεί:
Μπορείτε να δημιουργήσετε περισσότερα εισιτήρια απλά ρωτώντας μία φορά χρησιμοποιώντας την παράμετρο /altservice
του Rubeus:
Σημειώστε ότι οι χρήστες έχουν ένα χαρακτηριστικό που ονομάζεται "Δεν μπορεί να ανατεθεί". Αν ένας χρήστης έχει αυτό το χαρακτηριστικό σε True, δεν θα μπορείτε να υποδείξετε την ταυτότητά του. Αυτή η ιδιότητα μπορεί να βρεθεί μέσα στο bloodhound.
Πρόσβαση
Η τελευταία γραμμή εντολής θα εκτελέσει την πλήρη επίθεση S4U και θα ενθυλακώσει το TGS από τον Διαχειριστή στον υπολογιστή-θύμα στην μνήμη. Σε αυτό το παράδειγμα ζητήθηκε ένα TGS για την υπηρεσία CIFS από τον Διαχειριστή, οπότε θα μπορείτε να έχετε πρόσβαση στο C$:
Κατάχρηση διαφορετικών εισιτηρίων υπηρεσιών
Μάθετε για τα διαθέσιμα εισιτήρια υπηρεσιών εδώ.
Σφάλματα Kerberos
KDC_ERR_ETYPE_NOTSUPP
: Αυτό σημαίνει ότι το Kerberos είναι ρυθμισμένο να μη χρησιμοποιεί DES ή RC4 και εσείς παρέχετε μόνο το hash RC4. Παρέχετε στο Rubeus τουλάχιστον το hash AES256 (ή απλά παρέχετε τα hashes rc4, aes128 και aes256). Παράδειγμα:[Rubeus.Program]::MainString("s4u /user:FAKECOMPUTER /aes256:CC648CF0F809EE1AA25C52E963AC0487E87AC32B1F71ACC5304C73BF566268DA /aes128:5FC3D06ED6E8EA2C9BB9CC301EA37AD4 /rc4:EF266C6B963C0BB683941032008AD47F /impersonateuser:Administrator /msdsspn:CIFS/M3DC.M3C.LOCAL /ptt".split())
KRB_AP_ERR_SKEW
: Αυτό σημαίνει ότι ο χρόνος του τρέχοντος υπολογιστή είναι διαφορετικός από αυτόν του DC και το Kerberos δεν λειτουργεί σωστά.preauth_failed
: Αυτό σημαίνει ότι το δεδομένο όνομα χρήστη + hashes δεν λειτουργούν για σύνδεση. Ίσως έχετε ξεχάσει να βάλετε το "$" μέσα στο όνομα χρήστη κατά τη δημιουργία των hashes (.\Rubeus.exe hash /password:123456 /user:FAKECOMPUTER$ /domain:domain.local
)KDC_ERR_BADOPTION
: Αυτό μπορεί να σημαίνει:Ο χρήστης που προσπαθείτε να υποκαταστήσετε δεν μπορεί να έχει πρόσβαση στην επιθυμητή υπηρεσία (επειδή δεν μπορείτε να την υποκαταστήσετε ή διότι δεν έχει αρκετά προνόμια)
Η ζητούμενη υπηρεσία δεν υπάρχει (αν ζητήσετε ένα εισιτήριο για το winrm αλλά το winrm δεν εκτελείται)
Το fakecomputer που δημιουργήθηκε έχει χάσει τα προνόμια του πάνω στο ευάλωτο διακομιστή και πρέπει να τους επαναφέρετε.
Αναφορές
Last updated