Questo repository è per il workshop Testing ASP.NET ViewState with YSoNet (YSoSerial.NET).
Questa repository è per il workshop Testing ASP.NET ViewState with YSoNet (YSoSerial.NET).
Lettura consigliata: Exploiting Deserialisation in ASP.NET via ViewState
Strumenti consigliati per risolvere i lab (una volta che il lab è stato configurato):
Slide del workshop: EXPLOITING_KNOWN_MACHINE_WORKSHOP_v1.0_NahamCon2025_slides.pdf
Questo è un ambiente di laboratorio volutamente insicuro, creato esclusivamente per test di sicurezza e scopi didattici.
Questo laboratorio è progettato per aiutare i professionisti della sicurezza a migliorare le proprie capacità di test sulle vulnerabilità di ASP.NET ViewState. Usalo in modo responsabile e solo in ambienti controllati.
Esegui questi passaggi sul tuo Windows Server isolato per preparare l'ambiente di laboratorio. Apri un terminale PowerShell con privilegi elevati (Esegui come amministratore) ed esegui i seguenti comandi:
# Clona la repository (oppure scarica ed estrai lo ZIP)
git clone https://github.com/irsdl/viewstate-security-workshop.git
cd viewstate-security-workshop
.\tools\Install-IISAndDotNet.ps1
Questo installa IIS con il supporto ASP.NET e tutte le versioni richieste di .NET Framework.
.\tools\Disable-DefenderProtection.ps1
Perché disattivare Defender? Per questo laboratorio, disattiviamo Windows Defender così che l'esecuzione dei comandi tramite exploit di ViewState non venga bloccata. Questo ti consente di osservare chiaramente lo sfruttamento riuscito senza interferenze da parte della protezione degli endpoint.
Importante: In un laboratorio di test reale o in un ambiente di produzione, dovresti mantenere le protezioni attive. L'obiettivo di questo workshop è comprendere i meccanismi della vulnerabilità—una volta apprese le tecniche, esercitati a rilevare e bloccare questi attacchi con Defender attivo.
.\import-workshopiis.ps1
Questo script interattivo configura il sito vulnerabile del workshop in IIS. Ti chiederà le opzioni di configurazione con i seguenti valori predefiniti:
| Impostazione | Valore predefinito |
|---|---|
| File di configurazione | .\workshop-iis-config.json |
| Nome del sito | workshop |
| Percorso radice | C:\workshop\websites\wwwdata |
| Porta HTTP | 80 |
Lo script:
content nel percorso radice del sitoDopo la configurazione, il tuo IIS Manager dovrebbe apparire così:

Solo per lettori curiosi:
Prepara un Windows Server per il laboratorio installando IIS e i componenti di .NET Framework.
Posizione: tools/Install-IISAndDotNet.ps1
Utilizzo:
# Esegui come amministratore
.\tools\Install-IISAndDotNet.ps1
Cosa installa:
Nota: Per l'installazione di .NET Framework 3.5 su server isolati, potrebbe essere necessario montare un'ISO di Windows Server e decommentare l'opzione di installazione basata sull'origine nello script.
Disattiva le protezioni di Windows Defender per consentire l'esecuzione degli strumenti di sfruttamento nell'ambiente di laboratorio.
Posizione: tools/Disable-DefenderProtection.ps1
Utilizzo:
# Esegui come amministratore
.\tools\Disable-DefenderProtection.ps1
Cosa disattiva:
Riattiva le protezioni di Windows Defender dopo l'uso del laboratorio.
Posizione: tools/Enable-DefenderProtection.ps1
Utilizzo:
# Esegui come amministratore
.\tools\Enable-DefenderProtection.ps1
Cosa riattiva:
Script interattivo che importa la configurazione del sito IIS del workshop e distribuisce il contenuto web vulnerabile.
Posizione: import-workshopiis.ps1
Utilizzo:
# Esegui come amministratore
.\import-workshopiis.ps1
Cosa fa:
content nel percorso radice specificato.NET v2.0 per le applicazioni legacy)File di configurazione JSON che definisce la struttura del sito IIS esportato da un server di laboratorio di riferimento.
Posizione: workshop-iis-config.json
Contiene:
/mac/* - Applicazioni con validazione MAC abilitata/nomac/* - Applicazioni senza validazione MACv20, v40, v45) per testare diversi runtime .NETQuesto software è stato creato esclusivamente a scopo di ricerca accademica e per lo sviluppo di tecniche difensive efficaci, e non è inteso per attaccare sistemi se non esplicitamente autorizzati. I manutentori del progetto non sono responsabili dell'uso improprio del software. Usalo in modo responsabile.
Questo software è un progetto personale e non è correlato ad alcuna azienda, inclusi i datori di lavoro del proprietario del progetto e dei collaboratori.