
📟 एक छोटा कोड जो CVE-2023-38817 का उपयोग करके कर्नेल-मोड रीड/राइट करता है।

यह कोड केवल एक असुरक्षित हस्ताक्षरित ड्राइवर का उपयोग करके यूज़र-मोड से कर्नेल-मोड मेमोरी को पढ़ने/लिखने की क्षमता प्रदान करता है। यह केवल MmCopyVirtualMemory का उपयोग कर रहा है, जो कि अप्रलेखित (undocumented) फिर भी सबसे सामान्य API में से एक है, कर्नेल मोड में ताकि आप किसी भी यूज़र-मोड मेमोरी को पढ़/लिख सकें, बिना उस मेमोरी पेज की सुरक्षा के बारे में चिंता किए। इसके अलावा, इसमें दिए गए pid का प्रोसेस हैंडल प्राप्त करने का एक फ़ंक्शन भी है। चूँकि हैंडल निर्माण कर्नेल-मोड में किया जाता है, मेरा मानना है कि मानक अभिगम जाँच (access checks) और कॉलबैक (callbacks) सक्रिय नहीं होंगे।
यह प्रोजेक्ट अध्ययन उद्देश्यों के लिए बनाया गया था, और इसे वर्चुअल मशीन के बाहर उपयोग करने की अनुशंसा नहीं की जाती है।
मैंने देखा है कि इस विशिष्ट ड्राइवर में uc forum में विशेषाधिकार वृद्धि भेद्यता (privilege escalation vulnerability) है। इसलिए मैंने स्वयं ड्राइवर को रिवर्स करना शुरू किया और वास्तव में ड्राइवर के पास अपने शक्तिशाली ioctls पर अभिगम नियंत्रण नहीं है।
यह प्रोजेक्ट उस भेद्यता का उपयोग करता है जिसे CVE-2023-38817 के रूप में रिपोर्ट किया गया था। https://www.loldrivers.io/drivers/afb8bb46-1d13-407d-9866-1daa7c82ca63/
चूँकि मैं इसे ठीक से लागू करने में बहुत आलसी था, आपको केवल सब कुछ शामिल करना है और कंपाइल करना है। सभी कार्यक्षमताएँ kur_t क्लास में समाहित हैं।
https://github.com/pseuxide/kur/blob/cd3da42b8a146af3ca83d5f95970b030bd55585f/kur/kur.h#L5-L14