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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/hlldz/reflexxion
Defensive ToolsPrivilege EscalationPersistence MechanismsIDS/IPS EvasionPost-ExploitationRed TeamingArchived
GitHubhlldz/reflexxion

RefleXXion

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

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

सभी देखें →

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

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

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

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

विवरण

RefleXXion is a utility designed to aid in bypassing user-mode hooks utilised by AV/EPP/EDR etc. In order to bypass the user-mode hooks, it first collects the syscall numbers of the NtOpenFile, NtCreateSection, NtOpenSection and NtMapViewOfSection found in the LdrpThunkSignature array.

साझा करें

RefleXXion

परिचय

RefleXXion एक उपयोगिता है जिसे AV/EPP/EDR आदि द्वारा उपयोग किए जाने वाले यूज़र-मोड हुक्स को बायपास करने में सहायता के लिए डिज़ाइन किया गया है। यूज़र-मोड हुक्स को बायपास करने के लिए, यह पहले LdrpThunkSignature ऐरे में पाए जाने वाले NtOpenFile, NtCreateSection, NtOpenSection और NtMapViewOfSection के syscall नंबर एकत्र करता है। उसके बाद, उपयोगकर्ता द्वारा यूज़र-मोड हुक्स को बायपास करने के लिए दो तकनीकें चुनी जा सकती हैं।

तकनीक-1, NTDLL को C:\Windows\System32\ntdll.dll से एक फ़ाइल के रूप में पढ़ती है। पार्सिंग के बाद, पहले से लोड किए गए NTDLL (जहाँ हुक्स किए जाते हैं) के .TEXT सेक्शन को मेमोरी में साफ NTDLL के .TEXT सेक्शन से बदल दिया जाता है।

तकनीक-2 में, NTDLL KnownDlls से सेक्शन के रूप में पढ़ता है, \KnownDlls\ntdll.dll। (क्योंकि DLL फ़ाइलें KnownDlls में सेक्शन के रूप में कैश की जाती हैं।) पार्सिंग के बाद, पहले से लोड किए गए NTDLL (जहाँ हुक्स किए जाते हैं) के .TEXT सेक्शन को मेमोरी में साफ NTDLL के .TEXT सेक्शन से बदल दिया जाता है।

पद्धति और सभी तकनीकों का विस्तृत प्रवाह नीचे दिया गया है।

RefleXXion Flow

उपयोग कैसे करें

आप Visual Studio से प्रोजेक्ट खोल सकते हैं और कंपाइल कर सकते हैं। पूरा प्रोजेक्ट Debug और Release दोनों मोड के लिए x64 आर्किटेक्चर को सपोर्ट करता है।

RefleXXion-EXE समाधान PoC उद्देश्य के लिए EXE उत्पन्न करता है। यदि आप समझना चाहते हैं कि प्रोजेक्ट चरण दर चरण कैसे काम करता है, तो यह आपके काम को आसान बना देगा। Main फ़ंक्शन में Technique1 और Technique2 फ़ंक्शन की परिभाषाएँ होती हैं। उनमें से एक को कमेंट करें और कंपाइल करें। दोनों फ़ंक्शन का एक ही समय में उपयोग न करें।

RefleXXion-DLL समाधान वह DLL उत्पन्न करता है जिसे आप उस प्रक्रिया में इंजेक्ट करते हैं जिसके लिए आप NTDLL के यूज़र-मोड हुक्स को बायपास करना चाहते हैं। main.cpp फ़ाइल की शुरुआत में, यह परिभाषाएँ होती हैं कि किस तकनीक का उपयोग करना है। आप उनमें से एक चुन सकते हैं और इसे कंपाइल कर सकते हैं। एक ही समय में सभी मान सेट न करें, केवल वही तकनीक सेट करें जो आप चाहते हैं। उदाहरण कॉन्फ़िगरेशन नीचे दिया गया है।

root@kitploit:~
// Techniques configuration section
#define FROM_DISK 1 // If you set it to 1, the Technique-1 will be used. For more information; https://github.com/hlldz/RefleXXion
#define FROM_KNOWNDLLS 0 // If you set it to 1, the Technique-2 will be used. For more information; https://github.com/hlldz/RefleXXion

