hacktricks/windows-hardening/windows-local-privilege-escalation/privilege-escalation-abusing-tokens.md
2024-04-06 18:31:47 +00:00

26 KiB
Raw Blame History

Abusing Tokens

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

Διακριτικά

Αν δεν γνωρίζετε τι είναι τα Διακριτικά Πρόσβασης των Windows διαβάστε αυτή τη σελίδα πριν συνεχίσετε:

{% content-ref url="access-tokens.md" %} access-tokens.md {% endcontent-ref %}

Ίσως να μπορείτε να αναβαθμίσετε τα δικαιώματά σας καταχρώμενοι τα διακριτικά που ήδη έχετε

SeImpersonatePrivilege

Αυτό το δικαίωμα που κατέχεται από οποιαδήποτε διαδικασία επιτρέπει την υποκατάσταση (αλλά όχι τη δημιουργία) οποιουδήποτε διακριτικού, εφόσον μπορεί να ληφθεί μια λαβή γι' αυτό. Ένα προνομιούχο διακριτικό μπορεί να αποκτηθεί από ένα υπηρεσία των Windows (DCOM) προκαλώντας τη να πραγματοποιήσει ελέγχους ταυτότητας NTLM εναντίον ενός εκμεταλλεύσιμου σφάλματος, επιτρέποντας στη συνέχεια την εκτέλεση μιας διαδικασίας με δικαιώματα ΣΥΣΤΗΜΑΤΟΣ. Αυτή η ευπάθεια μπορεί να εκμεταλλευτεί χρησιμοποιώντας διάφορα εργαλεία, όπως το juicy-potato, το RogueWinRM (το οποίο απαιτεί την απενεργοποίηση του winrm), το SweetPotato και το PrintSpoofer.

{% content-ref url="roguepotato-and-printspoofer.md" %} roguepotato-and-printspoofer.md {% endcontent-ref %}

{% content-ref url="juicypotato.md" %} juicypotato.md {% endcontent-ref %}

SeAssignPrimaryPrivilege

Είναι πολύ παρόμοιο με το SeImpersonatePrivilege, θα χρησιμοποιήσει την ίδια μέθοδο για να αποκτήσει ένα προνομιούχο διακριτικό.
Στη συνέχεια, αυτό το δικαίωμα επιτρέπει την ανάθεση ενός πρωτεύοντος διακριτικού σε μια νέα/ανασταλμένη διαδικασία. Με το προνομιούχο διακριτικό υποκατάστασης μπορείτε να παράγετε ένα πρωτεύον διακριτικό (DuplicateTokenEx).
Με το διακριτικό, μπορείτε να δημιουργήσετε μια νέα διαδικασία με το 'CreateProcessAsUser' ή να δημιουργήσετε μια διαδικασία ανασταλμένη και να ορίσετε το διακριτικό (γενικά, δεν μπορείτε να τροποποιήσετε το πρωτεύον διακριτικό μιας εκτελούμενης διαδικασίας).

SeTcbPrivilege

Αν έχετε ενεργοποιήσει αυτό το διακριτικό μπορείτε να χρησιμοποιήσετε το KERB_S4U_LOGON για να λάβετε ένα διακριτικό υποκατάστασης για οποιονδήποτε άλλο χρήστη χωρίς να γνωρίζετε τα διαπιστευτήριά του, προσθέσετε μια αυθαίρετη ομάδα (διαχειριστές) στο διακριτικό, ορίσετε το επίπεδο ακεραιότητας του διακριτικού σε "μεσαίο" και αναθέσετε αυτό το διακριτικό στο τρέχον νήμα (SetThreadToken).

SeBackupPrivilege

Το σύστημα προκαλεί την χορήγηση όλων των δικαιωμάτων ανάγνωσης ελέγχου σε οποιοδήποτε αρχείο (περιορισμένο σε λειτουργίες ανάγνωσης) με αυτό το διακριτικό. Χρησιμοποιείται για την ανάγνωση των κατακερματισμένων κωδικών πρόσβασης των τοπικών λογαριασμών Διαχειριστή από το μητρώο, με αποτέλεσμα να μπορούν να χρησιμοποιηθούν εργαλεία όπως το "psexec" ή το "wmicexec" με τον κατακερματισμένο κωδικό (τεχνική Pass-the-Hash). Ωστόσο, αυτή η τεχνική αποτυγχάνει υπό δύο προϋποθέσεις: όταν ο λογαριασμός τοπικού Διαχειριστή είναι απενεργοποιημένος ή όταν υπάρχει μια πολιτική που αφαιρεί τα διαχειριστικά δικαιώματα από τους τοπικούς Διαχειριστές που συνδέονται απομακρυσμένα.
Μπορείτε να καταχρηστείτε αυτό το διακριτικό με:

{% content-ref url="../active-directory-methodology/privileged-groups-and-token-privileges.md" %} privileged-groups-and-token-privileges.md {% endcontent-ref %}

SeRestorePrivilege

Το δικαίωμα για εγγραφή πρόσβασης σε οποιοδήποτε αρχείο συστήματος, ανεξαρτήτως της λίστας ελέγχου πρόσβασης (ACL) του αρχείου, παρέχεται από αυτό το δικαίωμα. Ανοίγει πολλές δυνατότητες για αναβάθμιση, συμπεριλαμβανομένης της δυνατότητας να τροποποιήσετε υπηρεσίες, να εκτελέσετε DLL Hijacking και να ορίσετε debuggers μέσω των Image File Execution Options μεταξύ διαφόρων άλλων τεχνικών.

SeCreateTokenPrivilege

