
Percorsi di sfruttamento che ti permettono di (ab)usare dei privilegi di Windows per elevare i tuoi diritti all'interno del sistema operativo.
L'idea è di "tradurre" i privilegi del sistema operativo Windows in un percorso che porta a:
I privilegi sono elencati e spiegati su: https://learn.microsoft.com/en-us/windows/win32/secauthz/privilege-constants
Se l'obiettivo può essere raggiunto in più modi, la priorità è:
Puoi controllare i tuoi privilegi con whoami /priv. I privilegi disabilitati sono validi quanto quelli abilitati. L'unica cosa importante è se hai il privilegio nell'elenco o meno.
Nota 1: Ogni volta che il percorso di attacco termina con la creazione di un token, puoi supporre che il passo successivo sia creare un nuovo processo usando tale token e quindi prendere il controllo del sistema operativo.
Nota 2:
a. Per chiamare direttamente NtQuerySystemInformation()/ZwQuerySystemInformation(), puoi trovare i privilegi richiesti qui.
b. Per NtSetSystemInformation()/ZwSetSystemInformation() i privilegi richiesti sono elencati qui.
Nota 3: Mi concentro solo sul sistema operativo. Se un privilegio funziona in AD ma non nel sistema operativo stesso, lo descrivo come non utilizzato nel sistema operativo. Sarebbe bello se qualcuno approfondisse gli scenari orientati ad AD.
Sentiti libero di contribuire e/o discutere le idee presentate.
| Privilegio | Impatto | Strumento | Percorso di esecuzione | Note |
|---|---|---|---|---|
SeAssignPrimaryToken | Admin | strumento di terze parti | "Permetterebbe a un utente di impersonare token e ottenere privilegi di nt system usando strumenti come potato.exe, rottenpotato.exe e juicypotato.exe" | Grazie Aurélien Chalot per l'aggiornamento. Proverò a riformularlo presto in modo più simile a una ricetta. |
SeAudit | Minaccia | strumento di terze parti | Scrivere eventi nel registro eventi di sicurezza per ingannare il controllo o sovrascrivere eventi vecchi. | È possibile scrivere eventi propri con l'API Authz Report Security Event.- vedi PoC di @daem0nc0re |
SeBackup | Admin | strumento di terze parti | 1. Eseguire il backup delle chiavi del registro HKLM\SAM e HKLM\SYSTEM 2. Estrarre gli hash degli account locali dal database SAM 3. Pass-the-Hash come membro del gruppo Administrators locale In alternativa, può essere usato per leggere file sensibili. | Per maggiori informazioni, fare riferimento al file SeBackupPrivilege.- vedi PoC di @daem0nc0re |
SeChangeNotify | Nessuno | - | - | Privilegio posseduto da tutti. Revocarlo potrebbe rendere il sistema operativo (Windows Server 2019) non avviabile. |
SeCreateGlobal | ? | ? | ? | |
SeCreatePagefile | Nessuno | Comandi integrati | Creare hiberfil.sys, leggerlo offline, cercare dati sensibili. | Richiede accesso offline, che di fatto porta a diritti di amministratore. - Vedi PoC di @daem0nc0re |
SeCreatePermanent | ? | ? | ? | |
SeCreateSymbolicLink | ? | ? | ? | |
SeCreateToken | Admin | strumento di terze parti | Creare token arbitrario inclusi diritti di amministratore locale con NtCreateToken.- vedi PoC di @daem0nc0re | |
SeDebug | Admin | PowerShell | Duplicare il token di lsass.exe. | Script disponibile su FuzzySecurity. - Vedi PoC di @daem0nc0re |
SeDelegateSession-UserImpersonate | ? | ? | ? | Nome del privilegio spezzato per restringere la colonna. |
SeEnableDelegation | Nessuno | - | - | Il privilegio non è utilizzato nel sistema operativo Windows. |
SeImpersonate | Admin | strumento di terze parti | Strumenti della famiglia Potato (potato.exe, RottenPotato, RottenPotatoNG, Juicy Potato, SweetPotato, RemotePotato0), RogueWinRM, PrintSpoofer, ecc. | Analogamente a SeAssignPrimaryToken, permette per progettazione di creare un processo nel contesto di sicurezza di un altro utente (usando un handle di un token di tale utente). Molteplici strumenti e tecniche possono essere usati per ottenere il token richiesto. |
SeIncreaseBasePriority | Disponibilità | Comandi integrati | start /realtime SomeCpuIntensiveApp.exe | Potrebbe essere più interessante sui server. |
SeIncreaseQuota | Disponibilità | strumento di terze parti | Modificare i limiti di cpu, memoria e cache a valori che rendono il sistema operativo non avviabile. | - Le quote non sono controllate in modalità provvisoria, il che rende la riparazione relativamente facile. - Lo stesso privilegio viene utilizzato per gestire le quote del registro. |
SeIncreaseWorkingSet | Nessuno | - | - | Privilegio posseduto da tutti. Viene verificato quando si chiamano funzioni di ottimizzazione della gestione della memoria. |
SeLoadDriver | Admin | strumento di terze parti | 1. Caricare un driver kernel difettoso come szkg64.sys2. Sfruttare la vulnerabilità del driver In alternativa, il privilegio può essere usato per scaricare driver relativi alla sicurezza con il comando built-in fltMC. Esempio: fltMC sysmondrv | 1. La vulnerabilità di szkg64 è elencata come CVE-2018-157322. Il codice di exploit per szkg64 exploit code è stato creato da Parvez Anwar |
SeLockMemory | Disponibilità | strumento di terze parti | Affamare la partizione di memoria di sistema spostando pagine. | PoC pubblicato da Walied Assar (@waleedassar) |
SeMachineAccount | Nessuno | - | - | Il privilegio non è utilizzato nel sistema operativo Windows. |
SeManageVolume | Admin | strumento di terze parti | 1. Abilitare il privilegio nel token 2. Creare un handle su \.\C: con SYNCHRONIZE | FILE_TRAVERSE3. Inviare FSCTL_SD_GLOBAL_CHANGE per sostituire S-1-5-32-544 con S-1-5-32-5454. Sovrascrivere utilman.exe ecc. | FSCTL_SD_GLOBAL_CHANGE può essere effettuato con questo pezzo di codice. |
SeProfileSingleProcess | Nessuno | - | - | Il privilegio viene controllato prima di modificare (e in un insieme molto limitato di comandi, prima di interrogare) i parametri di Prefetch, SuperFetch e ReadyBoost. L'impatto potrebbe essere aggiustato, poiché l'effetto reale non è noto. |