परिचालन उपयोग नोट्स और OPSEC चिंताएँ

  • RefleXXion वर्तमान में केवल x64 आर्किटेक्चर को सपोर्ट करता है।

  • RefleXXion केवल NTDLL फ़ंक्शन को अनहुक करता है, आपको अन्य DLLs (kernel32.dll, advapi32.dll आदि) को भी अनहुक करने की आवश्यकता हो सकती है। इसके लिए, आप प्रोजेक्ट में आवश्यक स्थानों को आसानी से संपादित कर सकते हैं।

  • RefleXXion केवल .TEXT सेक्शन को ओवरराइट करने की प्रक्रिया शुरू होने पर RWX मेमोरी क्षेत्र का उपयोग करता है। इस प्रक्रिया के लिए कोई नया मेमोरी क्षेत्र नहीं बनाया जाता है, मौजूदा मेमोरी क्षेत्र (पहले से लोड किए गए NTDLL का TEXT सेक्शन) को RWX किया जाता है और फिर RX में बदल दिया जाता है।

    root@kitploit:~
    ULONG oldProtection;
    ntStatus = NtProtectVirtualMemory(NtCurrentProcess(), &lpBaseAddress, &uSize, PAGE_EXECUTE_READWRITE, &oldProtection);
    memcpy()...
    ntStatus = NtProtectVirtualMemory(NtCurrentProcess(), &lpBaseAddress, &uSize, oldProtection, &oldProtection);
    

    P.S. RefleXXion, साफ़ रूप से स्थापित NTDLL पर NtProtectVirtualMemory API को लागू करता है। इसके लिए यह CustomGetProcAddress फ़ंक्शन का उपयोग करता है क्योंकि साफ NTDLL InLoadOrderModuleList में नहीं है, भले ही वह मेमोरी में लोड हो। इसलिए यहाँ जैसा समाधान (https://stackoverflow.com/questions/6734095/how-to-get-module-handle-from-func-ptr-in-win32) काम नहीं करेगा। यही कारण है कि कस्टम GetProcAddress फ़ंक्शन मौजूद है और इसका उपयोग किया जाता है।

  • आप RefleXXion DLL को डिस्क से टार्गेट प्रक्रिया में लोड कर सकते हैं। आप संवेदनशील कार्य जैसे Red Team ऑपरेशन के लिए इस तरह का रन पसंद नहीं कर सकते हैं। इसलिए, आप sRDI प्रोजेक्ट का उपयोग करके RefleXXion DLL को शेलकोड में बदल सकते हैं या अपने स्वयं के लोडर या प्रोजेक्ट में RefleXXion कोड को एकीकृत कर सकते हैं।

  • भले ही NTDLL (फ़ाइल या सेक्शन के रूप में) इंजेक्ट की गई प्रक्रिया में पुनः लोड हो, यह लोडेड नहीं रहता। RefleXXion अपनी प्रक्रियाओं के लिए सभी खुले हैंडल (फ़ाइल और सेक्शन हैंडल) को बंद कर देता है।

विशेष धन्यवाद और श्रेय

  • LdrpThunkSignature के साथ साफ सिस्टम कॉल एकत्र करने के लिए अनुसंधान और PoC पीटर विंटर-स्मिथ, @peterwintrsmith द्वारा। EDR Parallel-asis through Analysis, https://www.mdsec.co.uk/2022/01/edr-parallel-asis-through-analysis/
  • जेफरी टैंग द्वारा Windows 10 Parallel Loading Breakdown। https://blogs.blackberry.com/en/2017/10/windows-10-parallel-loading-breakdown
  • https://stackoverflow.com/questions/42789199/why-there-are-three-unexpected-worker-threads-when-a-win32-console-application-s
  • उपायन द्वारा Shellycoat, @slaeryan। https://github.com/slaeryan/AQUARMOURY/tree/master/Shellycoat
टूल डाउनलोड करें