
Ausnutzungspfade, die es Ihnen erlauben, Windows-Berechtigungen zu (miss)brauchen, um Ihre Rechte innerhalb des Betriebssystems zu erhöhen.
Die Idee ist, Windows-OS-Privilegien in einen Pfad zu "übersetzen", der zu Folgendem führt:
Privilegien sind aufgeführt und erklärt unter: https://learn.microsoft.com/en-us/windows/win32/secauthz/privilege-constants
Wenn das Ziel auf mehrere Arten erreicht werden kann, ist die Priorität:
Sie können Ihre eigenen Privilegien mit whoami /priv überprüfen. Deaktivierte Privilegien sind genauso gut wie aktivierte. Das Einzige, was zählt, ist, ob Sie das Privileg auf der Liste haben oder nicht.
Hinweis 1: Wenn der Angriffspfad mit der Erstellung eines Tokens endet, können Sie davon ausgehen, dass der nächste Schritt darin besteht, mit diesem Token einen neuen Prozess zu erstellen und dann die Kontrolle über das Betriebssystem zu übernehmen.
Hinweis 2:
a. Für den direkten Aufruf von NtQuerySystemInformation()/ZwQuerySystemInformation() finden Sie die erforderlichen Privilegien hier.
b. Für NtSetSystemInformation()/ZwSetSystemInformation() sind die erforderlichen Privilegien hier aufgeführt.
Hinweis 3: Ich konzentriere mich nur auf das Betriebssystem. Wenn ein Privileg in AD funktioniert, aber nicht im Betriebssystem selbst, beschreibe ich es als nicht im Betriebssystem verwendet. Es wäre schön, wenn jemand tiefer in AD-orientierte Szenarien eintaucht.
Zögern Sie nicht, beizutragen und/oder vorgestellte Ideen zu diskutieren.
Danksagungen:
| Privileg | Auswirkung | Tool | Ausführungspfad | Anmerkungen |
|---|
SeAssignPrimaryToken | Admin | Drittanbieter-Tool | "Es würde einem Benutzer erlauben, Tokens zu imitieren und zu NT-System zu eskalieren, indem Tools wie potato.exe, rottenpotato.exe und juicypotato.exe verwendet werden." | Danke Aurélien Chalot für das Update. Ich werde versuchen, es bald rezeptartiger zu formulieren. |
SeAudit | Bedrohung | Drittanbieter-Tool | Ereignisse in das Sicherheits-Ereignisprotokoll schreiben, um die Überwachung zu täuschen oder alte Ereignisse zu überschreiben. | Das Schreiben eigener Ereignisse ist mit der Authz Report Security Event-API möglich.- siehe PoC von @daem0nc0re |
SeBackup | Admin | Drittanbieter-Tool | 1. Sichern Sie die Registrierungsstrukturen HKLM\SAM und HKLM\SYSTEM2. Extrahieren Sie die Hashes der lokalen Konten aus der SAM-Datenbank3. Pass-the-Hash als Mitglied der lokalen Administratoren-GruppeAlternativ können Sie damit sensible Dateien lesen. | Weitere Informationen finden Sie in der Datei SeBackupPrivilege.- siehe PoC von @daem0nc0re |
SeChangeNotify | Keine | - | - | Privileg, das jeder hat. Das Entziehen kann das Betriebssystem (Windows Server 2019) nicht mehr bootfähig machen. |
SeCreateGlobal | ? | ? | ? | |
SeCreatePagefile | Keine | Integrierte Befehle | Erstellen Sie hiberfil.sys, lesen Sie es offline und suchen Sie nach sensiblen Daten. | Erfordert Offline-Zugriff, was ohnehin zu Administratorrechten führt. - siehe PoC von @daem0nc0re |
SeCreatePermanent | ? | ? | ? | |
SeCreateSymbolicLink | ? | ? | ? | |
SeCreateToken | Admin | Drittanbieter-Tool | Erstellen Sie beliebige Token, einschließlich lokaler Administratorrechte mit NtCreateToken.- siehe PoC von @daem0nc0re | |
SeDebug | Admin | PowerShell | Duplizieren Sie das lsass.exe-Token. | Skript zu finden auf FuzzySecurity. - siehe PoC von @daem0nc0re |
SeDelegateSession-UserImpersonate | ? | ? | ? | Privilegienname umgebrochen, um die Spalte schmal zu halten. |
SeEnableDelegation | Keine | - | - | Das Privileg wird im Windows-Betriebssystem nicht verwendet. |
SeImpersonate | Admin | Drittanbieter-Tool | Tools aus der Potato-Familie (potato.exe, RottenPotato, RottenPotatoNG, Juicy Potato, SweetPotato, RemotePotato0), RogueWinRM, PrintSpoofer, etc. | Ähnlich wie SeAssignPrimaryToken erlaubt es von Haus aus, einen Prozess im Sicherheitskontext eines anderen Benutzers zu erstellen (unter Verwendung eines Handles auf ein Token dieses Benutzers). Mehrere Tools und Techniken können verwendet werden, um das erforderliche Token zu erhalten. |
SeIncreaseBasePriority | Verfügbarkeit | Integrierte Befehle | start /realtime SomeCpuIntensiveApp.exe | Kann auf Servern interessanter sein. |
SeIncreaseQuota | Verfügbarkeit | Drittanbieter-Tool | Ändern Sie CPU-, Speicher- und Cache-Limits auf Werte, die das Betriebssystem nicht mehr bootfähig machen. | - Kontingente werden im abgesicherten Modus nicht überprüft, was die Reparatur relativ einfach macht. - Das gleiche Privileg wird für die Verwaltung von Registrierungskontingenten verwendet. |
SeIncreaseWorkingSet | Keine | - | - | Privileg, das jeder hat. Wird beim Aufruf von Speicherverwaltungsfunktionen zur Feinabstimmung überprüft. |
SeLoadDriver | Admin | Drittanbieter-Tool | 1. Laden Sie einen fehlerhaften Kernel-Treiber wie szkg64.sys2. Nutzen Sie die Treiber-Schwachstelle aus Alternativ kann das Privileg verwendet werden, um sicherheitsrelevante Treiber mit dem integrierten Befehl fltMC zu entladen, z.B.: fltMC sysmondrv | 1. Die szkg64-Schwachstelle ist als CVE-2018-15732 gelistet2. Der Exploit-Code für szkg64 wurde von Parvez Anwar erstellt |
SeLockMemory | Verfügbarkeit | Drittanbieter-Tool | Hungern Sie die System-Speicherpartition aus, indem Sie Seiten verschieben. | PoC veröffentlicht von Walied Assar (@waleedassar) |
SeMachineAccount | Keine | - | - | Das Privileg wird im Windows-Betriebssystem nicht verwendet. |
SeManageVolume | Admin | Drittanbieter-Tool | 1. Aktivieren Sie das Privileg im Token 2. Erstellen Sie einen Handle auf \.\C: mit SYNCHRONIZE | FILE_TRAVERSE3. Senden Sie den FSCTL_SD_GLOBAL_CHANGE-Befehl, um S-1-5-32-544 durch S-1-5-32-545 zu ersetzen4. Überschreiben Sie utilman.exe usw. | FSCTL_SD_GLOBAL_CHANGE kann mit diesem Code-Stück durchgeführt werden. |
SeProfileSingleProcess | Keine | - | - | Das Privileg wird vor dem Ändern (und in einem sehr begrenzten Befehlssatz vor dem Abfragen) von Parametern von Prefetch, SuperFetch und ReadyBoost überprüft. Die Auswirkung kann angepasst werden, da die tatsächliche Wirkung nicht bekannt ist. |
SeRelabel | Bedrohung | Drittanbieter-Tool | Änderung von Systemdateien durch einen legitimen Administrator | Siehe: MIC-Dokumentation Integritätslabel bieten zusätzlichen Schutz, zusätzlich zu den bekannten ACLs. Zwei Hauptszenarien sind: - Schutz vor Angriffen, die ausnutzbare Anwendungen wie Browser, PDF-Reader usw. verwenden. - Schutz von Betriebssystemdateien. Wenn SeRelabel im Token vorhanden ist, kann es verwendet werden, um WRITE_OWNER-Zugriff auf eine Ressource zu erhalten, einschließlich Dateien und Ordnern. Leider hat das Token mit einer IL unter High das SeRelabel-Privileg deaktiviert, was es für jeden, der nicht bereits Admin ist, unbrauchbar macht.Siehe großartigen Blogbeitrag von @tiraniddo für Details. |
SeRemoteShutdown | Verfügbarkeit | Integrierte Befehle | shutdown /s /f /m \\server1 /d P:5:19 | Das Privileg wird überprüft, wenn eine Herunterfahr-/Neustartanforderung aus dem Netzwerk kommt. Das Szenario mit 127.0.0.1 muss noch untersucht werden. |
SeReserveProcessor | Keine | - | - | Es sieht so aus, als ob das Privileg nicht mehr verwendet wird und nur in einigen Versionen von winnt.h aufgetaucht ist. Sie können es z.B. im von Microsoft veröffentlichten Quellcode hier aufgelistet sehen. |
SeRestore | Admin | PowerShell | 1. Starten Sie PowerShell/ISE mit aktivem SeRestore-Privileg. 2. Aktivieren Sie das Privileg mit Enable-SeRestorePrivilege). 3. Benennen Sie utilman.exe in utilman.old um 4. Benennen Sie cmd.exe in utilman.exe um 5. Sperren Sie die Konsole und drücken Sie Win+U | Der Angriff kann von einigen AV-Software erkannt werden. Eine alternative Methode basiert auf dem Ersetzen von Dienst-Binärdateien, die in "Programme" gespeichert sind, unter Verwendung desselben Privilegs. - siehe PoC von @daem0nc0re |
SeSecurity | Bedrohung | Integrierte Befehle | - Löschen des Sicherheits-Ereignisprotokolls: wevtutil cl Security- Verkleinern des Sicherheitsprotokolls auf 20 MB, damit Ereignisse bald gelöscht werden: wevtutil sl Security /ms:0- Lesen des Sicherheits-Ereignisprotokolls, um Kenntnisse über Prozesse, Zugriffe und Aktionen anderer Benutzer im System zu haben. - Wissen, was protokolliert wird, um unter dem Radar zu agieren. - Wissen, was protokolliert wird, um eine große Anzahl von Ereignissen zu generieren, die alte effektiv löschen, ohne offensichtliche Beweise für die Bereinigung zu hinterlassen. - Anzeigen und Ändern von Objekt-SACLs (in der Praxis: Überwachungseinstellungen) | Siehe PoC von @daem0nc0re |
SeShutdown | Verfügbarkeit | Integrierte Befehle | shutdown.exe /s /f /t 1 | Ermöglicht es, die meisten NtPowerInformation()-Ebenen aufzurufen. Muss noch untersucht werden. Ermöglicht es, NtRaiseHardError() aufzurufen, was sofort einen BSOD und einen Speicherauszug verursacht, was möglicherweise zur Offenlegung sensibler Informationen führt - siehe PoC von @daem0nc0re |
SeSyncAgent | Keine | - | - | Das Privileg wird im Windows-Betriebssystem nicht verwendet. |
SeSystemEnvironment | Unbekannt | Drittanbieter-Tool | Das Privileg erlaubt es, NtSetSystemEnvironmentValue, NtModifyDriverEntry und einige andere Syscalls zu verwenden, um UEFI-Variablen zu manipulieren. | Das Privileg wird benötigt, um sysprep.exe auszuführen. Zusätzlich: |
SeSystemProfile | ? | ? | ? | |
SeSystemtime | Bedrohung | Integrierte Befehle | cmd.exe /c date 01-01-01cmd.exe /c time 00:00 | Das Privileg erlaubt es, die Systemzeit zu ändern, was potenziell zu Problemen mit der Integrität von Überwachungspfaden führen kann, da Ereignisse mit falschem Datum/Uhrzeit gespeichert werden. - Seien Sie vorsichtig mit Datums-/Uhrzeitformaten. Verwenden Sie immer sichere Werte, wenn Sie sich nicht sicher sind. - Manchmal wird der Name des Privilegs mit großem "T" geschrieben und als SeSystemTime bezeichnet. |
SeTakeOwnership | Admin | Integrierte Befehle | 1. takeown.exe /f "%windir%\system32"2. icacls.exe "%windir%\system32" /grant "%username%":F3. Benennen Sie cmd.exe in utilman.exe um 4. Sperren Sie die Konsole und drücken Sie Win+U | Der Angriff kann von einigen AV-Software erkannt werden. Eine alternative Methode basiert auf dem Ersetzen von Dienst-Binärdateien, die in "Programme" gespeichert sind, unter Verwendung desselben Privilegs. - Siehe PoC von @daem0nc0re |
SeTcb | Admin | Drittanbieter-Tool | Manipulieren Sie Token, um lokale Administratorrechte einzuschließen. | Beispielcode+exe zum Erstellen beliebiger Token zu finden unter PsBits. |
SeTimeZone | Chaos | Integrierte Befehle | Ändern Sie die Zeitzone. tzutil /s "Chatham Islands Standard Time" | |
SeTrustedCredManAccess | Bedrohung | Drittanbieter-Tool | Auslesen von Anmeldeinformationen aus dem Anmeldeinformations-Manager | Großartiger Blogbeitrag von @tiraniddo. - siehe PoC von @daem0nc0re |
SeUndock | Keine | - | - | Das Privileg wird beim Abdocken aktiviert, aber es wurde nie beobachtet, dass es überprüft wird, um Zugriff zu gewähren/zu verweigern. In der Praxis bedeutet dies, dass es tatsächlich ungenutzt ist und zu keiner Eskalation führen kann. |
SeUnsolicitedInput | Keine | - | - | Das Privileg wird im Windows-Betriebssystem nicht verwendet. |