Este repositorio es para el taller de Testing de ASP.NET ViewState con YSoNet (YSoSerial.NET).
Este repositorio es para el taller Pruebas de ASP.NET ViewState con YSoNet (YSoSerial.NET).
Lectura recomendada: Explotando la deserialización en ASP.NET mediante ViewState
Herramientas recomendadas para resolver los laboratorios (cuando el laboratorio haya sido configurado):
Diapositivas del taller: EXPLOITING_KNOWN_MACHINE_WORKSHOP_v1.0_NahamCon2025_slides.pdf
Este es un entorno de laboratorio intencionalmente inseguro, destinado únicamente a pruebas de seguridad y fines educativos.
Este laboratorio está diseñado para ayudar a los profesionales de la seguridad a mejorar sus capacidades de prueba para vulnerabilidades de ViewState en ASP.NET. Úselo de forma responsable y únicamente en entornos controlados.
Ejecute estos pasos en su Windows Server aislado para preparar el entorno del laboratorio. Abra una terminal de PowerShell elevada (Ejecutar como administrador) y ejecute los siguientes comandos:
# Clone the repository (or download and extract the ZIP)
git clone https://github.com/irsdl/viewstate-security-workshop.git
cd viewstate-security-workshop
.\tools\Install-IISAndDotNet.ps1
Esto instala IIS con soporte de ASP.NET y todas las versiones requeridas de .NET Framework.
.\tools\Disable-DefenderProtection.ps1
¿Por qué deshabilitar Defender? Para este laboratorio, deshabilitamos Windows Defender para que la ejecución de comandos mediante exploits de ViewState no sea bloqueada. Esto le permite observar claramente la explotación exitosa sin interferencias de la protección de puntos finales.
Importante: En un laboratorio de pruebas del mundo real o en un entorno de producción, debe mantener las protecciones habilitadas. El objetivo de este taller es comprender la mecánica de la vulnerabilidad: una vez que haya aprendido las técnicas, practique la detección y el bloqueo de estos ataques con Defender habilitado.
.\import-workshopiis.ps1
Este script interactivo configura el sitio del taller vulnerable en IIS. Le solicitará opciones de configuración con los siguientes valores predeterminados:
| Configuración | Valor predeterminado |
|---|---|
| Archivo de configuración | .\workshop-iis-config.json |
| Nombre del sitio | workshop |
| Ruta raíz | C:\workshop\websites\wwwdata |
| Puerto HTTP | 80 |
El script hará lo siguiente:
content a la ruta raíz del sitioDespués de la configuración, su Administrador de IIS debería verse así:

Solo para lectores curiosos:
Prepara un Windows Server para el laboratorio instalando IIS y los componentes de .NET Framework.
Ubicación: tools/Install-IISAndDotNet.ps1
Uso:
# Run as Administrator
.\tools\Install-IISAndDotNet.ps1
Lo que instala:
Nota: Para la instalación de .NET Framework 3.5 en servidores aislados, es posible que necesite montar una ISO de Windows Server y descomentar la opción de instalación basada en el origen en el script.
Deshabilita las protecciones de Windows Defender para permitir que las herramientas de explotación se ejecuten en el entorno del laboratorio.
Ubicación: tools/Disable-DefenderProtection.ps1
Uso:
# Run as Administrator
.\tools\Disable-DefenderProtection.ps1
Lo que deshabilita:
Vuelve a habilitar las protecciones de Windows Defender después del uso del laboratorio.
Ubicación: tools/Enable-DefenderProtection.ps1
Uso:
# Run as Administrator
.\tools\Enable-DefenderProtection.ps1
Lo que habilita:
Script interactivo que importa la configuración del sitio IIS del taller e implementa el contenido web vulnerable.
Ubicación: import-workshopiis.ps1
Uso:
# Run as Administrator
.\import-workshopiis.ps1
Lo que hace:
content a la ruta raíz especificada.NET v2.0 para aplicaciones heredadas)Archivo de configuración JSON que define la estructura del sitio IIS exportada desde un servidor de laboratorio de referencia.
Ubicación: workshop-iis-config.json
Contiene:
/mac/* - Aplicaciones con validación MAC habilitada/nomac/* - Aplicaciones sin validación MACv20, v40, v45) para probar diferentes entornos de ejecución de .NETEste software ha sido creado únicamente con fines de investigación académica y para el desarrollo de técnicas defensivas efectivas, y no está destinado a ser utilizado para atacar sistemas excepto cuando se cuente con autorización explícita. Los mantenedores del proyecto no son responsables del mal uso del software. Úselo de manera responsable.
Este software es un proyecto personal y no está relacionado con ninguna empresa, incluidas las de los empleadores del propietario del proyecto y de los colaboradores.