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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2022-45451 — Acronis मनमानी फ़ाइल रीड के लिए PoC - CVE-2022-45451 | Kitploit
उपकरण/GitHubGitHub/alfarom256/cve-2022-45451
विशेषाधिकार वृद्धिभेद्यता विश्लेषणकोड विश्लेषणशोषणबाइनरी विश्लेषण
GitHubalfarom256/cve-2022-45451

CVE-2022-45451

Acronis मनमानी फ़ाइल रीड के लिए PoC - CVE-2022-45451

रिपॉजिटरी देखें
18623 साल पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

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

परिचय

सिस्टम विनिर्देश:
  • Windows 10 1809 x64 EN
लक्ष्य:
  • Acronis Home Cyber Protect
  • Acronis Cyber Protect

भेद्यता विवरण

एक्रोनिस का "ngscan" एंटी-मैलवेयर स्कैन ड्राइवर फ़िल्टर संचार पोर्ट पर रखे गए गलत/अनुचित एक्सेस नियंत्रण से ग्रस्त है। मिनीफ़िल्टर ड्राइवर निम्नलिखित सुविधाओं का समर्थन करता है जिनका शोषण किया जा सकता है:

  • मनमाना फ़ाइल पढ़ना
  • संवेदनशील रजिस्ट्री कुंजी संशोधन (शोषण नहीं किया गया, ट्रिगर स्थितियाँ अज्ञात) जो स्थानीय कोड निष्पादन का कारण बन सकता है

मनमाना फ़ाइल पढ़ना

ngscan.sys ड्राइवर का विश्लेषण Ida Pro के साथ ड्राइवर को डीकंपाइल करके शुरू हुआ। शोधकर्ता ने नोट किया कि जबकि एक डिवाइस ऑब्जेक्ट बनाया गया था, DeviceIoControl का उपयोग करके ड्राइवर के साथ इंटरैक्ट करने के लिए कोई सिमलिंक नहीं बनाया गया था। इस प्रकार, विश्लेषण फ़िल्टर संचार पोर्ट क्षमताओं का अवलोकन करके जारी रहा। आरंभीकरण के दौरान, ड्राइवर अन्य प्रक्रियाओं से इंटरैक्शन का समर्थन करने के लिए पाँच (5) संचार पोर्ट बनाता है।

चित्र 1: पाँच (5) तक फ़िल्टर संचार पोर्ट (FCP) बनाने का समर्थन करने वाली रूटीन

यह फ़ंक्शन कॉल किया जाता देखा गया, प्रत्येक 5 FCP को डिफ़ॉल्ट dacl के साथ आरंभ करता है, अंतिम FCP को NULL dacl के साथ बनाया गया।

चित्र 2: डिफ़ॉल्ट/NULL DACL के साथ FCP निर्माण

विश्लेषण फ़िल्टर ड्राइवर द्वारा निर्दिष्ट CreateNotifyCallback और MessageNotifyCallback फ़ंक्शन का अवलोकन करके जारी रहा। ये कॉलबैक फ़ंक्शन तब लागू होते हैं जब कोई प्रक्रिया कनेक्शन खोलती है और संचार पोर्ट पर एक संदेश भेजती है।

MessageNotifyCallback के प्रारंभिक निरीक्षण से पता चला कि आने वाले संदेश के बफ़र को निम्नलिखित आवश्यकताओं को पूरा करना होगा:

  • पहला DWORD अपेक्षित हेडर मान "TrMs" (पंक्ति 37) से मेल खाना चाहिए
  • दूसरे DWORD में संदेश सामग्री की लंबाई होनी चाहिए (नोट: यह InputBufferLength से भिन्न और अलग है)
  • संदेश सामग्री की लंबाई पूर्ण इनपुट बफ़र आकार से संदेश हेडर के आकार को घटाकर प्राप्त मान से कम या उसके बराबर होनी चाहिए
    • संदेश हेडर में हेडर और आकार, और एक और अज्ञात मान शामिल होता है जो कुल 0xC (12) बाइट्स होता है

एक बार जाँच पास हो जाने के बाद, InputBuffer से एक फ़ंक्शन नंबर पार्स किया जाता है और इसका उपयोग निम्नलिखित switch मामलों में यह चुनने के लिए किया जाता है कि प्रदान किए गए इनपुट के साथ कौन सा फ़ंक्शन निष्पादित किया जाए।

चित्र 3: MessageNotifyCallback द्वारा समर्थित फ़ंक्शन का उपसमुच्चय

समर्थित प्रत्येक फ़ंक्शन का निरीक्षण करने पर संभावित दुरुपयोग के लिए दो रुचिकर फ़ंक्शन दिखाई दिए जो मनमाना फ़ाइल पढ़ने की ओर ले जाते हैं।

चित्र 4: स्कैन संदर्भ बनाने और स्कैन संदर्भ की फ़ाइल हैंडल लौटाने का समर्थन करने वाले फ़ंक्शन (पंक्तियाँ 206, 233)

