Κατάχρηση Δικαιωμάτων
Reading time: 11 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
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Δικαιώματα
Αν δεν ξέρετε τι είναι τα Windows Access Tokens διαβάστε αυτή τη σελίδα πριν συνεχίσετε:
Ίσως να μπορείτε να αναβαθμίσετε τα δικαιώματα σας καταχρώντας τα δικαιώματα που ήδη έχετε
SeImpersonatePrivilege
Αυτό είναι το δικαίωμα που κατέχει οποιαδήποτε διαδικασία που επιτρέπει την προσωποποίηση (αλλά όχι τη δημιουργία) οποιουδήποτε δικαιώματος, εφόσον μπορεί να αποκτηθεί ένα handle σε αυτό. Ένα προνομιακό δικαίωμα μπορεί να αποκτηθεί από μια υπηρεσία Windows (DCOM) προκαλώντας την να εκτελέσει NTLM authentication κατά ενός exploit, επιτρέποντας στη συνέχεια την εκτέλεση μιας διαδικασίας με δικαιώματα SYSTEM. Αυτή η ευπάθεια μπορεί να εκμεταλλευτεί χρησιμοποιώντας διάφορα εργαλεία, όπως juicy-potato, RogueWinRM (το οποίο απαιτεί να είναι απενεργοποιημένο το winrm), SweetPotato, και PrintSpoofer.
RoguePotato, PrintSpoofer, SharpEfsPotato, GodPotato
SeAssignPrimaryPrivilege
Είναι πολύ παρόμοιο με το SeImpersonatePrivilege, θα χρησιμοποιήσει την ίδια μέθοδο για να αποκτήσει ένα προνομιακό δικαίωμα.
Στη συνέχεια, αυτό το δικαίωμα επιτρέπει να αναθέσει ένα πρωτεύον δικαίωμα σε μια νέα/ανασταλμένη διαδικασία. Με το προνομιακό δικαίωμα προσωποποίησης μπορείτε να παράγετε ένα πρωτεύον δικαίωμα (DuplicateTokenEx).
Με το δικαίωμα, μπορείτε να δημιουργήσετε μια νέα διαδικασία με 'CreateProcessAsUser' ή να δημιουργήσετε μια διαδικασία ανασταλμένη και να ορίσετε το δικαίωμα (γενικά, δεν μπορείτε να τροποποιήσετε το πρωτεύον δικαίωμα μιας εκτελούμενης διαδικασίας).
SeTcbPrivilege
Αν έχετε ενεργοποιήσει αυτό το δικαίωμα μπορείτε να χρησιμοποιήσετε KERB_S4U_LOGON για να αποκτήσετε ένα δικαίωμα προσωποποίησης για οποιονδήποτε άλλο χρήστη χωρίς να γνωρίζετε τα διαπιστευτήρια, να προσθέσετε μια αυθαίρετη ομάδα (admins) στο δικαίωμα, να ορίσετε το επίπεδο ακεραιότητας του δικαιώματος σε "medium", και να αναθέσετε αυτό το δικαίωμα στο τρέχον νήμα (SetThreadToken).
SeBackupPrivilege
Το σύστημα προκαλεί να παρέχει πλήρη πρόσβαση ανάγνωσης σε οποιοδήποτε αρχείο (περιορισμένο σε λειτουργίες ανάγνωσης) μέσω αυτού του δικαιώματος. Χρησιμοποιείται για ανάγνωση των κατακερματισμών κωδικών πρόσβασης των τοπικών λογαριασμών Διαχειριστή από τη μητρώο, μετά την οποία, εργαλεία όπως "psexec" ή "wmiexec" μπορούν να χρησιμοποιηθούν με τον κατακερματισμό (τεχνική Pass-the-Hash). Ωστόσο, αυτή η τεχνική αποτυγχάνει υπό δύο συνθήκες: όταν ο λογαριασμός τοπικού διαχειριστή είναι απενεργοποιημένος, ή όταν υπάρχει πολιτική που αφαιρεί τα διοικητικά δικαιώματα από τους τοπικούς διαχειριστές που συνδέονται απομακρυσμένα.
Μπορείτε να καταχραστείτε αυτό το δικαίωμα με:
- https://github.com/Hackplayers/PsCabesha-tools/blob/master/Privesc/Acl-FullControl.ps1
- https://github.com/giuliano108/SeBackupPrivilege/tree/master/SeBackupPrivilegeCmdLets/bin/Debug
- ακολουθώντας τον IppSec στο https://www.youtube.com/watch?v=IfCysW0Od8w&t=2610&ab_channel=IppSec
- Ή όπως εξηγείται στην ενότητα αναβάθμιση δικαιωμάτων με Backup Operators του:
SeRestorePrivilege
Η άδεια για πρόσβαση εγγραφής σε οποιοδήποτε αρχείο συστήματος, ανεξαρτήτως της Λίστας Ελέγχου Πρόσβασης (ACL) του αρχείου, παρέχεται από αυτό το δικαίωμα. Ανοίγει πολλές δυνατότητες για αναβάθμιση, συμπεριλαμβανομένης της δυνατότητας τροποποίησης υπηρεσιών, εκτέλεσης DLL Hijacking, και ρύθμισης debuggers μέσω των Επιλογών Εκτέλεσης Αρχείων Εικόνας μεταξύ άλλων τεχνικών.
SeCreateTokenPrivilege
Το SeCreateTokenPrivilege είναι μια ισχυρή άδεια, ιδιαίτερα χρήσιμη όταν ένας χρήστης έχει τη δυνατότητα να προσωποποιεί δικαιώματα, αλλά και στην απουσία του SeImpersonatePrivilege. Αυτή η ικανότητα εξαρτάται από την ικανότητα να προσωποποιεί ένα δικαίωμα που αντιπροσωπεύει τον ίδιο χρήστη και του οποίου το επίπεδο ακεραιότητας δεν υπερβαίνει αυτό της τρέχουσας διαδικασίας.
Κύρια Σημεία:
- Προσωποποίηση χωρίς SeImpersonatePrivilege: Είναι δυνατόν να εκμεταλλευτείτε το SeCreateTokenPrivilege για EoP προσωποποιώντας δικαιώματα υπό συγκεκριμένες συνθήκες.
- Συνθήκες για Προσωποποίηση Δικαιωμάτων: Η επιτυχής προσωποποίηση απαιτεί το στοχευμένο δικαίωμα να ανήκει στον ίδιο χρήστη και να έχει επίπεδο ακεραιότητας που είναι μικρότερο ή ίσο με το επίπεδο ακεραιότητας της διαδικασίας που προσπαθεί να προσωποποιήσει.
- Δημιουργία και Τροποποίηση Δικαιωμάτων Προσωποποίησης: Οι χρήστες μπορούν να δημιουργήσουν ένα δικαίωμα προσωποποίησης και να το ενισχύσουν προσθέτοντας ένα SID (Security Identifier) προνομιακής ομάδας.
SeLoadDriverPrivilege
Αυτό το δικαίωμα επιτρέπει να φορτώνει και να ξεφορτώνει οδηγούς συσκευών με τη δημιουργία μιας καταχώρησης μητρώου με συγκεκριμένες τιμές για το ImagePath
και Type
. Δεδομένου ότι η άμεση πρόσβαση εγγραφής στο HKLM
(HKEY_LOCAL_MACHINE) είναι περιορισμένη, πρέπει να χρησιμοποιηθεί το HKCU
(HKEY_CURRENT_USER). Ωστόσο, για να γίνει το HKCU
αναγνωρίσιμο από τον πυρήνα για τη ρύθμιση του οδηγού, πρέπει να ακολουθηθεί μια συγκεκριμένη διαδρομή.
Αυτή η διαδρομή είναι \Registry\User\<RID>\System\CurrentControlSet\Services\DriverName
, όπου <RID>
είναι ο Σχετικός Αναγνωριστής του τρέχοντος χρήστη. Μέσα στο HKCU
, αυτή η ολόκληρη διαδρομή πρέπει να δημιουργηθεί, και δύο τιμές πρέπει να οριστούν:
ImagePath
, που είναι η διαδρομή προς το δυαδικό αρχείο που θα εκτελεστείType
, με τιμήSERVICE_KERNEL_DRIVER
(0x00000001
).
Βήματα που πρέπει να ακολουθηθούν:
- Πρόσβαση στο
HKCU
αντί γιαHKLM
λόγω περιορισμένης πρόσβασης εγγραφής. - Δημιουργία της διαδρομής
\Registry\User\<RID>\System\CurrentControlSet\Services\DriverName
εντός τουHKCU
, όπου<RID>
αντιπροσωπεύει τον Σχετικό Αναγνωριστή του τρέχοντος χρήστη. - Ορισμός του
ImagePath
στη διαδρομή εκτέλεσης του δυαδικού αρχείου. - Ανάθεση του
Type
ωςSERVICE_KERNEL_DRIVER
(0x00000001
).
# Example Python code to set the registry values
import winreg as reg
# Define the path and values
path = r'Software\YourPath\System\CurrentControlSet\Services\DriverName' # Adjust 'YourPath' as needed
key = reg.OpenKey(reg.HKEY_CURRENT_USER, path, 0, reg.KEY_WRITE)
reg.SetValueEx(key, "ImagePath", 0, reg.REG_SZ, "path_to_binary")
reg.SetValueEx(key, "Type", 0, reg.REG_DWORD, 0x00000001)
reg.CloseKey(key)
Περισσότεροι τρόποι για να καταχραστεί αυτή η προνομία στο https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges#seloaddriverprivilege
SeTakeOwnershipPrivilege
Αυτό είναι παρόμοιο με το SeRestorePrivilege. Η κύρια λειτουργία του επιτρέπει σε μια διαδικασία να αναλάβει την ιδιοκτησία ενός αντικειμένου, παρακάμπτοντας την απαίτηση για ρητή διακριτική πρόσβαση μέσω της παροχής δικαιωμάτων πρόσβασης WRITE_OWNER. Η διαδικασία περιλαμβάνει πρώτα την εξασφάλιση της ιδιοκτησίας του προοριζόμενου κλειδιού μητρώου για σκοπούς εγγραφής, και στη συνέχεια την τροποποίηση του DACL για να επιτραπούν οι λειτουργίες εγγραφής.
takeown /f 'C:\some\file.txt' #Now the file is owned by you
icacls 'C:\some\file.txt' /grant <your_username>:F #Now you have full access
# Use this with files that might contain credentials such as
%WINDIR%\repair\sam
%WINDIR%\repair\system
%WINDIR%\repair\software
%WINDIR%\repair\security
%WINDIR%\system32\config\security.sav
%WINDIR%\system32\config\software.sav
%WINDIR%\system32\config\system.sav
%WINDIR%\system32\config\SecEvent.Evt
%WINDIR%\system32\config\default.sav
c:\inetpub\wwwwroot\web.config
SeDebugPrivilege
Αυτό το προνόμιο επιτρέπει την αποσφαλμάτωση άλλων διεργασιών, συμπεριλαμβανομένης της ανάγνωσης και εγγραφής στη μνήμη. Διάφορες στρατηγικές για την ένεση μνήμης, ικανές να παρακάμψουν τις περισσότερες λύσεις antivirus και πρόληψης εισβολών φιλοξενίας, μπορούν να χρησιμοποιηθούν με αυτό το προνόμιο.
Dump memory
Μπορείτε να χρησιμοποιήσετε το ProcDump από το SysInternals Suite για να καταγράψετε τη μνήμη μιας διεργασίας. Συγκεκριμένα, αυτό μπορεί να εφαρμοστεί στη διεργασία Local Security Authority Subsystem Service (LSASS), η οποία είναι υπεύθυνη για την αποθήκευση των διαπιστευτηρίων χρηστών μόλις ένας χρήστης έχει συνδεθεί επιτυχώς σε ένα σύστημα.
Μπορείτε στη συνέχεια να φορτώσετε αυτό το dump στο mimikatz για να αποκτήσετε κωδικούς πρόσβασης:
mimikatz.exe
mimikatz # log
mimikatz # sekurlsa::minidump lsass.dmp
mimikatz # sekurlsa::logonpasswords
RCE
Αν θέλετε να αποκτήσετε ένα NT SYSTEM
shell μπορείτε να χρησιμοποιήσετε:
# Get the PID of a process running as NT SYSTEM
import-module psgetsys.ps1; [MyProcess]::CreateProcessFromParent(<system_pid>,<command_to_execute>)
Έλεγχος δικαιωμάτων
whoami /priv
Τα tokens που εμφανίζονται ως Απενεργοποιημένα μπορούν να ενεργοποιηθούν, μπορείτε πραγματικά να εκμεταλλευτείτε τα Ενεργοποιημένα και Απενεργοποιημένα tokens.
Ενεργοποίηση Όλων των tokens
Αν έχετε tokens που είναι απενεργοποιημένα, μπορείτε να χρησιμοποιήσετε το σενάριο EnableAllTokenPrivs.ps1 για να ενεργοποιήσετε όλα τα tokens:
.\EnableAllTokenPrivs.ps1
whoami /priv
Ή το script που είναι ενσωματωμένο σε αυτήν την ανάρτηση.
Πίνακας
Πλήρης οδηγός προνομίων token στο https://github.com/gtworek/Priv2Admin, η παρακάτω σύνοψη θα αναφέρει μόνο άμεσους τρόπους εκμετάλλευσης του προνομίου για την απόκτηση μιας διαχειριστικής συνεδρίας ή την ανάγνωση ευαίσθητων αρχείων.
Προνόμιο | Επιπτώσεις | Εργαλείο | Διαδρομή εκτέλεσης | Σημειώσεις |
---|---|---|---|---|
SeAssignPrimaryToken | Διαχειριστής | 3rd party tool | "Θα επέτρεπε σε έναν χρήστη να μιμηθεί tokens και να αποκτήσει δικαιώματα στο nt system χρησιμοποιώντας εργαλεία όπως το potato.exe, rottenpotato.exe και juicypotato.exe" | Ευχαριστώ τον Aurélien Chalot για την ενημέρωση. Θα προσπαθήσω να το ξαναδιατυπώσω σε κάτι πιο συνταγές σύντομα. |
SeBackup | Απειλή | Ενσωματωμένες εντολές | Διαβάστε ευαίσθητα αρχεία με robocopy /b | - Μπορεί να είναι πιο ενδιαφέρον αν μπορείτε να διαβάσετε το %WINDIR%\MEMORY.DMP |
SeCreateToken | Διαχειριστής | 3rd party tool | Δημιουργία αυθαίρετου token που περιλαμβάνει δικαιώματα τοπικού διαχειριστή με NtCreateToken . | |
SeDebug | Διαχειριστής | PowerShell | Διπλασιάστε το token του lsass.exe . | Το script μπορεί να βρεθεί στο FuzzySecurity |
SeLoadDriver | Διαχειριστής | 3rd party tool | 1. Φορτώστε ελαττωματικό kernel driver όπως το | 1. Η ευπάθεια |
SeRestore | Διαχειριστής | PowerShell | 1. Εκκινήστε το PowerShell/ISE με το προνόμιο SeRestore παρόν. | Η επίθεση μπορεί να ανιχνευθεί από κάποιο λογισμικό AV. Η εναλλακτική μέθοδος βασίζεται στην αντικατάσταση των δυαδικών αρχείων υπηρεσίας που αποθηκεύονται στο "Program Files" χρησιμοποιώντας το ίδιο προνόμιο |
SeTakeOwnership | Διαχειριστής | Ενσωματωμένες εντολές | 1. | Η επίθεση μπορεί να ανιχνευθεί από κάποιο λογισμικό AV. Η εναλλακτική μέθοδος βασίζεται στην αντικατάσταση των δυαδικών αρχείων υπηρεσίας που αποθηκεύονται στο "Program Files" χρησιμοποιώντας το ίδιο προνόμιο. |
SeTcb | Διαχειριστής | 3rd party tool | Manipulate tokens to have local admin rights included. May require SeImpersonate. To be verified. |
Αναφορά
- Ρίξτε μια ματιά σε αυτόν τον πίνακα που ορίζει τα Windows tokens: https://github.com/gtworek/Priv2Admin
- Ρίξτε μια ματιά σε αυτήν την εργασία σχετικά με την εκμετάλλευση με tokens.
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
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.