Το SeCreateTokenPrivilege είναι ένα ισχυρό δικαίωμα, ιδιαίτερα χρήσιμο όταν ένας χρήστης διαθέτει τη δυνατότητα υποκατάστασης διακριτικών, αλλά και σε περίπτωση έλλειψης του SeImpersonatePrivilege. Αυτή η ικανότητα εξαρτάται από τη δυνατότητα υποκατάστασης ενός διακριτικού που αντιπροσωπεύει τον ίδιο χρήστη και του οποίου το επίπεδο ακεραιότητας δεν υπερβαίνει αυτό τη

# 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

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

Dump μνήμης

Μπορείτε να χρησιμοποιήσετε το ProcDump από το SysInternals Suite για να καταγράψετε τη μνήμη μιας διεργασίας. Συγκεκριμένα, αυτό μπορεί να εφαρμοστεί στη διεργασία Local Security Authority Subsystem Service (LSASS), η οποία είναι υπεύθυνη για την αποθήκευση διαπιστευτηρίων χρήστη αφού ένας χρήστης έχει συνδεθεί με επιτυχία σε ένα σύστημα.

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

mimikatz.exe
mimikatz # log
mimikatz # sekurlsa::minidump lsass.dmp
mimikatz # sekurlsa::logonpasswords

RCE

Εάν θέλετε να λάβετε ένα κέλυφος NT SYSTEM μπορείτε να χρησιμοποιήσετε:

# 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, μπορείτε να χρησιμοποιήσετε το script EnableAllTokenPrivs.ps1 για να ενεργοποιήσετε όλα τα tokens:

.\EnableAllTokenPrivs.ps1
whoami /priv

Ή σενάριο ενσωματώνεται σε αυτήν την ανάρτηση.

Πίνακας

Ο πλήρης οδηγός προνομίων δικαιωμάτων στο https://github.com/gtworek/Priv2Admin, η περίληψη παρακάτω θα αναφέρει μόνο τους άμεσους τρόπους εκμετάλλευσης του προνομίου για την απόκτηση μιας συνεδρίας διαχειριστή ή την ανάγνωση ευαίσθητων αρχείων.

Προνόμιο Επίδραση Εργαλείο Διαδρομή εκτέλεσης Σχόλια
SeAssignPrimaryToken Διαχειριστής Εργαλείο τρίτου μέρους "Θα επέτρεπε σε έναν χρήστη να προσομοιώσει διακριτικά τα δικαιώματα και να αναβαθμίσει σε σύστημα nt χρησιμοποιώντας εργαλεία όπως το potato.exe, rottenpotato.exe και juicypotato.exe" Ευχαριστώ Aurélien Chalot για την ενημέρωση. Θα προσπαθήσω να το επαναδιατυπώσω σε κάτι πιο σαν συνταγή σύντομα.
SeBackup Απειλή Εντολές ενσωματωμένες Διαβάστε ευαίσθητα αρχεία με robocopy /b

- Μπορεί να είναι πιο ενδιαφέρον αν μπορείτε να διαβάσετε το %WINDIR%\MEMORY.DMP

- Το SeBackupPrivilege (και το robocopy) δεν είναι χρήσιμο όταν πρόκειται για ανοιχτά αρχεία.

- Το Robocopy απαιτεί τόσο το SeBackup όσο και το SeRestore για να λειτουργήσει με την παράμετρο /b.

SeCreateToken Διαχειριστής Εργαλείο τρίτου μέρους Δημιουργία αυθαίρετου διακριτικού συμβόλου συμπεριλαμβανομένων των τοπικών δικαιωμάτων διαχειριστή με το NtCreateToken.
SeDebug Διαχειριστής PowerShell Διπλασιάστε το σύμβολο lsass.exe. Το σενάριο βρίσκεται στο FuzzySecurity
SeLoadDriver Διαχειριστής Εργαλείο τρίτου μέρους

1. Φόρτωση ελαττωματικού πυρήνα οδηγού όπως το szkg64.sys
2. Εκμεταλλευτείτε την ευπάθεια του οδηγού

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

1. Η ευπάθεια του szkg64 καταχωρίζεται ως CVE-2018-15732
2. Ο κώδικας εκμετάλλευσης του szkg64 δημιουργήθηκε από τον Parvez Anwar

SeRestore Διαχειριστής PowerShell

1. Εκκίνηση του PowerShell/ISE με το προνόμιο SeRestore παρόν.
2. Ενεργοποίηση του προνομίου με το Enable-SeRestorePrivilege).
3. Μετονομασία του utilman.exe σε utilman.old
4. Μετονομασία του cmd.exe σε utilman.exe
5. Κλείδωμα της κονσόλας και πάτημα Win+U

Η επίθεση μπορεί να ανιχνευθεί από ορισμένο λογισμικό AV.

Η εναλλακτική μέθοδος βασίζεται στην αντικατάσταση των δυαδικών αρχείων υπηρεσιών που αποθηκεύονται στο "Αρχεία Προγράμματα" χρησιμοποιώντας το ίδιο προνόμιο

SeTakeOwnership Διαχειριστής Εντολές ενσωματωμένες

1. takeown.exe /f "%windir%\system32"
2. icalcs.exe "%windir%\system32" /grant "%username%":F
3. Μετονομασία του cmd.exe σε utilman.exe
4. Κλείδωμα της κονσόλας και πάτημα Win+U

Η επίθεση μπορεί να ανιχνευθεί από ορισμένο λογισμικό AV.

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

SeTcb Διαχειριστής Εργαλείο τρίτου μέρους

Διαχειριστείτε τα σύμβολα για να περιλαμβάνουν τα δικαιώματα τοπικού διαχειριστή. Μπορεί να απαιτηθεί το SeImpersonate.

Να επαληθευτεί.

Αναφορά

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