.. | ||
README.md |
Ausnutzung von Tokens
Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!
- Arbeiten Sie in einem Cybersicherheitsunternehmen? Möchten Sie Ihr Unternehmen in HackTricks beworben sehen? Oder möchten Sie Zugriff auf die neueste Version des PEASS oder HackTricks im PDF-Format haben? Überprüfen Sie die ABONNEMENTPLÄNE!
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Holen Sie sich den offiziellen PEASS & HackTricks-Merch
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie mir auf Twitter 🐦@carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs zum HackTricks-Repo und HackTricks-Cloud-Repo einreichen.
Tokens
Wenn Sie nicht wissen, was Windows-Zugriffstoken sind, lesen Sie diese Seite, bevor Sie fortfahren:
{% content-ref url="../access-tokens.md" %} access-tokens.md {% endcontent-ref %}
Möglicherweise können Sie Berechtigungen eskalieren, indem Sie die Tokens missbrauchen, die Sie bereits haben
SeImpersonatePrivilege
Dies ist ein Privileg, das von jedem Prozess gehalten wird und die Übernahme (aber nicht die Erstellung) eines beliebigen Tokens ermöglicht, sofern ein Handle dafür erhalten werden kann. Ein privilegiertes Token kann von einem Windows-Dienst (DCOM) erworben werden, indem man ihn dazu bringt, eine NTLM-Authentifizierung gegen einen Exploit durchzuführen, was anschließend die Ausführung eines Prozesses mit SYSTEM-Berechtigungen ermöglicht. Diese Schwachstelle kann mit verschiedenen Tools ausgenutzt werden, wie juicy-potato, RogueWinRM (der die Deaktivierung von WinRM erfordert), SweetPotato und PrintSpoofer.
{% content-ref url="../roguepotato-and-printspoofer.md" %} roguepotato-and-printspoofer.md {% endcontent-ref %}
{% content-ref url="../juicypotato.md" %} juicypotato.md {% endcontent-ref %}
SeAssignPrimaryPrivilege
Es ist sehr ähnlich wie SeImpersonatePrivilege, es wird die gleiche Methode verwendet, um ein privilegiertes Token zu erhalten.
Dann ermöglicht dieses Privileg das Zuweisen eines primären Tokens zu einem neuen/ausgesetzten Prozess. Mit dem privilegierten Übernahme-Token können Sie einen primären Token ableiten (DuplicateTokenEx).
Mit dem Token können Sie einen neuen Prozess mit 'CreateProcessAsUser' erstellen oder einen Prozess suspendieren und das Token setzen (im Allgemeinen können Sie den primären Token eines laufenden Prozesses nicht ändern).
SeTcbPrivilege
Wenn Sie dieses Token aktiviert haben, können Sie KERB_S4U_LOGON verwenden, um ein Übernahme-Token für einen anderen Benutzer ohne Kenntnis der Anmeldeinformationen zu erhalten, eine beliebige Gruppe (Administratoren) zum Token hinzufügen, den Integritätslevel des Tokens auf "medium" setzen und diesen Token dem aktuellen Thread zuweisen (SetThreadToken).
SeBackupPrivilege
Das System wird veranlasst, allen Dateien (auf Lesevorgänge beschränkt) durch dieses Privileg vollen Lesezugriff zu gewähren. Es wird verwendet, um die Passwort-Hashes der lokalen Administrator-Konten aus der Registrierung zu lesen, woraufhin Tools wie "psexec" oder "wmicexec" mit dem Hash verwendet werden können (Pass-the-Hash-Technik). Diese Technik scheitert jedoch unter zwei Bedingungen: wenn das lokale Administrator-Konto deaktiviert ist oder wenn eine Richtlinie besteht, die administrativen Rechten von lokalen Administratoren, die sich remote verbinden, entfernt. Sie können dieses Privileg missbrauchen mit:
- https://github.com/Hackplayers/PsCabesha-tools/blob/master/Privesc/Acl-FullControl.ps1
- https://github.com/giuliano108/SeBackupPrivilege/tree/master/SeBackupPrivilegeCmdLets/bin/Debug
- folgen Sie IppSec in https://www.youtube.com/watch?v=IfCysW0Od8w&t=2610&ab_channel=IppSec
- Oder wie im Abschnitt Berechtigungen eskalieren mit Backup-Operatoren erklärt in:
{% content-ref url="../../active-directory-methodology/privileged-groups-and-token-privileges.md" %} privileged-groups-and-token-privileges.md {% endcontent-ref %}
SeRestorePrivilege
Dieses Privileg ermöglicht Schreibzugriff auf jede Systemdatei, unabhängig von der Zugriffssteuerungsliste (ACL) der Datei. Es eröffnet zahlreiche Möglichkeiten zur Eskalation, einschließlich der Möglichkeit, Dienste zu modifizieren, DLL-Hijacking durchzuführen und Debugger über Image File Execution Options einzurichten, unter verschiedenen anderen Techniken.
SeCreateTokenPrivilege
SeCreateTokenPrivilege ist eine leistungsstarke Berechtigung, besonders nützlich, wenn ein Benutzer die Fähigkeit besitzt, Tokens zu übernehmen, aber auch in Abwesenheit von SeImpersonatePrivilege. Diese Fähigkeit hängt von der Möglichkeit ab, ein Token zu übernehmen, das denselben Benutzer repräsentiert und dessen Integritätslevel nicht höher ist als der des aktuellen Prozesses.
Hauptpunkte:
- Übernahme ohne SeImpersonatePrivilege: Es ist möglich, SeCreateTokenPrivilege für EoP zu nutzen, indem Tokens unter bestimmten Bedingungen übernommen werden.
- Bedingungen für Token-Übernahme: Eine erfolgreiche Übernahme erfordert, dass das Ziel-Token demselben Benutzer gehört und einen Integritätslevel hat, der kleiner oder gleich dem Integritätslevel des Prozesses ist, der die Übernahme versucht.
- Erstellung und Änderung von Übernahme-Tokens: Benutzer können ein Übernahme-Token erstellen und es verbessern, indem sie die SID (Security Identifier) einer privilegierten Gruppe hinzufügen.
SeLoadDriverPrivilege
Dieses Privileg ermöglicht es, Gerätetreiber zu laden und zu entladen, indem ein Registrierungseintrag mit spezifischen Werten für ImagePath
und Type
erstellt wird. Da der direkte Schreibzugriff auf HKLM
(HKEY_LOCAL_MACHINE) eingeschränkt ist, muss stattdessen HKCU
(HKEY_CURRENT_USER) verwendet werden. Um HKCU
jedoch für die Konfiguration von Treibern für den Kernel erkennbar zu machen, muss ein spezifischer Pfad befolgt werden.
Dieser Pfad lautet \Registry\User\<RID>\System\CurrentControlSet\Services\DriverName
, wobei <RID>
die Relative Kennung des aktuellen Benutzers ist. Innerhalb von HKCU
muss dieser gesamte Pfad erstellt und zwei Werte festgelegt werden:
ImagePath
, der Pfad zur auszuführenden BinärdateiType
, mit einem Wert vonSERVICE_KERNEL_DRIVER
(0x00000001
).
Schritte zum Folgen:
- Greifen Sie auf
HKCU
anstelle vonHKLM
aufgrund des eingeschränkten Schreibzugriffs zu. - Erstellen Sie den Pfad
\Registry\User\<RID>\System\CurrentControlSet\Services\DriverName
innerhalb vonHKCU
, wobei<RID>
die Relative Kennung des aktuellen Benutzers darstellt. - Legen Sie den
ImagePath
auf den Ausführungspfad der Binärdatei fest. - Weisen Sie den
Type
alsSERVICE_KERNEL_DRIVER
(0x00000001
) zu.
# 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)
Weitere Möglichkeiten, dieses Privileg zu missbrauchen, finden Sie unter https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges#seloaddriverprivilege
SeTakeOwnershipPrivilege
Dies ist ähnlich wie SeRestorePrivilege. Seine Hauptfunktion ermöglicht es einem Prozess, Eigentum an einem Objekt zu übernehmen, um die Notwendigkeit für expliziten Zugriff durch die Bereitstellung von WRITE_OWNER-Zugriffsrechten zu umgehen. Der Prozess beinhaltet zunächst die Sicherung des Eigentums am beabsichtigten Registrierungsschlüssel für Schreibzwecke und dann die Änderung des DACL, um Schreiboperationen zu ermöglichen.
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
Diese Berechtigung erlaubt es, andere Prozesse zu debuggen, einschließlich Lesen und Schreiben im Speicher. Mit dieser Berechtigung können verschiedene Strategien für die Speicherinjektion eingesetzt werden, die die meisten Antiviren- und Host-IPS-Lösungen umgehen können.
Speicher dumpen
Sie könnten ProcDump aus der SysInternals Suite verwenden, um den Speicher eines Prozesses zu erfassen. Dies gilt insbesondere für den Local Security Authority Subsystem Service (LSASS)-Prozess, der für die Speicherung von Benutzeranmeldeinformationen verantwortlich ist, sobald sich ein Benutzer erfolgreich an einem System angemeldet hat.
Anschließend können Sie diesen Dump in mimikatz laden, um Passwörter zu erhalten:
mimikatz.exe
mimikatz # log
mimikatz # sekurlsa::minidump lsass.dmp
mimikatz # sekurlsa::logonpasswords
RCE
Wenn Sie eine NT SYSTEM
-Shell erhalten möchten, könnten Sie Folgendes verwenden:
# Get the PID of a process running as NT SYSTEM
import-module psgetsys.ps1; [MyProcess]::CreateProcessFromParent(<system_pid>,<command_to_execute>)
Überprüfen von Berechtigungen
whoami /priv
Die Tokens, die als Deaktiviert erscheinen, können aktiviert werden, sodass Sie tatsächlich Aktivierte und Deaktivierte Tokens missbrauchen können.
Aktivieren Sie alle Tokens
Wenn Sie deaktivierte Tokens haben, können Sie das Skript EnableAllTokenPrivs.ps1 verwenden, um alle Tokens zu aktivieren:
.\EnableAllTokenPrivs.ps1
whoami /priv
Oder das Skript in diesem Beitrag.
Tabelle
Vollständiges Token-Privilegien-Cheatsheet unter https://github.com/gtworek/Priv2Admin, die folgende Zusammenfassung listet nur direkte Möglichkeiten auf, das Privileg auszunutzen, um eine Admin-Sitzung zu erhalten oder sensible Dateien zu lesen.
Privileg | Auswirkung | Tool | Ausführungspfad | Bemerkungen |
---|---|---|---|---|
SeAssignPrimaryToken |
Admin | Drittanbieter-Tool | "Es würde einem Benutzer ermöglichen, Tokens zu übernehmen und mit Tools wie potato.exe, rottenpotato.exe und juicypotato.exe zu nt-System zu eskalieren" | Danke an Aurélien Chalot für das Update. Ich werde versuchen, es bald etwas mehr rezeptartig umzuformulieren. |
SeBackup |
Bedrohung | Eingebaute Befehle | Lesen sensibler Dateien mit robocopy /b |
- Möglicherweise interessanter, wenn Sie %WINDIR%\MEMORY.DMP lesen können |
SeCreateToken |
Admin | Drittanbieter-Tool | Erstellen eines beliebigen Tokens einschließlich lokaler Adminrechte mit NtCreateToken . |
|
SeDebug |
Admin | PowerShell | Duplizieren des Tokens von lsass.exe . |
Skript zu finden unter FuzzySecurity |
SeLoadDriver |
Admin | Drittanbieter-Tool | 1. Laden eines fehlerhaften Kernel-Treibers wie |
1. Die Schwachstelle von |
SeRestore |
Admin | PowerShell | 1. Starten von PowerShell/ISE mit dem vorhandenen SeRestore-Privileg. |
Der Angriff kann von einigen AV-Software erkannt werden. Alternative Methode beruht auf dem Ersetzen von Dienst-Binärdateien, die mit demselben Privileg in "Program Files" gespeichert sind |
SeTakeOwnership |
Admin | Eingebaute Befehle | 1. |
Der Angriff kann von einigen AV-Software erkannt werden. Alternative Methode beruht auf dem Ersetzen von Dienst-Binärdateien, die mit demselben Privileg in "Program Files" gespeichert sind. |
SeTcb |
Admin | Drittanbieter-Tool | Manipulieren von Tokens, um lokale Adminrechte einzuschließen. Möglicherweise erfordert SeImpersonate. Zu überprüfen. |
Referenz
- Werfen Sie einen Blick auf diese Tabelle, die Windows-Tokens definiert: https://github.com/gtworek/Priv2Admin
- Lesen Sie diesen Artikel über Privilege Escalation mit Tokens.
Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!
- Arbeiten Sie in einem Cybersicherheitsunternehmen? Möchten Sie Ihr Unternehmen in HackTricks beworben sehen? oder möchten Sie Zugriff auf die neueste Version des PEASS erhalten oder HackTricks im PDF-Format herunterladen? Überprüfen Sie die ABONNEMENTPLÄNE!
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Holen Sie sich das offizielle PEASS & HackTricks-Merch
- Treten Sie der 💬 Discord-Gruppe oder der Telegramm-Gruppe bei oder folgen Sie mir auf Twitter 🐦@carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an das HackTricks-Repo und das HackTricks-Cloud-Repo einreichen.