
CVE-2025-7771 के लिए प्रूफ-ऑफ-कॉन्सेप्ट। ThrottleStop.sys दो IOCTL हैंडलर उजागर करता है जो बिना किसी एक्सेस नियंत्रण के मनमानी भौतिक मेमोरी रीड/राइट की अनुमति देते हैं — कोई भी एडमिन प्रोसेस भौतिक RAM में कहीं भी पढ़ या लिख सकता है।
Windows 10 22H2 और Windows 11 23H2 x64 पर परीक्षण किया गया।
मैंने ड्राइवर बाइनरी को IDA Pro में लोड करके शुरुआत की ताकि यह पता चल सके कि यह आंतरिक रूप से कैसे काम करता है। IRP_MJ_DEVICE_CONTROL डिस्पैच रूटीन मिला और उसे दो IOCTL कोड तक ट्रेस किया:
0x80006498 — भौतिक पते से पढ़ें0x8000649C — भौतिक पते पर लिखेंदोनों सीधे MmMapIoSpace को कॉल करते हैं, चाहे आप कोई भी पता पास करें। कोई बाउंड्स जाँच नहीं, कोई कॉलर सत्यापन नहीं, कुछ भी नहीं। यही बग है।
वहाँ से शोषण का मार्ग काफी सीधा है:
\\.\ThrottleStop के लिए हैंडल खोलेंNtQuerySystemInformation क्लास 79) का उपयोग करेंNtQuerySystemInformation क्लास 11 के माध्यम से ntoskrnl बेस लीक करेंPsInitialSystemProcess एक्सपोर्ट RVA रिज़ॉल्व करने हेतु डिस्क से ntoskrnl.exe लोड करें और रनटाइम बेस में जोड़ेंEPROCESS+0x4b8 से SYSTEM टोकन पढ़ेंActiveProcessLinks ट्रैवर्स करेंटोकन फ़ील्ड _EX_FAST_REF है, इसलिए निचले 4 बिट्स रेफकाउंट हैं, पॉइंटर का हिस्सा नहीं। SYSTEM टोकन पढ़ते समय उन्हें मास्क करें, लिखते समय अपने रेफकाउंट बिट्स बनाए रखें, अन्यथा BSOD का जोखिम है।
cl /std:c++20 /EHsc /O2 exploit_single.cpp /link ntdll.lib advapi32.lib
MSVC (VS2022+) और ड्राइवर के लोड होने की आवश्यकता है। एडमिनिस्ट्रेटर के रूप में चलाएँ।
ये Windows 10 20H2 से 22H2 और Windows 11 22H2/23H2 x64 के लिए हैं। यदि आप किसी भिन्न बिल्ड पर हैं तो WinDbg में dt nt!_EPROCESS से जाँच करें।
| फ़ील्ड | ऑफसेट |
|---|---|
| UniqueProcessId | 0x440 |
| ActiveProcessLinks | 0x448 |
| Token | 0x4b8 |
केवल शैक्षिक और शोध उद्देश्यों के लिए। व्यक्तिगत VM पर परीक्षण किया गया।