
Proof of concepts demonstrating some aspects of the Windows kernel shadow stack mitigation.
यह परियोजना विंडोज 11 में माइक्रोसॉफ्ट द्वारा लागू की गई शैडो स्टैक माइटिगेशन के कुछ पहलुओं को उजागर करने के उद्देश्य से बनाई गई है। कोड विशेष रूप से विंडोज 11 24H2 पर केंद्रित है। कर्नेल ऑफसेट प्रबंधन के कारण, यह विंडोज 11 के अन्य संस्करणों पर काम नहीं कर सकता है।
परियोजना दो भागों में विभाजित है: एक क्लाइंट और एक ड्राइवर। उनके बीच संचार IOCTL तंत्र के माध्यम से संभाला जाता है। क्लाइंट ड्राइवर से कर्नेल स्तर पर कार्य करने का अनुरोध करता है।
CR4 रजिस्टर में CET सक्षम/अक्षम करें, जिससे BSOD उत्पन्न होता है।try/except और शैडो स्टैक व्यवहारों को उजागर करने के लिए विभाजन करें।build.bat का उपयोग करें।
आवश्यक शर्त के रूप में, निम्नलिखित किट समान Windows बिल्ड के लिए होने चाहिए:
नोट:
POC का परीक्षण किट के संस्करण 10.0.26100.0 के साथ किया गया है।
कर्नेल शैडो स्टैक माइटिगेशन सक्रिय करने के लिए, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\ कुंजी में निम्नलिखित मान जोड़ने या सेट करने होंगे:
| नाम | प्रकार | डेटा |
|---|---|---|
| EnableVirtualizationBasedSecurity | REG_DWORD | 1 |
| Scenarios\HypervisorEnforcedCodeIntegrity\Enabled | REG_DWORD | 1 |
| Scenarios\KernelShadowStacks\Enabled | REG_DWORD | 1 |
साथ ही, टेस्ट-साइन किए गए ड्राइवर को लोड करने के लिए, निम्नलिखित कमांड को एडमिनिस्ट्रेटर कंसोल में चलाना होगा:
bcdedit /set testsigning on
फिर, रिबूट आवश्यक है।
ड्राइवर लोड करने के लिए, एडमिनिस्ट्रेटर कंसोल में निम्नलिखित कमांड दर्ज करने होंगे:
sc create shadow type= kernel binPath= ABSOLUTE_PATH_TO_THE_DRIVER
sc start shadow
क्लाइंट के पास निम्नलिखित विकल्प हैं:
SergiusTheBest को उनके FindWDK के लिए धन्यवाद।
| विकल्प | विवरण |
|---|
| inc | कॉलर के रिटर्न पते को 1 से बढ़ाएँ |
| skip | पिछले स्टैक फ्रेम पर इंगित करने के लिए RSP को पैच करें |
| cdisable | CR4 में CET अक्षम करें |
| cenable | CR4 में CET सक्षम करें |
| wrmsr REGISTER VALUE | दिए गए VALUE को REGISTER में लिखें |
| wrshsk | शैडो स्टैक में लिखें |
| wrshskpte | शैडो स्टैक PTE को पुनः लिखें |
| div DIVIDEND DIVISOR | कर्नेल स्पेस में पूर्णांक विभाजन करें |