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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
external_c2_framework — Cobalt Strike के External C2 विनिर्देशन के साथ उपयोग के लिए Python API | Kitploit
उपकरण/GitHubGitHub/truneski/external_c2_framework
भेद्यता परीक्षण फ्रेमवर्कशोषण फ्रेमवर्कपोस्ट-शोषणकमांड एंड कंट्रोलरेड टीमिंगपेलोड डेवलपमेंट
GitHubtruneski/external_c2_framework

external_c2_framework

Cobalt Strike के External C2 विनिर्देशन के साथ उपयोग के लिए Python API

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

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

सभी देखें →

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

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

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

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

external_c2 फ्रेमवर्क

Cobalt Strike के External C2 विनिर्देश के साथ उपयोग के लिए Python फ्रेमवर्क, जैसा कि विनिर्देश में वर्णित है।

प्राथमिक डिज़ाइन लक्ष्य external c2 विनिर्देश का एक अत्यधिक मॉड्यूलर कार्यान्वयन होना है जो Cobalt Strike के लिए C2 चैनलों को आसानी से लागू करने हेतु पर्याप्त अब्स्ट्रैक्शन प्रदान करता है। आदर्श रूप से, उपयोगकर्ता को केवल एक transport मॉड्यूल, एक encoder मॉड्यूल बनाना होगा और एक नया चैनल लागू करने के लिए एक कॉन्फ़िगरेशन फ़ाइल भरनी होगी।

Dropbox ट्रांसपोर्ट कॉन्फ़िगरेशन

