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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
ModuleShifting — मॉड्यूल स्टॉम्पिंग और मॉड्यूल ओवरलोडिंग इंजेक्शन तकनीकों का एक अधिक गुप्त रूपांतर जो मेमोरी IoCs को कम करता है। पायथन ctypes में कार्यान्वित। | Kitploit
उपकरण/GitHubGitHub/naksyn/moduleshifting
मेमोरी फोरेंसिकरेड टीमिंगपेलोड डेवलपमेंटबाइनरी शोषण
GitHubnaksyn/moduleshifting

ModuleShifting

मॉड्यूल स्टॉम्पिंग और मॉड्यूल ओवरलोडिंग इंजेक्शन तकनीकों का एक अधिक गुप्त रूपांतर जो मेमोरी IoCs को कम करता है। पायथन ctypes में कार्यान्वित।

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

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

सभी देखें →

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

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

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

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

समर्थित Python संस्करण Twitter

ModuleShifting

यह उपकरण 2023 x33fcon वार्ता: "मेमोरी इंजेक्शन तकनीकों की छिपावट में सुधार" [वीडियो] [ब्लॉगपोस्ट] पर प्रस्तुत किया गया है।

यह क्या है

ModuleShifting, Module Stomping और Module overloading इंजेक्शन तकनीक का एक अधिक गुप्त रूपांतर है। यह वास्तव में Python ctypes में लागू किया गया है ताकि इसे Python इंटरप्रेटर और Pyramid के माध्यम से पूरी तरह से मेमोरी में निष्पादित किया जा सके, जिससे संकलित लोडरों के उपयोग से बचा जा सके।

यह तकनीक PE या शेलकोड पेलोड के साथ उपयोग की जा सकती है, हालांकि, अधिक गुप्त रूपांतर उन शेलकोड पेलोड के साथ उपयोग किया जाना है जिन्हें अंतिम पेलोड से कार्यात्मक रूप से स्वतंत्र होना आवश्यक है जिसे शेलकोड लोड कर रहा है।

ModuleShifting, जब शेलकोड पेलोड के साथ उपयोग किया जाता है, निम्नलिखित कार्य करता है:

  1. वैध होस्टिंग dll को LoadLibrary के माध्यम से लोड किया जाता है
  2. निर्दिष्ट सेक्शन की मेमोरी अनुमतियों को RW में बदलें
  3. लक्ष्य सेक्शन पर शेलकोड को ओवरराइट करें
  4. गलत सकारात्मक व्यवहार में बेहतर मिश्रण के लिए वैकल्पिक पैडिंग जोड़ें (यहाँ और जानकारी)
  5. अनुमतियों को RX में बदलें
  6. फंक्शन पॉइंटर के माध्यम से शेलकोड निष्पादित करें - अतिरिक्त निष्पादन विधियाँ: फंक्शन कॉलबैक या CreateThread API
  7. निष्पादित शेलकोड पर मूल dll सामग्री लिखें - यह कदम होस्टिंग dll की छवि मेमोरी स्पेस पर एक दुर्भावनापूर्ण मेमोरी कलाकृति छोड़ने से बचाता है। शेलकोड को आगे के चरणों से कार्यात्मक रूप से स्वतंत्र होना चाहिए अन्यथा निष्पादन टूट जाएगा।

चित्र

PE पेलोड का उपयोग करते समय, ModuleShifting निम्नलिखित कार्य करेगा:

  1. वैध होस्टिंग dll को LoadLibrary के माध्यम से लोड किया जाता है
  2. निर्दिष्ट सेक्शन की मेमोरी अनुमतियों को RW में बदलें
  3. PE को निर्दिष्ट लक्ष्य बिंदु पर सेक्शन-दर-सेक्शन कॉपी करें
  4. गलत सकारात्मक व्यवहार में बेहतर मिश्रण के लिए वैकल्पिक पैडिंग जोड़ें
  5. आधार पुनर्वासन करें
  6. आयातों को हल करें
  7. अनुमतियों को उनके मूल मानों पर सेट करके सेक्शन को अंतिम रूप दें (RWX मेमोरी क्षेत्र के निर्माण से बचता है)
  8. TLS कॉलबैक निष्पादन
  9. PE प्रवेश बिंदु निष्पादित करें

यह क्यों उपयोगी है

ModuleShifting का उपयोग गतिशील रूप से मेमोरी आवंटित किए बिना (जैसे VirtualAlloc) पेलोड इंजेक्ट करने के लिए किया जा सकता है और Module Stomping और Module Overloading की तुलना में यह अधिक गुप्त है क्योंकि यह इंजेक्शन तकनीक द्वारा उत्पन्न IoCs की मात्रा को कम करता है।

Module Shifting और Module Stomping के कुछ सार्वजनिक कार्यान्वयनों (एक Bobby Cooke और WithSecure से) के बीच 3 मुख्य अंतर हैं:

  1. पैडिंग: शेलकोड या PE लिखते समय, आप सामान्य गलत सकारात्मक व्यवहार (जैसे तृतीय-पक्ष अनुप्रयोग या .net dlls अपने .text सेक्शन पर x बाइट्स लिखना) में बेहतर मिश्रण के लिए पैडिंग का उपयोग कर सकते हैं।
  2. फंक्शन पॉइंटर का उपयोग करके शेलकोड निष्पादन। यह एक नया थ्रेड बनाने या असामान्य फंक्शन कॉलबैक को कॉल करने से बचने में मदद करता है।
  3. निष्पादित शेलकोड पर मूल dll सामग्री को पुनर्स्थापित करना। यह एक महत्वपूर्ण अंतर है।

