
AMD AmdTools64.sys MSR रीड/राइट IOCTLs का उपयोग करके IA32_LSTAR को ओवरराइट करने, SMEP को बायपास करने और Windows 10 x64 पर एडमिनिस्ट्रेटर से SYSTEM तक एस्केलेट करने का प्रूफ-ऑफ-कॉन्सेप्ट।
नमस्ते हैकर्स।
AmdTools64.sys वह हस्ताक्षरित Special Tools ड्राइवर है जो AMD uProf के साथ आता है। कोई UAC बायपास नहीं, कोई स्टैंडर्ड-यूज़र सीमा नहीं। एक बार हैंडल मिल जाने के बाद MSR इंडेक्स पर कोई व्हाइटलिस्ट नहीं है, इसलिए आप जो भी MSR चाहें पढ़ और लिख सकते हैं।
रीड साइड अपने आप ही KASLR तोड़ देती है। IA32_LSTAR (0xC0000082) पढ़ें और ड्राइवर आपको मुफ़्त में ntoskrnl!KiSystemCall64 दे देता है। असली समस्या राइट साइड है। IA32_LSTAR वह पता है जहाँ CPU हर सिसकॉल पर जाता है, और ड्राइवर एक सामान्य यूज़र को इसे ओवरराइट करने देता है। इसे अपने नियंत्रण वाले कोड पर पॉइंट करें और अगला सिसकॉल आपके कोड को CPL0 पर चलाएगा। SMEP ही एकमात्र रुकावट है, इसलिए एक्सप्लॉइट पहले ntoskrnl खोजने के लिए IA32_LSTAR पढ़ता है, डिस्क से इम्पोर्ट डायरेक्टरी पार्स करता है, mov cr4, rax से SMEP साफ़ करने के लिए कुछ गैजेट्स ढूँढता है, एक छोटा शेलकोड चलाता है जो SYSTEM टोकन को वर्तमान प्रोसेस में कॉपी करता है, और बाहर निकलते समय IA32_LSTAR को बहाल कर देता है ताकि मशीन काम करती रहे।
दो IOCTL हैं और पूरी कहानी बस इतनी ही है। 0xFFF02804 एक MSR पढ़ता है और 0xFFF02808 एक लिखता है, दोनों 20-बाइट बफ़र के साथ और बिना किसी इंडेक्स वैलिडेशन के। डिस्पैचर केवल बफ़र की लंबाई जाँचता है। एक फ़िज़िकल-मेमोरी रीड/राइट और एक यूज़र-मोड फ़िज़िकल मैप (0xFFF0281C, 0xFFF02820, 0xFFF028A4) भी है, लेकिन मैप पाथ मनमाने RAM पर PFN_LIST_CORRUPT ट्रिगर कर सकता है, इसलिए यहाँ MSR पाथ का उपयोग किया गया है।
मैंने इसे Windows 10 x64 22H2 (build 19045.6456) पर AMD uProf 5.3.521.0 के साथ परखा। ड्राइवर का वर्ज़न 1.7.16.218 है। कोई रेस नहीं और कोई हीप ग्रूमिंग नहीं, यह हर बार काम करता रहा जब भी मैंने इसे चलाया। ड्राइवर uProf के साथ आता है और बहुत सारी AMD मशीनों पर इंस्टॉल होता है, इसलिए यह आपके लिए पहले से ही लोडेड है। स्क्रीनशॉट Win10 बॉक्स का है: पहले whoami subhan\windows10 है, बाद में nt authority\system।

Windows 11 26300 पर मैं ड्राइवर इंस्टॉल कर सका और IA32_LSTAR पढ़ सका, लेकिन LSTAR पर wrmsr विफल हो जाता है जब Memory Integrity चालू हो, VBS/HVCI इसे इंटरसेप्ट करता है। Win11 का ज्ञात EPROCESS लेआउट है UniqueProcessId 0x1D0, ActiveProcessLinks 0x1D8, Token 0x248, ImageFileName 0x338, जिसे उस बिल्ड में PsGetProcessId, PsReferenceProcessToken और PsGetProcessImageFileName के विरुद्ध जाँचा गया।
मूल्य हस्ताक्षरित ड्राइवर और कर्नेल प्रिमिटिव में है: एक एडमिनिस्ट्रेटर AMD ड्राइवर लोड करके रिंग-0 कोड एक्ज़ीक्यूशन प्राप्त कर सकता है। यहाँ LSTAR-से-SYSTEM श्रृंखला एक्सप्लॉइट वाला हिस्सा है, कोई नई ड्राइवर खोज नहीं।
मैंने इसे 2026-08-17 को AMD PSIRT को रिपोर्ट किया। हालाँकि, उन्होंने इस कमी को स्वीकार करने से बचने के लिए अपनी पूरी ताकत लगा दी, यहाँ तक कि उन्होंने मुझे Gmail पर ब्लॉक कर दिया ताकि मैं अपने ही पते से उन्हें ईमेल न भेज सकूँ। यह तो बस शुरुआत है; आगे से, मैं AMD उत्पादों के बारे में अपने निष्कर्ष उनके साथ सीधे या उनके अन्य चैनलों के माध्यम से साझा नहीं करूँगा। मैं सब कुछ यहीं साझा करता रहूँगा। बने रहें, और हैकिंग करते रहें!