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-2024-30051 — Ricerca di tesi magistrale su CVE-2024-30051 (Overflow dell'heap di DWM di Windows). Include un exploit ad alta affidabilità con ottimizzazione automatizzata dell'heap spray, logging in tempo reale e analisi empirica del tasso di successo. Componente del portfolio che dimostra exploit binario avanzato di Windows, manipolazione del layout dell'heap e LPE tramite Desktop Window Manager. | Kitploit
Strumenti/GitHubGitHub/devianntsec
/
cve-2024-30051
Escalation di PrivilegiMemory ForensicsAnalisi delle VulnerabilitàExploitReverse EngineeringPaper e RicercaApprendimento e FormazioneSviluppo PayloadBinary Exploitation
GitHubdevianntsec/cve-2024-30051

CVE-2024-30051

Vedi Repository
13 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 →

Informazioni

Ricerca di tesi magistrale su CVE-2024-30051 (Overflow dell'heap di DWM di Windows). Include un exploit ad alta affidabilità con ottimizzazione automatizzata dell'heap spray, logging in tempo reale e analisi empirica del tasso di successo. Componente del portfolio che dimostra exploit binario avanzato di Windows, manipolazione del layout dell'heap e LPE tramite Desktop Window Manager.

Condividi

CVE-2024-30051 — Heap Overflow su DWM di Windows EoP · Ricerca per Tesi Magistrale

Platform Language License: MIT Research CVSS

Buffer Overflow basato su Heap in Windows Desktop Window Manager (dwmcore.dll)
Escalation dei Privilegi Locali → Livello di Integrità SYSTEM tramite processo DWM
Target di build: Windows 11 22H2 (10.0.22621.3447) · Patch: KB5037771


Descrizione

Questo repository contiene la mia ricerca per la Tesi Magistrale su CVE-2024-30051, una vulnerabilità di Elevazione dei Privilegi di gravità Alta (CVSS 7.8) nella libreria principale del Windows Desktop Window Manager (dwmcore.dll).

La vulnerabilità origina da un errore di calcolo nella divisione intera in CCommandBuffer::Initialize. La dimensione usata per new() e quella usata per memcpy() divergono a causa di questo errore, producendo un heap overflow di 0x8F byte. Un exploit riuscito fa sì che dwm.exe carichi una DLL controllata dall'attaccante, eseguendo codice arbitrario sotto l'account window manager\dwm-1 con Livello di Integrità SYSTEM.

Il Mio Contributo

AspectDescription
Patch diffingAnalisi BinDiff completa che identifica CCommandBuffer::Initialize come esatto locus della vulnerabilità (punteggio di similarità 0.32 vs globale 0.98 su 14.062 funzioni confrontate)
WinDbg dynamic analysisVerifica passo-passo di tutti e 4 gli hook, sovrascrittura del campo size e costruzione del payload
Empirical heap spray analysis50 sessioni controllate su due configurazioni di RAM (8.192 MB e 4.096 MB) con test statistici formali
Statistical findingsMann-Whitney U (p = 0.031) e test t di Welch (p = 0.011) confermano l'effetto RAM; medie osservate 12.9–19× migliori della previsione teorica di ~64 tentativi
Payload DLL path centralizedPercorso hardcoded estratto nella costante del preprocessore #define PAYLOAD_DLL_PATH
Session loggingRegistro completo con timestamp per ogni sessione scritto in %TEMP%\cve_30051_log.txt
Academic documentationCausa principale, analisi heap spray di 50 sessioni e cronologia CVE

Struttura del Repository

root@kitploit:~
CVE-2024-30051-Masters-Thesis/
├── README.md
├── LICENSE
├── setup.bat                        # Copia s11.dll nella posizione richiesta
│
├── exploit/
│   ├── C21.sln                      # Soluzione Visual Studio 2022
│   ├── exploit_src/
│   │   ├── c26f.vcxproj
│   │   ├── c26f.filters
│   │   └── main.cpp                 # Exploit — heap spray + hooking + overflow
│   └── payload/
│       ├── payload.vcxproj
│       ├── payload.vcxproj.filters
│       ├── dllmain.cpp              # Payload DLL — genera shell SYSTEM + cleanup
│       ├── framework.h
│       ├── pch.h
│       └── pch.cpp
│
└── docs/
    ├── screenshots/                 # Patch diffing, WinDbg e catture forensi
    └── analysis/
        ├── 01-root-cause.md         # Bug di divisione intera in CCommandBuffer::Initialize
        ├── 02-heap-spray.md          # Dati empirici di 50 sessioni e risultati statistici
        └── 03-timeline.md           # Scoperta, divulgazione e cronologia della patch

Avvio Rapido

Prerequisiti

  • Windows 11 22H2 (build 22621.3447, non patchato — nessun KB5037771)
  • Visual Studio 2022 con carico di lavoro C++ Desktop
  • VM con snapshot raccomandata (necessaria per uno stato heap riproducibile)

Passo 1 — Compila la DLL del payload

Apri C21.sln in Visual Studio 2022. Compila il progetto payload in Release x64.

Passo 2 — Posiziona la DLL

Esegui setup.bat dalla radice del repository. Copia s11.dll in C:\Users\Public\Documents\s11.dll (il percorso definito da PAYLOAD_DLL_PATH).

⚠️ La DLL deve essere in questo esatto percorso prima di eseguire C26f.exe. Posizionarla accanto all'eseguibile non funzionerà.

Passo 3 — Compila l'exploit

Compila il progetto C26f in Release x64.

Passo 4 — Esegui

root@kitploit:~
x64\Release\C26f.exe

Esegui da un CMD standard (non elevato). L'exploit riprova automaticamente fino a 10 volte. In caso di successo, dwm.exe carica s11.dll e genera un CMD con Livello di Integrità SYSTEM. Un registro di sessione viene scritto in %TEMP%\cve_30051_log.txt.


Configurazione dell'Exploit

root@kitploit:~
#define MAX_ATTEMPTS        10      // Max auto-retry attempts per session
#define SPRAY_STEP          0x10    // Hole spacing index (1024 holes)
#define SPRAY_RANGE_START   0x3000  // Spray range start index
#define SPRAY_RANGE_END     0x7000  // Spray range end index
#define SLEEP_POST_SPRAY    0xC8    // ms wait after spray (200ms)
#define SLEEP_POST_HOLES    0xC8    // ms wait after freeing holes (200ms)
#define PAYLOAD_DLL_PATH    "C:\\Users\\Public\\Documents\\s11.dll"

Panoramica Tecnica

Causa Principale della Vulnerabilità

In CCommandBuffer::Initialize (dwmcore.dll 10.0.22621.3447), CD2DSharedBuffer::GetBufferSize viene chiamato due volte. La dimensione passata a new() subisce una divisione intera per 0x90 prima della moltiplicazione, mentre memcpy() usa il valore grezzo:

root@kitploit:~
buffer_size = GetBufferSize()   → e.g. 0x23F

size_new    = (0x23F / 0x90) * 0x90  = 0x1B0   ← allocated
size_memcpy = 0x23F                             ← copied

overflow    = 0x23F - 0x1B0 = 0x8F bytes

Risultati del Patch Diffing

BinDiff comparison between build 10.0.22621.3447 (vulnerable) and 10.0.22621.3593 (patched):

MetricValue
Similarità globale0.98
Confidenza0.99
Funzioni corrispondenti14.062 (99.1%)
Similarità di CCommandBuffer::Initialize0.32
Blocchi di base — versione vulnerabile4
Blocchi di base — versione patchata20 (16 blocchi di validazione aggiunti)

Il punteggio anomalo di 0.32 contro una similarità globale di 0.98 è la firma diretta del locus della vulnerabilità.

Catena di Sfruttamento

root@kitploit:~
1. Hook RtlCreateHeap               → cattura l'handle dell'heap di dwmcore
2. Hook RtlAllocateHeap             → cattura l'indirizzo del chunk base
3. Hook NtDCompositionCreateChannel → cattura MappedAddress (regione di memoria condivisa)
4. Hook NtDCompositionCommitChannel → sovrascrive il campo size (0x120 → 0x23F)
                                      inserisce comandi batch aggiuntivi
5. Heap spray di 0x10000 oggetti CHolographicInteropTexture (size=0x1B0)
6. Libera buchi ogni 0x10 indici    → crea spazi vuoti per l'atterraggio dell'overflow
7. Scrive il payload nel buffer di overflow → KCBTable+0x388 + LoadLibraryA + percorso DLL
8. Rilascia tutti gli oggetti spray → innesca overflow → LoadLibraryA("s11.dll")
9. dwm.exe carica la DLL del payload → genera CMD come integrità SYSTEM

Analisi Empirica dell'Heap Spray (50 Sessioni)

Domanda di Ricerca

La RAM disponibile influenza il numero di tentativi necessari per un heap spray riuscito?

Schema Sperimentale

Due blocchi di 25 sessioni ciascuno. Protocollo per sessione: ripristina snapshot pulito post-avvio → attesa 100 secondi di stabilizzazione → avvia exploit → registra il tentativo riuscito.

BloccoRAMSessioniSuccessiFallimenti
A8.192 MB25241
B4.096 MB25241

Risultati

BloccoRAMMedia tentativiDeviazione stdIC 95%Fattore vs teoria (64)
A8.192 MB3.3751.135[2.896; 3.854]≈ 19× più veloce
B4.096 MB4.9582.645[3.841; 6.076]≈ 12.9× più veloce

Test Statistici

TestStatisticap-valueConclusione
Mann-Whitney UU = 184.0p = 0.031Rifiuta H₀
Test t di Welcht(23) = −2.695p = 0.011Rifiuta H₀

Conclusioni Chiave

  • C1: L'heap di DWM post-avvio è 12.9–19× più deterministico della previsione teorica.
  • C2: La disponibilità di RAM ha un effetto statisticamente significativo sull'affidabilità dello spray (p = 0.031).
  • C3: Diminuire la RAM della metà raddoppia la deviazione standard (1.135 → 2.645).
  • C4: Il tasso di fallimento è omogeneo al 4% in entrambe le configurazioni.
  • C5: La costante base = heap_base + 0x720 conferma che il layout dell'heap post-avvio riproducibile è il principale motore del determinismo — non la densità dei buchi.
  • C6: Con ≥ 8 GB di RAM, un avversario può aspettarsi successo entro i primi 5 tentativi.

Dati grezzi completi, formato del registro di sessione e osservazioni sull'heap deterministico sono documentati in docs/analysis/02-heap-spray.md.


Output Post-Exploit

root@kitploit:~
=====================================================
  CVE-2024-30051 - Windows DWM Heap Overflow EoP
  CWE-122  |  CVSS 7.8  |  Elevation of Privilege
=====================================================

  Researched and reproduced by : devianntsec
  Original PoC by              : Ricardo Narvaja (Fortra)
  Target                       : Windows 11 22H2 (22621.3447)

=====================================================

  [*] Current user:
  window manager\dwm-1

  [*] Mandatory Integrity Level:
  Mandatory Label\System Mandatory Level   S-1-16-16384

  [*] Enabled privileges:
  SeImpersonatePrivilege    Enabled

=====================================================
  Shell running under DWM process - SYSTEM level
=====================================================

Gli artefatti (s11.dll e lo script .bat) vengono automaticamente eliminati dopo 5 secondi tramite un processo di pulizia differita.


Artefatti Forensi

ArtefattoPosizionePersistenzaStrumento di rilevamento
cmd.exe figlio di dwm.exeLog eventi di sicurezzaSì (se il controllo processi è attivo)Event ID 4688
Processo esterno che accede a dwm.exeSysmonSìSysmon Event ID 10
Crash di dwm.exe su tentativi fallitiLog eventi applicazioneSìEvent ID 1000
DLL payload s11.dll sul discoC:\Users\Public\Documents\Solo primi ~5 secondiMonitoraggio SHA-256

Documentazione Tecnica

DocumentoDescrizione
Root Cause AnalysisBug di divisione intera in CCommandBuffer::Initialize, metodologia di patch diffing
Heap Spray AnalysisDati empirici di 50 sessioni, dati grezzi delle sessioni, test statistici
CVE TimelineScoperta, divulgazione e cronologia della patch

Contesto Accademico

Questa ricerca fa parte della mia Tesi Magistrale in Cybersecurity (UCAM — Campus Internacional de Ciberseguridad), analizzando vulnerabilità N-Day in più ambienti.

Questo CVE rappresenta il vettore applicazione desktop Windows all'interno della tesi, dimostrando:

  • Sfruttamento del buffer overflow basato su heap tramite canale ALPC di DirectComposition
  • Binary diffing (BinDiff) come metodo sistematico per l'individuazione di vulnerabilità N-Day
  • Hooking API in-process senza strumenti esterni
  • Quantificazione empirica del determinismo dell'heap spray tra configurazioni di RAM

Keywords: EoP · Heap Overflow · DirectComposition · DWM · Patch Diffing · BinDiff · WinDbg · Heap Spray · Empirical Analysis · CVE-2024-30051


Autore

Annais Molina (devianntsec) — Studente Magistrale in Cybersecurity

GitHub LinkedIn Email


Riconoscimenti

  • Ricardo Narvaja (Fortra/CoreSecurity) — PoC originale e reverse engineering writeup
  • Kaspersky GReAT — Scoperta originale della vulnerabilità e divulgazione responsabile
  • Microsoft MSRC — Patch KB5037771 (Maggio 2024)

Licenza

Licenza MIT — vedi LICENSE


Disclaimer Legale

Questo repository è fornito solo per scopi educativi e di ricerca sulla sicurezza, come parte di una Tesi Magistrale accademica. Tutti i test sono stati eseguiti su macchine virtuali isolate senza esposizione di rete. Utilizzare solo su sistemi di tua proprietà o per i quali hai esplicita autorizzazione scritta a testare. L'uso non autorizzato contro sistemi è illegale e può comportare azioni penali.

© 2026 Annais Molina · Tesi Magistrale in Cybersecurity
UCAM Universidad Católica San Antonio de Murcia · Campus Internacional de Ciberseguridad
Scarica lo strumento