चालू होने से पहले आपको कई कॉन्फ़िगरेशन परिवर्तन करने होंगे। आपको निम्न की आवश्यकता होगी:

  1. यदि आपके पास पहले से नहीं है तो एक Dropbox खाता बनाएँ (https://www.dropbox.com/)
  2. अपने Dropbox खाते के लिए एक Access Token उत्पन्न करें (https://www.iperiusbackup.net/en/create-dropbox-app-get-authentication-token/)
  3. builds/client/dbox/dbox_client.py में, token को चरण 2 में उत्पन्न टोकन से बदलें।
  4. builds/server/utils/transports/transport_dbox.py में वही परिवर्तन करें जो आपने 3 में किए थे।
  • अपने DLL को संकलित करें: cd builds/client/dbox && ./compile_dll.sh
  • अपना Cobalt Strike टीम सर्वर प्रारंभ करें और Cobalt Strike क्लाइंट से कनेक्ट करें।
  • अपने CS क्लाइंट से start_externalc2.cna स्क्रिप्ट लोड करें।
  • इस रिपो को अपने टीम सर्वर पर कॉपी करें, फिर सर्वर को cd builds/server/ && ./dbox_server.py द्वारा निष्पादित करें।
  • चरण 6 से अपने एक्ज़ीक्यूटेबल को होस्ट पर वितरित करें और निष्पादित करें। आपको टीम सर्वर से एक कनेक्शन वापस दिखना चाहिए।
  • वीडियो डेमो का लिंक: https://www.youtube.com/watch?v=nTRHSh_uCcA

    आर्किटेक्चर

    इस परियोजना में तीन मुख्य भाग हैं:

    • बिल्डर (अभी तक लागू नहीं किया गया)
    • क्लाइंट
    • सर्वर

    बिल्डर

    बिल्डर निर्दिष्ट कॉन्फ़िगरेशन के आधार पर क्लाइंट और सर्वर डिप्लॉयमेंट को गतिशील रूप से बनाता है। आदर्श रूप से, क्लाइंट को एक एकल संकलित फ़ाइल जैसे dll या exe के रूप में वितरित करने में सक्षम होना चाहिए।

    क्लाइंट

    क्लाइंट अनिवार्य रूप से वह पेलोड है जो एंडपॉइंट पर चलता है, जिसे विनिर्देश के भीतर third-party client के रूप में संदर्भित किया जाता है। क्लाइंट का तर्क मुख्य रूप से स्थिर है:

    1. transport का उपयोग करने के लिए आवश्यक किसी भी तैयारी को चलाएँ
    2. स्टेगर प्राप्त करें
    3. स्टेगर को इंजेक्ट करें और बीकन के लिए हैंडल खोलें
    4. बीकन से मेटाडेटा प्राप्त करें
    5. transport के माध्यम से बीकन से मेटाडेटा को C2 सर्वर तक पहुँचाएँ
    6. नए कार्यों के लिए transport देखें
    7. नए कार्यों को बीकन तक पहुँचाएँ
    8. transport के माध्यम से बीकन से प्रतिक्रियाएँ पहुँचाएँ
    9. चरण 6-8 दोहराएँ।

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

    प्रोसेस इंजेक्शन तर्क बिल्डर से निर्धारित होता है।

    सर्वर

    सर्वर वह एप्लिकेशन है जो client और c2 server के बीच संचार की मध्यस्थता करता है, जिसे विनिर्देश के भीतर third-party Client Controller के रूप में संदर्भित किया जाता है। सर्वर तर्क मुख्य रूप से स्थिर है, लेकिन विकास में सहायता के लिए वर्बोज़ और डीबग आउटपुट का समर्थन करता है:

    1. कॉन्फ़िगरेशन पार्स करें
    2. निर्दिष्ट एन्कोडिंग मॉड्यूल आयात करें
    3. निर्दिष्ट ट्रांसपोर्ट मॉड्यूल आयात करें
    4. c2 सर्वर से कनेक्शन स्थापित करें
    5. c2 सर्वर से स्टेगर का अनुरोध करें
    6. encoder मॉड्यूल के साथ स्टेगर को एन्कोड करें
    7. transport मॉड्यूल के साथ स्टेगर को ट्रांसपोर्ट करें
    8. transport के माध्यम से प्राप्त क्लाइंट से मेटाडेटा प्रतिक्रिया की प्रतीक्षा करें
    9. encoder मॉड्यूल के साथ मेटाडेटा को डिकोड करें
    10. मेटाडेटा को c2 सर्वर तक पहुँचाएँ।
    11. c2 सर्वर से एक नया कार्य प्राप्त करें।
    12. नए कार्य को एन्कोड करें
    13. नए कार्य को transport के माध्यम से क्लाइंट तक पहुँचाएँ
    14. transport के माध्यम से प्राप्त क्लाइंट से प्रतिक्रिया प्राप्त करें
    15. encoder मॉड्यूल के माध्यम से प्रतिक्रिया डिकोड करें
    16. प्रतिक्रिया को c2 सर्वर तक पहुँचाएँ।
    17. चरण 11-16 दोहराएँ

    सर्वर किस encoder और transport मॉड्यूल को आयात करता है, इसका निर्धारण config.py में संग्रहीत मानों से किया जाता है।

    अप्रयुक्त transport या encoder मॉड्यूल का कोई आयात नहीं किया जाता है।

    क्लाइंट और मॉड्यूल साझा कार्यक्षमता

    निम्न तालिकाएँ encoding और transport मॉड्यूल और क्लाइंट के बीच साझा फ़ंक्शनों का वर्णन करती हैं। साझा फ़ंक्शन अनिवार्य रूप से बिल्कुल समान कोड होते हैं।

    एक बहुत महत्वपूर्ण नोट: क्लाइंट के sendData और recvData फ़ंक्शनों को भेजा गया डेटा रॉ डेटा होना चाहिए, जबकि ट्रांसपोर्ट मॉड्यूल के sendData और retrieveData फ़ंक्शनों को भेजा गया डेटा आवश्यकतानुसार पहले से एन्कोडेड या डिकोडेड होना चाहिए।

    ट्रांसपोर्ट मॉड्यूल

    Transport Functionक्लाइंट फ़ंक्शनविवरण
    prepTransportprepTransportट्रांसपोर्ट तंत्र का उपयोग करने के लिए आवश्यक किसी भी पूर्व-कॉन्फ़िगरेशन को निष्पादित करता है
    sendDatasendDataपरिभाषित करता है कि डेटा ट्रांसपोर्ट तंत्र के माध्यम से कैसे भेजा जाता है
    retrieveDatarecvDataपरिभाषित करता है कि ट्रांसपोर्ट तंत्र के माध्यम से डेटा कैसे प्राप्त किया जाता है

    एन्कोडर मॉड्यूल

    एन्कोडर फ़ंक्शनक्लाइंट फ़ंक्शनविवरण
    encodeencodeट्रांसपोर्ट के लिए तैयार करने हेतु रॉ डेटा पर किए गए संशोधनों को परिभाषित करता है
    decodedecodeट्रांसपोर्ट से प्राप्त रॉ डेटा पर किए गए संशोधनों को परिभाषित करता है ताकि इसे अपने गंतव्य तक पहुँचाया जा सके

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

    सबसे पहले, निर्धारित करें कि आप कौन सा ट्रांसपोर्ट और एन्कोडिंग मॉड्यूल उपयोग करना चाहते हैं। निम्नलिखित उदाहरण के लिए हम transport_gmail और encoder_b64url का उपयोग करेंगे।

    इसके बाद, अपनी आवश्यकताओं के अनुरूप server/config.py को संशोधित करें, यह सुनिश्चित करते हुए कि ENCODER_MODULE और TRANSPORT_MODULE ठीक से कॉन्फ़िगर किए गए हैं और आपके इच्छित मॉड्यूल की ओर इंगित करते हैं:

    नमूना config.py

    root@kitploit:~
    EXTERNAL_C2_ADDR = "127.0.0.1"
    EXTERNAL_C2_PORT = "2222"
    C2_PIPE_NAME = "foobar"
    C2_BLOCK_TIME = 100
    C2_ARCH = "x86"
    IDLE_TIME = 5
    ENCODER_MODULE = "encoder_b64url"
    TRANSPORT_MODULE = "transport_gmail"
    verbose = False
    debug = False
    

    इसके बाद, अपने चुने हुए transport और encoder मॉड्यूल के लिए कॉन्फ़िगरेशन अनुभाग संशोधित करें।

    सुनिश्चित करें कि client/mechanism/$mechanism_client.py का कॉन्फ़िगरेशन अनुभाग आपके अब तक परिभाषित किसी भी कॉन्फ़िगरेशन से मेल खाता है।

    सर्वर चलाने वाली मशीन पर, निष्पादित करें:

    python server.py

    अधिक वर्बोज़ आउटपुट के लिए, आप चला सकते हैं:

    python server.py -v

    अधिक वर्बोज़ आउटपुट और डीबगिंग के लिए उपयोगी अतिरिक्त आउटपुट के लिए, आप चला सकते हैं:

    python server.py -d

    इसके बाद, लक्षित एंडपॉइंट पर क्लाइंट निष्पादित करें।

    यदि सब कुछ काम कर गया, तो Cobalt Strike कंसोल के भीतर एक नया बीकन पंजीकृत होगा जिसके साथ आप इंटरैक्ट कर सकते हैं।

    अक्सर पूछे जाने वाले प्रश्न

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

    Python 2 क्यों?: मैं आलसी हूँ और इसमें नए ट्रांसपोर्ट और एन्कोडिंग चैनल लागू करना आसान है।

    आपका कोड बेकार है: यह एक प्रश्न नहीं है।

    क्या मैं नए ट्रांसपोर्ट और/या एन्कोडर मॉड्यूल जमा कर सकता हूँ?: हाँ, कृपया! एक पुल रिक्वेस्ट सबमिट करें और मुझे समीक्षा करने में खुशी होगी।

    रोडमैप

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

    • वर्तमान में, इसमें बिल्डर कार्यक्षमता का अभाव है, जिसे क्लाइंट और सर्वर डिप्लॉयमेंट को गतिशील रूप से बनाने के लिए योजनाबद्ध किया गया है, लेकिन यह रोडमैप पर है।

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