Este repositório é para o workshop Testando o ViewState do ASP.NET com YSoNet (YSoSerial.NET).
Este repositório é para o workshop Testando ASP.NET ViewState com YSoNet (YSoSerial.NET).
Leitura recomendada: Explorando a Desserialização no ASP.NET via ViewState
Ferramentas recomendadas para resolver os laboratórios (quando o laboratório estiver configurado):
Slides do workshop: EXPLOITING_KNOWN_MACHINE_WORKSHOP_v1.0_NahamCon2025_slides.pdf
Este é um ambiente de laboratório intencionalmente inseguro, destinado apenas a testes de segurança e fins educacionais.
Este laboratório foi projetado para ajudar profissionais de segurança a melhorar suas capacidades de teste para vulnerabilidades de ViewState no ASP.NET. Use com responsabilidade e somente em ambientes controlados.
Execute estas etapas no seu Windows Server isolado para preparar o ambiente de laboratório. Abra um terminal PowerShell elevado (Executar como Administrador) e execute os seguintes 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
Isso instala o IIS com suporte a ASP.NET e todas as versões necessárias do .NET Framework.
.\tools\Disable-DefenderProtection.ps1
Por que desativar o Defender? Para este laboratório, desativamos o Windows Defender para que a execução de comandos por meio de explorações do ViewState não seja bloqueada. Isso permite observar claramente a exploração bem-sucedida sem interferência da proteção de endpoint.
Importante: Em um laboratório de testes do mundo real ou em um ambiente de produção, você deve manter as proteções ativadas. O objetivo deste workshop é entender a mecânica da vulnerabilidade — depois de aprender as técnicas, pratique a detecção e o bloqueio desses ataques com o Defender ativado.
.\import-workshopiis.ps1
Este script interativo configura o site vulnerável do workshop no IIS. Ele solicitará opções de configuração com os seguintes padrões:
| Configuração | Valor padrão |
|---|---|
| Arquivo de configuração | .\workshop-iis-config.json |
| Nome do site | workshop |
| Caminho raiz | C:\workshop\websites\wwwdata |
| Porta HTTP | 80 |
O script irá:
content para o caminho raiz do siteApós a configuração, seu Gerenciador do IIS deve ficar assim:

Somente para leitores curiosos:
Prepara um Windows Server para o laboratório instalando componentes do IIS e do .NET Framework.
Localização: tools/Install-IISAndDotNet.ps1
Uso:
# Run as Administrator
.\tools\Install-IISAndDotNet.ps1
O que ele instala:
Nota: Para a instalação do .NET Framework 3.5 em servidores isolados, pode ser necessário montar um ISO do Windows Server e remover os comentários da opção de instalação baseada em fonte no script.
Desativa as proteções do Windows Defender para permitir que ferramentas de exploração sejam executadas no ambiente de laboratório.
Localização: tools/Disable-DefenderProtection.ps1
Uso:
# Run as Administrator
.\tools\Disable-DefenderProtection.ps1
O que ele desativa:
Reativa as proteções do Windows Defender após o uso do laboratório.
Localização: tools/Enable-DefenderProtection.ps1
Uso:
# Run as Administrator
.\tools\Enable-DefenderProtection.ps1
O que ele ativa:
Script interativo que importa a configuração do site do workshop no IIS e implanta o conteúdo web vulnerável.
Localização: import-workshopiis.ps1
Uso:
# Run as Administrator
.\import-workshopiis.ps1
O que ele faz:
content para o caminho raiz especificado.NET v2.0 para aplicativos legados)Arquivo de configuração JSON que define a estrutura do site IIS exportada de um servidor de laboratório de referência.
Localização: workshop-iis-config.json
Contém:
/mac/* - Aplicativos com validação MAC habilitada/nomac/* - Aplicativos sem validação MACv20, v40, v45) para testar diferentes runtimes do .NETEste software foi criado puramente para fins de pesquisa acadêmica e para o desenvolvimento de técnicas defensivas eficazes, e não se destina a ser usado para atacar sistemas, exceto quando explicitamente autorizado. Os mantenedores do projeto não são responsáveis nem se responsabilizam pelo uso indevido do software. Use com responsabilidade.
Este software é um projeto pessoal e não está relacionado a nenhuma empresa, incluindo os empregadores do proprietário do projeto e dos colaboradores.