
हमारे प्रोसेस टोकन में कुछ विशेषाधिकार सक्षम करने के लिए Win10Pcap ड्राइवर का शोषण करें (स्थानीय विशेषाधिकार वृद्धि)
श्रेय
https://twitter.com/R00tkitSMM ([email protected]) टेलीग्राम यूज़रनेम : https://telegram.me/firozi
कुछ दिन पहले मुझे win10pcap ड्राइवर में एक कमजोरी मिली जो Privilege escalation का कारण बन सकती है। मैंने कमजोरी की रिपोर्ट की और अब बग ठीक हो गया है:
इसलिए मैंने नमूना एक्सप्लॉइट प्रकाशित करने का निर्णय लिया।
Win10Pcap एक नई WinPcap-आधारित ईथरनेट पैकेट कैप्चर लाइब्रेरी है। मूल WinPcap के विपरीत, Win10Pcap Windows 10 के साथ स्थिर रूप से काम करने के लिए NDIS 6.x ड्राइवर मॉडल के साथ संगत है। Win10Pcap IEEE802.1Q VLAN टैग कैप्चर करने का भी समर्थन करता है।
इसलिए अगर आप window 10 पर Wireshark इंस्टॉल करते हैं तो आपको इस चीज़ की ज़रूरत है :)
Win10Pcap kernel-mode ड्राइवर user-mode से पास किए गए virtual addresses की जाँच नहीं करता था; IOCTL, पास किए गए address को मान्य करने के लिए ProbeForWrite के बिना Neither Buffered Nor Direct I/O का उपयोग करता है।
आपको IOCTL भेजने के लिए runtime में सटीक Device name खोजने की आवश्यकता है; hardcoded device name कमजोर कोड तक नहीं ले जाता है।
IOCTL हैंडलर पास किए गए address पर एक स्ट्रिंग लिखता है; स्ट्रिंग कुछ इस प्रकार है: "Global\WTCAP_EVENT_3889023063_1"
इस कमजोरी का फायदा उठाने के कई तरीके थे; मैंने _SEP_TOKEN_PRIVILEGES को overwrite करके process TOKEN में privilege सेट करने का निर्णय लिया।
0x034 एड्रेस पर token को "Global\WTCAP_EVENT" स्ट्रिंग के साथ overwrite करने से संवेदनशील फ़ील्ड्स को corrupt किए बिना SeDebugPrivilege सेट किया जा सकता है।
81687cf8 cc int 3
2: kd> dt nt!_TOken
+0x000 TokenSource : _TOKEN_SOURCE
+0x010 TokenId : _LUID
+0x018 AuthenticationId : _LUID
+0x020 ParentTokenId : _LUID
+0x028 ExpirationTime : _LARGE_INTEGER
+0x030 TokenLock : Ptr32 _ERESOURCE
+0x034 ModifiedId : _LUID
+0x040 Privileges : _SEP_TOKEN_PRIVILEGES
+0x058 AuditPolicy : _SEP_AUDIT_POLICY
