CVE-2024-38063 — Vulnerabilità dello stack IPv6 di Windows (Analisi e PoC)
-red)
Analisi tecnica e Proof-of-Concept (PoC) per CVE-2024-38063, una vulnerabilità critica di Remote Code Execution (RCE) nello stack IPv6 di Windows (tcpip.sys). Scoperta da KunLun Lab, questo problema è zero-click, ovvero può essere attivato da pacchetti appositamente costruiti senza interazione dell'utente.
Contesto accademico: Progetto finale per il corso "Fondamenti di Sicurezza delle Reti".
Demo
Indice
Panoramica
Questo repository contiene:
- un'analisi strutturata della vulnerabilità,
- una dimostrazione PoC basata su Scapy,
- e la documentazione completa del corso e le istruzioni per il laboratorio.
Riepilogo tecnico
Il problema principale è un integer underflow in tcpip.sys durante l'analisi degli IPv6 Extension Headers all'interno di traffico frammentato.
- Errore logico: la validazione della lunghezza dell'header fallisce durante il calcolo.
- Corruzione della memoria: l'underflow porta a un buffer overflow e a scritture in memoria non sicure.
- Impatto: potenziale BSOD e RCE in condizioni specifiche.
Contenuto del repository
- CVE-2024-38063 Analysis.pdf — Slide che illustrano il contesto, la causa principale e le mitigazioni.
- CVE-2024-38063.py — Script PoC basato su Scapy (dimostra il comportamento di crash).
- WriteUP.pdf — Write-up completo, requisiti del laboratorio e note di esecuzione.
Configurazione del laboratorio
Per riprodurre l'ambiente in un laboratorio controllato e a scopo didattico:
- Vittima: Windows 10/11 precedente alla patch di agosto 2024 / 24H2, con IPv6 abilitato.
- Attaccante: VM Linux con Python 3 e Scapy.
- Rete: connettività IPv6 tra le due macchine sullo stesso segmento di rete.
Logica della PoC (ad alto livello)
La PoC costruisce una sequenza di pacchetti per attivare l'underflow:
- Destination Options con un tipo di opzione non riconosciuto per forzare i percorsi di gestione degli errori.
- Fragment 1 per avviare la frammentazione e fornire il payload.
- Fragment 2 per terminare la sequenza.
Lo script ripete questi batch variando l'Hop Limit per aumentare la probabilità di incontrare il percorso di parsing vulnerabile.
Utilizzo
- Identificare l'indirizzo IPv6 di destinazione.
- Aggiornare
ip_addr e iface in CVE-2024-38063.py.
- Eseguire lo script dalla macchina dell'attaccante:
pip install scapy
pip install getmac
python3 CVE-2024-38063.py
Se il target è vulnerabile, si verifica tipicamente un BSOD entro 30–60 secondi mentre il kernel elabora header malformati.
Mitigazione
- Applicare gli aggiornamenti di sicurezza: patch Microsoft (13 agosto 2024).
- Disabilitare IPv6 dove non è possibile applicare la patch.
- Filtraggio firewall: bloccare i pacchetti IPv6 frammentati al perimetro.
Cosa ho imparato
- Architettura degli header IPv6: ho approfondito la mia comprensione del concatenamento dei next-header (Hop-by-Hop, Destination Options e Fragmentation) e di come la complessità degli header annidati ampli la superficie di attacco di rete.
- Acquisizione dei pacchetti a livello kernel (
tcpip.sys): ho osservato in prima persona l'elaborazione dei pacchetti in Ring 0. Poiché il riassemblaggio della frammentazione e il parsing avvengono in profondità all'interno del driver di rete prima di raggiungere i socket in user-mode, le falle a questo livello aggirano i controlli software a livello host e consentono lo sfruttamento zero-click.
- Meccanica della vulnerabilità alla radice: ho analizzato come un integer underflow nel calcolo della lunghezza dell'header corrompa gli offset dei puntatori, trasformando un difetto aritmetico in scritture out-of-bounds nella memoria del kernel e panic di sistema (BSOD).
- Creazione personalizzata di pacchetti con Scapy: ho acquisito esperienza pratica nella costruzione di pacchetti non conformi a RFC, nell'iniezione di TLV (Type-Length-Value) malformati nelle Destination Option e nella sequenziazione dei frammenti per forzare la gestione degli errori in casi limite nel kernel target.
Disclaimer
Questo progetto è destinato esclusivamente a scopi educativi e di ricerca. Test o accessi non autorizzati a sistemi di cui non si è proprietari o per cui non si dispone di esplicita autorizzazione alla valutazione sono illegali. Gli autori non si assumono alcuna responsabilità per usi impropri.