Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
Inline-Execute-PE — CobaltStrike Beacons में अप्रबंधित Windows निष्पादन योग्य फ़ाइलों को निष्पादित करें | Kitploit
उपकरण/GitHubGitHub/octoberfest7/inline-execute-pe
विशेषाधिकार वृद्धि
GitHuboctoberfest7/inline-execute-pe

Inline-Execute-PE

CobaltStrike Beacons में अप्रबंधित Windows निष्पादन योग्य फ़ाइलों को निष्पादित करें

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

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

सभी देखें →

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

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

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

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

Inline-Execute-PE

अस्वीकरण:

यह प्रोजेक्ट जटिल है और इसे समझने और पर्याप्त रूप से परीक्षण करने में विफलता के परिणामस्वरूप आप Beacons को क्रैश कर सकते हैं और पहुंच खो सकते हैं!

मैं आपको दृढ़ता से सलाह देता हूं कि "Design Considerations and Commentary" अनुभाग तक सभी दस्तावेज पढ़ें!

परिचय

Inline-Execute-PE CobaltStrike के लिए Beacon Object Files (BOF's) और एक संगत Aggressor स्क्रिप्ट का एक सूट है जो ऑपरेटरों को अप्रबंधित Windows निष्पादन योग्य फ़ाइलों को Beacon मेमोरी में लोड करने और उन्हें निष्पादित करने, आउटपुट प्राप्त करने और Beacon कंसोल में प्रस्तुत करने में सक्षम बनाता है।

यह ऑपरेटरों को कई तृतीय-पक्ष टूल्स (Mimikatz, Dsquery, Sysinternals टूल्स, आदि) का उपयोग करने में सक्षम बनाता है, बिना उन्हें डिस्क पर डालने, Donut जैसे टूल का उपयोग करके पोजीशन-इंडिपेंडेंट कोड में सुधारने, या उन्हें चलाने के लिए एक नई प्रक्रिया बनाने की आवश्यकता के।

ये निष्पादन योग्य फ़ाइलें Beacon मेमोरी में मैप की जाती हैं ताकि उन्हें बार-बार चलाया जा सके, बिना उन्हें नेटवर्क पर भेजने, नई मेमोरी आवंटित करने, और हर बार एक नया conhost.exe प्रक्रिया बनाने की आवश्यकता के।

Beacons में लोड की गई निष्पादन योग्य फ़ाइलें CobaltStrike Team Server से जुड़े सभी CobaltStrike Clients द्वारा सुलभ और चलाने योग्य होती हैं।

Inline-Execute-PE को x64 Beacons और Mingw या Visual Studio का उपयोग करके संकलित x64 Windows C या C++ निष्पादन योग्य फ़ाइलों के लिए डिज़ाइन किया गया था। यह प्रोजेक्ट x86 निष्पादन योग्य फ़ाइलों या किसी भिन्न भाषा में लिखी गई या किसी भिन्न कंपाइलर का उपयोग करके संकलित x64 निष्पादन योग्य फ़ाइलों का समर्थन नहीं करता है।

सेटअप

रिपॉजिटरी को क्लोन करें और BOF's को पुनः संकलित करने के लिए वैकल्पिक रूप से make चलाएं।

CobaltStrike क्लाइंट में Inline-Execute-PE.cna लोड करें। सुनिश्चित करें कि जिस निर्देशिका से CobaltStrike चल रहा है वह आपके उपयोगकर्ता द्वारा लिखने योग्य है; Inline-Execute-PE वहां एक टेक्स्ट फ़ाइल (petable.txt) बनाता है ताकि Inline-Execute-PE के कार्य करने के लिए आवश्यक डेटा की उपलब्धता सुनिश्चित हो सके।

कमांड

Inline-Execute-PE में 3 लक्ष्य-मुखी कमांड होते हैं जो BOF's चलाते हैं, और 3 आंतरिक कमांड होते हैं जो प्रोजेक्ट डेटा-संरचना में हेरफेर करते हैं:

लक्ष्य-मुखी:

  1. peload
  2. perun
  3. peunload

आंतरिक डेटा-संरचना:

  1. petable
  2. peconfig
  3. pebroadcast

peload

peload Inline-Execute-PE की शुरुआत है। इस कमांड का उपयोग PE को Beacon मेमोरी में लोड करने के लिए किया जाता है। यह निम्नलिखित प्रमुख क्रियाएं करता है:

  1. निर्दिष्ट PE को नेटवर्क पर Beacon तक भेजता है या लक्ष्य मशीन पर डिस्क से पढ़ने के लिए PE का नाम भेजता है
  2. Beacon मेमोरी में एक संरचना बनाता है जो Inline-Execute-PE के जीवनचक्र के दौरान आवश्यक विभिन्न पॉइंटर्स और हैंडल्स को धारण करती है
  3. Beacon में मेमोरी आवंटित करता है और उसे RW सुरक्षा के साथ PE लिखता है
  4. उपयोगकर्ता-निर्दिष्ट कुंजी का उपयोग करके PE को मेमोरी में XOR एन्क्रिप्ट करता है
  5. मेमोरी का एक और टुकड़ा आवंटित करता है और XOR एन्क्रिप्टेड PE को उसमें कॉपी करता है। बाद के निष्पादनों के लिए PE को "रिवर्ट" करने में सक्षम होने के लिए यह आवश्यक है
  6. stdin/stdout/stderr को प्रारंभ करने के लिए Beacon के तहत एक conhost.exe चाइल्ड प्रक्रिया बनाता है
  7. stdout और stderr को एक अनाम पाइप पर रीडायरेक्ट करता है ताकि PE आउटपुट कैप्चर किया जा सके

perun

perun Inline-Execute-PE में दूसरा चरण है। यह निम्नलिखित प्रमुख क्रियाएं करता है:

  1. कमांड लाइन तर्कों को नेटवर्क पर Beacon तक भेजता है
  2. PE को मेमोरी में XOR डिक्रिप्ट करता है
  3. PE के Import Address Table को ठीक करता है, कमांड लाइन तर्कों और प्रक्रिया से बाहर निकलने से संबंधित कुछ API को हुक करता है
  4. PE मेमोरी सुरक्षा को RWX में बदलता है
  5. PE को अपने स्वयं के थ्रेड में चलाता है
  6. PE से आउटपुट कैप्चर करता है और इसे CobaltStrike को लौटाता है
  7. PE मेमोरी सुरक्षा को RW में वापस लाता है
  8. peload के दौरान बनाई गई XOR प्रति के साथ मेमोरी में PE को ओवरराइट करता है

peunload

peunload को तब कॉल किया जाता है जब कोई ऑपरेटर PE के साथ काम पूरा कर लेता है या कोई भिन्न PE लोड करना चाहता है। यह निम्नलिखित प्रमुख क्रियाएं करता है:

  1. peload के दौरान बनाए गए हैंडल्स और फ़ाइल पॉइंटर्स को बंद करता है
  2. peload के दौरान बनाई गई conhost.exe प्रक्रिया को समाप्त करता है
  3. मेमोरी में PE की दोनों प्रतियों को शून्य करता है और फिर मुक्त करता है
  4. Beacon प्रक्रिया में PE द्वारा लोड किए गए किसी भी DLL को अनलोड करने का प्रयास करता है (वैकल्पिक)

petable

petable का उपयोग वर्तमान में Beacons में लोड सभी PE के बारे में जानकारी प्रदर्शित करने के लिए किया जाता है।

प्रत्येक CobaltStrike क्लाइंट का अपना petable होता है; Inline-Execute-PE अपने डेटा की सिंक्रोनिटी सुनिश्चित करने के लिए बहुत प्रयास करता है ताकि PE का उपयोग सभी ऑपरेटरों द्वारा किया जा सके। इसके बारे में अधिक जानने के लिए, "Design Considerations and Commentary" देखें।

image

peconfig

peconfig का उपयोग Inline-Execute-PE के कार्य करने के तरीके से संबंधित विकल्पों को कॉन्फ़िगर करने के लिए किया जाता है। दो वर्तमान विकल्प जिन्हें बदला जा सकता है वे हैं:

  1. टाइमआउट। यह निर्धारित करता है कि perun PE के निष्पादन को समाप्त करने से पहले कितनी देर तक प्रतीक्षा करेगा। यह एक सुरक्षा उपाय के रूप में मौजूद है यदि PE को गलत तर्क दिए जाते हैं जिससे वह कभी वापस नहीं आता/निष्पादन समाप्त नहीं करता। यह सेटिंग डिफ़ॉल्ट रूप से 60 सेकंड है लेकिन लंबे समय तक चलने वाले PE को समायोजित करने के लिए संशोधित की जा सकती है।
  2. UnloadLibraries। यह विकल्प नियंत्रित करता है कि क्या peunload PE द्वारा Beacon प्रक्रिया में लोड किए गए DLL को मुक्त करने का प्रयास करेगा। यह डिफ़ॉल्ट रूप से TRUE पर सेट है। कुछ PE Beacon प्रक्रिया से DLL को अनलोड करने पर समस्याएं उत्पन्न करते हैं और Beacon को क्रैश कर सकते हैं, ऐसी स्थिति में PE द्वारा लोड किए गए सभी DLL को Beacon प्रक्रिया में छोड़ देना बेहतर होता है। यह powershell.exe का उपयोग करते समय देखा गया है (शायद इसलिए कि यह Beacon प्रक्रिया में .Net CLR लोड करता है)।

pebroadcast

pebroadcast का उपयोग किसी क्लाइंट के petable की सामग्री को मैन्युअल रूप से अन्य सभी जुड़े CobaltStrike क्लाइंट्स को प्रसारित करने के लिए किया जा सकता है।

अन्य सभी CobaltStrike क्लाइंट प्रसारित डेटा के साथ अपने petable को अपडेट करेंगे। यह वास्तव में कभी भी आवश्यक नहीं होना चाहिए, लेकिन यह सुविधा केवल मामले में मौजूद है।

उपयोग

PE को Beacon मेमोरी में लोड करने के लिए peload का उपयोग करें
image

वैकल्पिक रूप से, यदि लक्ष्य मशीन पर कोई PE है जिसे आप एक नई प्रक्रिया बनाए बिना उपयोग करना चाहते हैं, तो पथ और --local स्विच प्रदान करें
image

perun को कॉल करें, लोड किए गए PE को कोई भी तर्क पास करें
image

तर्कों में डबल कोट्स को बैकस्लैश का उपयोग करके एस्केप किया जाना चाहिए
image

यदि आपने पहचान लिया है कि एक PE अनलोड के दौरान DLL को मुक्त करने का प्रयास करने पर समस्याएं पैदा करता है, तो unloadlibraries को false पर सेट करने के लिए peconfig का उपयोग करें
image

एक बार जब आप PE का उपयोग कर लेते हैं, तो इसे Beacon से साफ करने के लिए peunload को कॉल करें
image

अब एक अलग PE को Beacon में लोड किया जा सकता है
image

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