Auto-Elevate
Dieses Tool demonstriert die Leistungsfähigkeit von UAC-Bypasses und integrierten Windows-Funktionen. Dieses Hilfsprogramm lokalisiert automatisch winlogon.exe, stiehlt und imitiert dessen Prozess-TOKEN und erzeugt einen neuen SYSTEM-Prozess mit dem gestohlenen Token. In Kombination mit der UAC-Bypass-Methode #41 (ICMLuaUtil UAC-Bypass) aus dem UACME-Dienstprogramm von hfiref0x kann dieses Hilfsprogramm ein niedrig privilegiertes Administratorkonto auf NT AUTHORITY\SYSTEM anheben.
Das folgende Bild zeigt die Verwendung von UACME in Kombination mit Auto-Elevate, um von einem niedrig privilegierten Administratorkonto zu NT AUTHORITY\SYSTEM unter Windows 10 21H1 zu gelangen.

Das folgende Bild zeigt die Eskalation von einem hoch privilegierten Administratorkonto zu SYSTEM ohne UAC-Bypass.

Technische Erklärung
Die folgenden Schritte werden von Auto-Elevate durchgeführt, um von einem niedrig privilegierten Administrator zu SYSTEM zu eskalieren:

Auto-Elevate
- Der winlogon.exe-Prozess wird durch Aufzählen der laufenden Prozesse des Systems mit CreateToolhelp32Snapshot, Process32First und Process32Next lokalisiert.
- SeDebugPrivilege wird für den aktuellen Prozess über einen Aufruf von AdjustTokenPrivileges aktiviert, da es erforderlich ist, ein HANDLE auf winlogon.exe zu öffnen.
- Ein Handle auf den winlogon.exe-Prozess wird durch Aufruf von OpenProcess geöffnet; für diesen Aufruf wird PROCESS_ALL_ACCESS verwendet (obwohl es übertrieben ist).
- Ein Handle auf das Prozess-Token von winlogon wird durch Aufruf von OpenProcessToken in Kombination mit dem zuvor erhaltenen Prozess-Handle abgerufen.
- Der Benutzer (SYSTEM) von winlogon wird durch Aufruf von ImpersonateLoggedOnUser imitiert.
- Das imitierte Token-Handle wird durch Aufruf von DuplicateTokenEx mit SecurityImpersonation dupliziert; dies erstellt ein dupliziertes Token, das wir verwenden können.
- Unter Verwendung des duplizierten und imitierten Tokens wird eine neue CMD-Instanz durch Aufruf von CreateProcessWithTokenW gestartet.
To-Do
MITRE ATT&CK Mapping
- Token-Manipulation: T1134
- Zugriffstoken-Manipulation: Token-Imitation/-Diebstahl: T1134.001
- Zugriffstoken-Manipulation: Prozess mit Token erstellen: T1134.002
- Zugriffstoken-Manipulation: Token erstellen und imitieren: T1134.003