Module Shifting और Module Overloading के बीच अंतर निम्नलिखित हैं:

  1. PE को होस्टिंग dll के PE से शुरू करने के बजाय एक निर्दिष्ट सेक्शन से शुरू करके लिखा जा सकता है। एक बार लक्ष्य सेक्शन सावधानीपूर्वक चुने जाने पर, यह उत्पन्न IoCs की मात्रा को कम कर सकता है (जैसे होस्टिंग dll का PE हेडर ओवरराइट नहीं होता या .text सेक्शन पर कम बाइट्स ओवरराइट होते हैं आदि)
  2. पैडिंग जिसे गलत सकारात्मक में बेहतर मिश्रण के लिए PE पेलोड में ही जोड़ा जा सकता है।

एक कार्यात्मक रूप से स्वतंत्र शेलकोड पेलोड जैसे AceLdr Beacon Stageless शेलकोड पेलोड का उपयोग करके, ModuleShifting गतिशील रूप से मेमोरी आवंटित किए बिना स्थानीय रूप से इंजेक्ट करने में सक्षम है और इस समय Moneta और PE-Sieve स्कैन पर शून्य IoC उत्पन्न करता है। मुझे पता है कि AceLdr स्लीपिंग पेलोड को Hunt-Sleeping-Beacon जैसे अन्य महान उपकरणों से पकड़ा जा सकता है, लेकिन यहाँ ध्यान इंजेक्शन तकनीक पर है, पेलोड पर नहीं। हमारे मामले में इंजेक्शन में अधिक गोपनीयता को सक्षम करने वाली चीज़ शेलकोड की कार्यात्मक स्वतंत्रता है, ताकि लिखे गए दुर्भावनापूर्ण बाइट्स को उनकी मूल सामग्री पर पुनर्स्थापित किया जा सके, प्रभावी रूप से इंजेक्शन के निशान को मिटा दिया जा सके।

अस्वीकरण

सभी जानकारी और सामग्री केवल शैक्षिक उद्देश्यों के लिए प्रदान की गई है। निर्देशों का पालन अपने जोखिम पर करें। न तो लेखक और न ही उसका नियोक्ता किसी व्यक्ति या संगठन से उत्पन्न किसी भी प्रत्यक्ष या परिणामी क्षति या हानि के लिए जिम्मेदार है।

श्रेय

यह काम अविश्वसनीय लोगों जैसे Aleksandra Doniec @hasherezade, Forest Orr और Kyle Avery द्वारा साझा किए गए ज्ञान और उपकरणों के कारण संभव हुआ है। मैंने अपनी पूरी सीखने की प्रक्रिया में Moneta, PeSieve, PE-Bear और AceLdr का भारी उपयोग किया और ये इस विषय की मेरी समझ के लिए महत्वपूर्ण रहे हैं।

उपयोग

ModuleShifting का उपयोग Pyramid और Python इंटरप्रेटर के साथ किया जा सकता है ताकि स्थानीय प्रक्रिया इंजेक्शन को पूरी तरह से मेमोरी में निष्पादित किया जा सके, संकलित लोडरों से बचा जा सके।

  1. Pyramid रिपॉजिटरी को क्लोन करें:

git clone https://github.com/naksyn/Pyramid

  1. अपने पसंदीदा C2 के साथ एक शेलकोड पेलोड जनरेट करें और इसे Pyramid Delivery_files फ़ोल्डर में डालें। पेलोड आवश्यकताओं के लिए चेतावनियाँ अनुभाग देखें।
  2. Pyramid Modules फ़ोल्डर के अंदर moduleshifting.py स्क्रिप्ट के पैरामीटर संशोधित करें।
  3. Pyramid सर्वर शुरू करें: python3 pyramid.py -u testuser -pass testpass -p 443 -enc chacha20 -passenc superpass -generate -server 192.168.1.2 -setcradle moduleshifting.py
  4. जनरेट किए गए क्रेडल कोड को Python इंटरप्रेटर पर निष्पादित करें।

डेमो

https://github.com/naksyn/ModuleShifting/assets/59816245/67fcf888-3385-47da-b828-8a2dafeeb1e2

चेतावनियाँ

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

एक होस्टिंग dll जिसमें लक्षित सेक्शन पर शेलकोड के लिए पर्याप्त स्थान हो, उसे भी चुना जाना चाहिए, अन्यथा तकनीक विफल हो जाएगी।

पहचान के अवसर

Module Stomping और Module Shifting को एक वैध dll मेमोरी स्पेस पर शेलकोड लिखने की आवश्यकता होती है। ModuleShifting सफाई चरण के बाद इस IoC को समाप्त कर देगा, लेकिन संकेतक वास्तविक समय निरीक्षण क्षमताओं वाले स्कैनर द्वारा पहचाने जा सकते हैं।

चित्र

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