हालांकि "स्कैन संदर्भ" की सटीक कार्यक्षमता पूरी तरह से ज्ञात नहीं है, विश्लेषण से पता चला है कि उपयोगकर्ता InputBuffer में निर्दिष्ट किसी भी फ़ाइल के लिए एक फ़ाइल स्कैन संदर्भ बनाया जा सकता है। एक बार स्कैन संदर्भ बन जाने के बाद, स्कैन संदर्भ आईडी आउटपुट बफ़र में उपयोगकर्ता को वापस कर दी जाती है।

चित्र 5: स्कैन संदर्भ डेटा उपयोगकर्ता को वापस करने वाली स्कैन संदर्भ बनाने की रूटीन

चित्र 6: संरक्षित SAM रजिस्ट्री फ़ाइल (\??\C:\Windows\System32\config\SAM) तक पहुंच का अनुरोध करने वाले मिनीफ़िल्टर ड्राइवर को भेजा गया डेटा

चित्र 7: मिनीफ़िल्टर ड्राइवर से प्रतिक्रिया जिसमें स्कैन संदर्भ आईडी (0x3aaf) शामिल है

एक बार स्कैन संदर्भ बन जाने और आईडी प्राप्त कर लेने के बाद, जिस फ़ाइल के लिए स्कैन संदर्भ बनाया गया था, उसका एक हैंडल संचार पोर्ट पर फिर से एक संदेश भेजकर अनुरोध करने वाले एप्लिकेशन में खोला जा सकता है।

चित्र 8: बनाए गए स्कैन संदर्भ की फ़ाइल हैंडल पुनर्प्राप्ति

CreateFileReturnHandle0 नामित फ़ंक्शन केवल तभी कॉल किया गया जब पिछले फ़ंक्शन SearchScanContextsByID ने एक मान्य स्कैन संदर्भ लौटाया। उदा. केवल तभी जब अनुरोध करने वाली प्रक्रिया ने एक मान्य संदर्भ आईडी प्रदान की हो जो पहले उल्लिखित स्कैन निर्माण फ़ंक्शन को कॉल करके बनाई गई थी। अनुरोध करने वाले प्रोग्राम ने चित्र 8 (चित्र 4, पंक्ति 233) में निर्दिष्ट फ़ंक्शन को स्कैन संदर्भ आईडी प्रदान करके विशेषाधिकार प्राप्त फ़ाइल का एक हैंडल सफलतापूर्वक खोला।

चित्र 9: SAM फ़ाइल के लिए फ़ाइल हैंडल की सफल पुनर्प्राप्ति

processhacker का उपयोग करके, अनुरोध करने वाली प्रक्रिया के हैंडल को देखकर फ़ाइल हैंडल तक पहुंच की पुष्टि की गई:

चित्र 10: SAM फ़ाइल का हैंडल रखने वाली प्रक्रिया

चित्र 11: प्राप्त हैंडल को पढ़ने की पहुंच प्रदान की गई

संभावित कोड इंजेक्शन

समर्थित फ़ंक्शन की आगे की खोज से तीन रजिस्ट्री कुंजियों का नियंत्रण दिखाई दिया जिनका उपयोग कोड निष्पादन प्राप्त करने के लिए किया जा सकता है।

चित्र 12: रजिस्ट्री कुंजियों के हैंडल खोलने का समर्थन करने वाले फ़ंक्शन

चित्र 13: किसी प्रक्रिया में इंजेक्ट करने के लिए हुक मॉनिटर dll निर्दिष्ट करने वाली रजिस्ट्री कुंजियाँ खोलना

चित्र 14: उपयोगकर्ता-नियंत्रित डेटा के साथ रजिस्ट्री कुंजी को संशोधित करने की क्षमता प्रदर्शित करने वाला OpenKey फ़ंक्शन

Acronis सूट द्वारा हुकिंग के लिए dll इंजेक्शन की परिस्थितियाँ निर्धारित नहीं की गईं, हालांकि यदि हुक मॉनिटरिंग सक्षम है तो यह माना जाता है कि x64HookLib और x86HookLib रजिस्ट्री कुंजियों द्वारा निर्दिष्ट dll को एक निर्दिष्ट प्रक्रिया में इंजेक्ट किया जाएगा।

चित्र 15: हुकिंग dll C:\ProgramData\Acronis\NGMP\shared\acr_protect.x64.dll निर्दिष्ट करने वाली x64HookLibKey

रेस कंडीशन जो सीमित मनमाना फ़ाइल पढ़ने की अनुमति देती है

मनमाना फ़ाइल पढ़ने के लिए विश्लेषण में स्कैन संदर्भ खोलने की प्रक्रिया को छोड़ दिया गया है। एक प्रक्रिया, स्कैन संदर्भ बनाने के बजाय, बार-बार GetScanContextByID फ़ंक्शन को अनुरोध जारी करके, ContextID मानों पर लूप करके जब तक एक या अधिक मान्य स्कैन संदर्भ नहीं मिल जाते, तब तक स्कैन संदर्भ आईडी को ब्रूट-फोर्स कर सकती है।

टूल डाउनलोड करें