
कस्टम कमांड एंड कंट्रोल (C3)। कस्टम C2 चैनलों के तेज़ प्रोटोटाइपिंग के लिए एक फ्रेमवर्क, जो मौजूदा आक्रामक टूलकिट्स के साथ एकीकरण भी प्रदान करता है।

Build C3 (MSVC)/badge.svg?branch=master)
Build C3 (Clang)/badge.svg?branch=master)
C3 (Custom Command and Control) एक ऐसा टूल है जो रेड टीमों को गूढ़ (esoteric) कमांड एंड कंट्रोल चैनल (C2) तेजी से विकसित करने और उपयोग करने की अनुमति देता है। यह एक फ्रेमवर्क है जो अन्य रेड टीम टूलिंग का विस्तार करता है, जैसे कि वाणिज्यिक Cobalt Strike (CS) उत्पाद ExternalC2 के माध्यम से, जो रिलीज़ में समर्थित है। यह रेड टीम को केवल उस C2 पर ध्यान केंद्रित करने की अनुमति देता है जिसे वे लागू करना चाहते हैं; बाकी का ध्यान C3 और CS टूलिंग की मजबूती पर छोड़ देता है। यह दक्षता और विश्वसनीयता रेड टीमों को महत्वपूर्ण क्लाइंट वातावरण में सुरक्षित रूप से काम करने में सक्षम बनाती है (पेशेवर स्तर की स्थिरता और सुरक्षा सुनिश्चित करके); साथ ही सुरक्षित प्रयोग और अनुकूलित रणनीति, तकनीक और प्रक्रियाओं (TTPs) के तेजी से परिनियोजन की अनुमति देती है। इस प्रकार, रेड टीमों को एक अनुकूली वास्तविक-विश्व हमलावर की नकल और अनुकरण करने के लिए सशक्त बनाती है।
विस्तृत ट्यूटोरियल के लिए यह ब्लॉग पोस्ट देखें।
योगदान मार्गदर्शिका (चैनल विकसित करने के तरीके पर ट्यूटोरियल) के लिए, यह पृष्ठ देखें।
| सेवा | योगदानकर्ता |
|---|---|
| MSSQL | @checkymander |
| UNC Share File | |
| LDAP | |
| Printer Jobs |
C3 में सबसे अधिक उपयोग किए जाने वाले शब्द:
Relays - C3 नेटवर्क के स्वतंत्र घटक। वे Interfaces का उपयोग करके संचार करते हैं। Relays दो प्रकार के होते हैं: Gate Relays (या Gateways) और Node Relays।Gateway - एक विशेष Relay जो एक C3 नेटवर्क को नियंत्रित करता है। एक C3 नेटवर्क एक कार्यशील Gateway के बिना काम नहीं कर सकता। Gateway Node Relays से हमलावर के इंफ्रास्ट्रक्चर तक वापसी का पुल है। यह तृतीय-पक्ष C2 सर्वर (जैसे Cobalt Strike's Teamserver) से संचार करने के लिए भी जिम्मेदार है। Gateways को हमेशा हमलावर-नियंत्रित इंफ्रास्ट्रक्चर में होस्ट किया जाना चाहिए।Node Relay - एक निष्पादन योग्य (executable) जिसे समझौता किए गए होस्ट पर चलाया जाता है। के माध्यम से या तो एक-दूसरे से या वापस से संचार करते हैं।C3 को संकलित करने के लिए आवश्यक पैकेज स्थापित करने हेतु Visual Studio पर्यावरण में निम्नलिखित व्यक्तिगत घटकों को जोड़ा जाना चाहिए। यह VS setup.exe (जैसे "c:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe") का उपयोग करके, Modify का चयन करके और निम्नलिखित व्यक्तिगत घटकों को जोड़कर प्राप्त किया जा सकता है:
इन घटकों के इंस्टॉल हो जाने के बाद Visual Studio डेवलपर कमांड प्रॉम्प्ट लॉन्च करें और CreateBuild.bat फ़ाइल चलाएँ। आउटपुट Builds निर्देशिका में मौजूद होना चाहिए।
| चैनल नाम | योगदानकर्ता |
|---|
| Mattermost | @mariuszbit |
| Asana | @tvgdb2 |
| GitHub | @sunn_y_k |
| Dropbox | @adm1nPanda |
| Cisco WebEx Teams | @tvgdb2 |
| JIRA | |
| Discord | |
| GoogleDrive | |
| Slack | |
| EWS Tasks | |
| OneDrive 365 Rest File (non functional) | |
| OneDrive 365 Rest Task (non functional) |
Node RelaysDevicesGatewayInterface - C3 नेटवर्क के भीतर डेटा भेजने और प्राप्त करने की सुविधा प्रदान करने वाली किसी भी चीज़ को दिया गया एक उच्च-स्तरीय नाम। वे हमेशा किसी Relay से जुड़े होते हैं और उनका उद्देश्य Relay की क्षमता का विस्तार करना होता है। वर्तमान में तीन प्रकार के Interfaces हैं: Channels, Peripherals और Connectors।Devices - Channels और Peripherals के लिए सामान्य नाम। यह अमूर्तता उन Interfaces को सामान्यीकृत करने के लिए बनाई गई है जिन्हें Node Relays पर उपयोग किया जा सकता है।Channel - दो Relays के बीच डेटा परिवहन के लिए उपयोग किया जाने वाला एक Interface। Channels जोड़े में काम करते हैं और एक-से-अनेक (one-to-many) संचरण का समर्थन नहीं करते (देखें Negotiation Channels)।Negotiation Channel - एक विशेष Channel जो कई Relays के साथ नियमित Channel कनेक्शन स्थापित करने में सक्षम है। negotiation प्रक्रिया पूरी तरह से स्वचालित है। Negotiation Channels केवल negotiation प्रोटोकॉल का समर्थन करते हैं और किसी अन्य संचरण में उपयोग नहीं किए जा सकते।Gateway Return Channel (GRC) - कॉन्फ़िगर किया गया Channel जिसका उपयोग एक Relay डेटा वापस Gateway को भेजने के लिए करेगा। GRC किसी अन्य Relay के माध्यम से एक मार्ग हो सकता है। Node Relay पर पहला Channel (प्रारंभिक) स्वचालित रूप से उस Node Relay के लिए GRC के रूप में सेट होता है।C3 Minimal MTU - डेटा का न्यूनतम हिस्सा जिसे हर C3 चैनल भेजने में सक्षम होना आवश्यक है। वर्तमान में C3 Minimal MTU 64 बाइट्स के बराबर है। जब तक 64 बाइट्स से छोटे चंक में पूरा पैकेट न हो, रिसीवर रिले उसे अनदेखा करता है और भेजने वाला रिले डेटा का अंतिम भाग दोबारा भेजने का प्रयास करता है।Peripherals - कमांड एंड कंट्रोल फ्रेमवर्क का एक तृतीय-पक्ष इम्प्लांट। Peripherals अपने मूल नियंत्रकों से Controller के माध्यम से बात करते हैं। उदाहरण के लिए, Cobalt Strike का SMB beacon।Connectors - किसी तृतीय-पक्ष कमांड एंड कंट्रोल फ्रेमवर्क के साथ एक एकीकरण। उदाहरण के लिए, Cobalt Strike के Teamserver द्वारा externalc2_start कमांड के माध्यम से उजागर किया गया 'External C2' इंटरफ़ेस।Binders - Peripherals और Connectors के लिए सामान्य नाम।Device ID - एक गतिशील ID जो किसी Relay पर एक Device को विशिष्ट रूप से संबोधित करता है।Agent ID - एक गतिशील ID जो एक Node Relay को विशिष्ट रूप से संबोधित करता है। एक ही executable से इंस्टैंशिएट किए गए Node Relays के अलग-अलग Agent IDs होंगे।Build ID - एक स्थिर ID जो हर Relay में निर्मित होता है। रिबूट के बाद भी अपरिवर्तित रहता है।Route ID - एक Agent ID और एक Device ID की जोड़ी। किसी Node Relay के लिए एक "पथ" का वर्णन करने के लिए उपयोग किया जाता है (Node Relays कई Routes के माध्यम से पहुंच योग्य हो सकते हैं)।Route - एक Node Relay तक एक "पथ"। हर Relay अपने सभी चाइल्ड Relays (और नाती-पोते, आदि) की एक तालिका रखता है, साथ ही उस विशेष Relay तक पहुंचने के लिए उपयोग किए जाने वाले Channel Device IDs के साथ (देखें Route ID)। जब Gateway से एक पैकेट किसी Node Relay पर आता है, तो रूटिंग टेबल का उपयोग प्राप्तकर्ता को पैकेट भेजने के लिए उपयुक्त Channel चुनने के लिए किया जाता है।Update Delay Jitter - किसी Interface के क्रमिक अपडेट के बीच का विलंब (Channels के मामले में - OnReceiveFromChannel विधि के कॉल)। इसे प्रदान की गई समय सीमा में यादृच्छिक करने के लिए सेट किया जा सकता है।