# Mythic

What is Mythic?

Mythic एक ओपन-सोर्स, मॉड्यूलर कमांड और कंट्रोल (C2) फ्रेमवर्क है जिसे रेड टीमिंग के लिए डिज़ाइन किया गया है। यह सुरक्षा पेशेवरों को विभिन्न एजेंटों (पेलोड) को विभिन्न ऑपरेटिंग सिस्टम, जैसे Windows, Linux, और macOS पर प्रबंधित और तैनात करने की अनुमति देता है। Mythic एजेंटों को प्रबंधित करने, कमांड निष्पादित करने, और परिणाम एकत्र करने के लिए एक उपयोगकर्ता-अनुकूल वेब इंटरफेस प्रदान करता है, जिससे यह नियंत्रित वातावरण में वास्तविक दुनिया के हमलों का अनुकरण करने के लिए एक शक्तिशाली उपकरण बनता है।

Installation

Mythic को स्थापित करने के लिए, आधिकारिक Mythic repo पर दिए गए निर्देशों का पालन करें।

Agents

Mythic कई एजेंटों का समर्थन करता है, जो वे पेलोड हैं जो समझौता किए गए सिस्टम पर कार्य करते हैं। प्रत्येक एजेंट को विशिष्ट आवश्यकताओं के अनुसार अनुकूलित किया जा सकता है और यह विभिन्न ऑपरेटिंग सिस्टम पर चल सकता है।

डिफ़ॉल्ट रूप से Mythic में कोई एजेंट स्थापित नहीं है। हालाँकि, यह https://github.com/MythicAgents में कुछ ओपन-सोर्स एजेंट प्रदान करता है।

उस रिपॉजिटरी से एजेंट स्थापित करने के लिए, आपको बस यह चलाना है:

bash
sudo ./mythic-cli install github https://github.com/MythicAgents/<agent-name>
sudo ./mythic-cli install github https://github.com/MythicAgents/apfell

आप पिछले कमांड के साथ नए एजेंट जोड़ सकते हैं भले ही Mythic पहले से चल रहा हो।

C2 प्रोफाइल

Mythic में C2 प्रोफाइल एजेंट्स के Mythic सर्वर के साथ संवाद करने के तरीके को परिभाषित करते हैं। वे संचार प्रोटोकॉल, एन्क्रिप्शन विधियाँ, और अन्य सेटिंग्स निर्दिष्ट करते हैं। आप Mythic वेब इंटरफेस के माध्यम से C2 प्रोफाइल बना और प्रबंधित कर सकते हैं।

डिफ़ॉल्ट रूप से Mythic बिना किसी प्रोफाइल के स्थापित होता है, हालाँकि, आप कुछ प्रोफाइल को repo https://github.com/MythicC2Profiles से डाउनलोड कर सकते हैं:

bash
sudo ./mythic-cli install github https://github.com/MythicC2Profiles/<c2-profile>>
sudo ./mythic-cli install github https://github.com/MythicC2Profiles/http

Apollo Agent

Apollo एक Windows एजेंट है जो C# में लिखा गया है, 4.0 .NET Framework का उपयोग करते हुए, जिसे SpecterOps प्रशिक्षण प्रस्तावों में उपयोग के लिए डिज़ाइन किया गया है।

इसे स्थापित करें:

bash
./mythic-cli install github https://github.com/MythicAgents/Apollo.git

इस एजेंट में कई कमांड हैं जो इसे Cobalt Strike के Beacon के बहुत समान बनाते हैं, कुछ अतिरिक्त के साथ। इनमें से, यह समर्थन करता है:

सामान्य क्रियाएँ

  • cat: एक फ़ाइल की सामग्री प्रिंट करें
  • cd: वर्तमान कार्यशील निर्देशिका बदलें
  • cp: एक स्थान से दूसरे स्थान पर फ़ाइल कॉपी करें
  • ls: वर्तमान निर्देशिका या निर्दिष्ट पथ में फ़ाइलों और निर्देशिकाओं की सूची बनाएं
  • pwd: वर्तमान कार्यशील निर्देशिका प्रिंट करें
  • ps: लक्षित प्रणाली पर चल रहे प्रक्रियाओं की सूची बनाएं (जोड़ी गई जानकारी के साथ)
  • download: लक्षित प्रणाली से स्थानीय मशीन पर फ़ाइल डाउनलोड करें
  • upload: स्थानीय मशीन से लक्षित प्रणाली पर फ़ाइल अपलोड करें
  • reg_query: लक्षित प्रणाली पर रजिस्ट्री कुंजी और मानों को क्वेरी करें
  • reg_write_value: निर्दिष्ट रजिस्ट्री कुंजी में एक नया मान लिखें
  • sleep: एजेंट के सोने के अंतराल को बदलें, जो यह निर्धारित करता है कि यह Mythic सर्वर के साथ कितनी बार चेक करता है
  • और कई अन्य, उपलब्ध कमांड की पूरी सूची देखने के लिए help का उपयोग करें।

विशेषाधिकार वृद्धि

  • getprivs: वर्तमान थ्रेड टोकन पर जितने संभव हो सके विशेषाधिकार सक्षम करें
  • getsystem: winlogon के लिए एक हैंडल खोलें और टोकन को डुप्लिकेट करें, प्रभावी रूप से विशेषाधिकारों को SYSTEM स्तर पर बढ़ाना
  • make_token: एक नया लॉगिन सत्र बनाएं और इसे एजेंट पर लागू करें, जिससे किसी अन्य उपयोगकर्ता का अनुकरण करना संभव हो सके
  • steal_token: किसी अन्य प्रक्रिया से एक प्राथमिक टोकन चुराएं, जिससे एजेंट उस प्रक्रिया के उपयोगकर्ता का अनुकरण कर सके
  • pth: Pass-the-Hash हमला, जिससे एजेंट NTLM हैश का उपयोग करके एक उपयोगकर्ता के रूप में प्रमाणित हो सकता है बिना स्पष्ट पासवर्ड की आवश्यकता के
  • mimikatz: Mimikatz कमांड चलाएं ताकि मेमोरी या SAM डेटाबेस से क्रेडेंशियल्स, हैश और अन्य संवेदनशील जानकारी निकाली जा सके
  • rev2self: एजेंट के टोकन को इसके प्राथमिक टोकन पर वापस लाएं, प्रभावी रूप से विशेषाधिकारों को मूल स्तर पर वापस लाना
  • ppid: पोस्ट-एक्सप्लॉइटेशन नौकरियों के लिए नए माता-पिता प्रक्रिया आईडी को निर्दिष्ट करके माता-पिता प्रक्रिया बदलें, जिससे नौकरी निष्पादन संदर्भ पर बेहतर नियंत्रण प्राप्त हो सके
  • printspoofer: प्रिंट स्पूलर सुरक्षा उपायों को बायपास करने के लिए PrintSpoofer कमांड चलाएं, जिससे विशेषाधिकार वृद्धि या कोड निष्पादन संभव हो सके
  • dcsync: एक उपयोगकर्ता के Kerberos कुंजियों को स्थानीय मशीन पर सिंक करें, जिससे ऑफ़लाइन पासवर्ड क्रैकिंग या आगे के हमले संभव हो सकें
  • ticket_cache_add: वर्तमान लॉगिन सत्र या निर्दिष्ट एक में एक Kerberos टिकट जोड़ें, जिससे टिकट पुन: उपयोग या अनुकरण संभव हो सके

प्रक्रिया निष्पादन

  • assembly_inject: एक दूरस्थ प्रक्रिया में .NET असेंबली लोडर इंजेक्ट करने की अनुमति देता है
  • execute_assembly: एजेंट के संदर्भ में .NET असेंबली निष्पादित करता है
  • execute_coff: मेमोरी में COFF फ़ाइल निष्पादित करता है, जिससे संकलित कोड का इन-मेमोरी निष्पादन संभव हो सके
  • execute_pe: एक unmanaged executable (PE) निष्पादित करता है
  • inline_assembly: एक अस्थायी AppDomain में .NET असेंबली निष्पादित करता है, जिससे एजेंट की मुख्य प्रक्रिया को प्रभावित किए बिना कोड का अस्थायी निष्पादन संभव हो सके
  • run: लक्षित प्रणाली पर एक बाइनरी निष्पादित करता है, सिस्टम के PATH का उपयोग करके निष्पादन योग्य फ़ाइल खोजता है
  • shinject: एक दूरस्थ प्रक्रिया में शेलकोड इंजेक्ट करता है, जिससे मनमाने कोड का इन-मेमोरी निष्पादन संभव हो सके
  • inject: एक दूरस्थ प्रक्रिया में एजेंट शेलकोड इंजेक्ट करता है, जिससे एजेंट के कोड का इन-मेमोरी निष्पादन संभव हो सके
  • spawn: निर्दिष्ट निष्पादन योग्य में एक नया एजेंट सत्र उत्पन्न करता है, जिससे एक नए प्रक्रिया में शेलकोड का निष्पादन संभव हो सके
  • spawnto_x64 और spawnto_x86: पोस्ट-एक्सप्लॉइटेशन नौकरियों में उपयोग किए जाने वाले डिफ़ॉल्ट बाइनरी को निर्दिष्ट पथ में बदलें, बजाय इसके कि rundll32.exe का उपयोग बिना पैरामीटर के किया जाए, जो बहुत शोर करता है।

Mithic Forge

यह COFF/BOF फ़ाइलों को Mythic Forge से लोड करने की अनुमति देता है, जो लक्षित प्रणाली पर निष्पादित किए जा सकने वाले पूर्व-संकलित पेलोड और उपकरणों का एक भंडार है। सभी कमांड के साथ जो लोड किए जा सकते हैं, यह सामान्य क्रियाएँ करने के लिए संभव होगा, उन्हें वर्तमान एजेंट प्रक्रिया में BOFs के रूप में निष्पादित करना (अधिक छिपा हुआ आमतौर पर)।

इन्हें स्थापित करना शुरू करें:

bash
./mythic-cli install github https://github.com/MythicAgents/forge.git

फिर, forge_collections का उपयोग Mythic Forge से COFF/BOF मॉड्यूल दिखाने के लिए करें ताकि उन्हें एजेंट की मेमोरी में चयनित और लोड किया जा सके। डिफ़ॉल्ट रूप से, Apollo में निम्नलिखित 2 संग्रह जोड़े गए हैं:

  • forge_collections {"collectionName":"SharpCollection"}
  • forge_collections {"collectionName":"SliverArmory"}

एक बार जब एक मॉड्यूल लोड हो जाता है, तो यह सूची में एक अन्य कमांड के रूप में दिखाई देगा जैसे forge_bof_sa-whoami या forge_bof_sa-netuser

Powershell & स्क्रिप्टिंग निष्पादन

  • powershell_import: एजेंट कैश में एक नया PowerShell स्क्रिप्ट (.ps1) आयात करता है ताकि बाद में निष्पादित किया जा सके
  • powershell: एजेंट के संदर्भ में एक PowerShell कमांड निष्पादित करता है, उन्नत स्क्रिप्टिंग और स्वचालन की अनुमति देता है
  • powerpick: एक बलिदान प्रक्रिया में PowerShell लोडर असेंबली इंजेक्ट करता है और एक PowerShell कमांड निष्पादित करता है (बिना PowerShell लॉगिंग के)।
  • psinject: एक निर्दिष्ट प्रक्रिया में PowerShell निष्पादित करता है, जिससे किसी अन्य प्रक्रिया के संदर्भ में स्क्रिप्ट के लक्षित निष्पादन की अनुमति मिलती है
  • shell: एजेंट के संदर्भ में एक शेल कमांड निष्पादित करता है, cmd.exe में एक कमांड चलाने के समान

लेटरल मूवमेंट

  • jump_psexec: PsExec तकनीक का उपयोग करके एक नए होस्ट पर लेटरल मूवमेंट करता है, पहले Apollo एजेंट निष्पादन योग्य (apollo.exe) को कॉपी करके और इसे निष्पादित करके।
  • jump_wmi: WMI तकनीक का उपयोग करके एक नए होस्ट पर लेटरल मूवमेंट करता है, पहले Apollo एजेंट निष्पादन योग्य (apollo.exe) को कॉपी करके और इसे निष्पादित करके।
  • wmiexecute: WMI का उपयोग करके स्थानीय या निर्दिष्ट दूरस्थ प्रणाली पर एक कमांड निष्पादित करता है, अनुकरण के लिए वैकल्पिक क्रेडेंशियल के साथ।
  • net_dclist: निर्दिष्ट डोमेन के लिए डोमेन नियंत्रकों की एक सूची प्राप्त करता है, जो लेटरल मूवमेंट के लिए संभावित लक्ष्यों की पहचान करने में सहायक है।
  • net_localgroup: निर्दिष्ट कंप्यूटर पर स्थानीय समूहों की सूची बनाता है, यदि कोई कंप्यूटर निर्दिष्ट नहीं किया गया है तो डिफ़ॉल्ट रूप से localhost।
  • net_localgroup_member: स्थानीय या दूरस्थ कंप्यूटर पर निर्दिष्ट समूह के लिए स्थानीय समूह सदस्यता प्राप्त करता है, जिससे विशिष्ट समूहों में उपयोगकर्ताओं की गणना की जा सके।
  • net_shares: निर्दिष्ट कंप्यूटर पर दूरस्थ शेयरों और उनकी पहुंच की सूची बनाता है, जो लेटरल मूवमेंट के लिए संभावित लक्ष्यों की पहचान करने में सहायक है।
  • socks: लक्षित नेटवर्क पर SOCKS 5 अनुपालन प्रॉक्सी सक्षम करता है, जिससे समझौता किए गए होस्ट के माध्यम से ट्रैफ़िक को टनल करने की अनुमति मिलती है। प्रॉक्सीचेन जैसे उपकरणों के साथ संगत।
  • rpfwd: लक्षित होस्ट पर निर्दिष्ट पोर्ट पर सुनना शुरू करता है और ट्रैफ़िक को Mythic के माध्यम से एक दूरस्थ IP और पोर्ट पर अग्रेषित करता है, लक्षित नेटवर्क पर सेवाओं तक दूरस्थ पहुंच की अनुमति देता है।
  • listpipes: स्थानीय प्रणाली पर सभी नामित पाइपों की सूची बनाता है, जो लेटरल मूवमेंट या विशेषाधिकार वृद्धि के लिए IPC तंत्रों के साथ बातचीत करने में सहायक हो सकता है।

विविध कमांड

  • help: एजेंट में विशिष्ट कमांड या सभी उपलब्ध कमांड के बारे में सामान्य जानकारी के बारे में विस्तृत जानकारी प्रदर्शित करता है।
  • clear: कार्यों को 'स्पष्ट' के रूप में चिह्नित करता है ताकि उन्हें एजेंट द्वारा नहीं उठाया जा सके। आप सभी कार्यों को स्पष्ट करने के लिए all निर्दिष्ट कर सकते हैं या एक विशिष्ट कार्य को स्पष्ट करने के लिए task Num निर्दिष्ट कर सकते हैं।

Poseidon Agent

Poseidon एक Golang एजेंट है जो Linux और macOS निष्पादन योग्य में संकलित होता है।

bash
./mythic-cli install github https://github.com/MythicAgents/Poseidon.git

जब उपयोगकर्ता लिनक्स पर होता है, तो कुछ दिलचस्प कमांड होते हैं:

सामान्य क्रियाएँ

  • cat: एक फ़ाइल की सामग्री प्रिंट करें
  • cd: वर्तमान कार्यशील निर्देशिका बदलें
  • chmod: एक फ़ाइल की अनुमतियाँ बदलें
  • config: वर्तमान कॉन्फ़िग और होस्ट जानकारी देखें
  • cp: एक फ़ाइल को एक स्थान से दूसरे स्थान पर कॉपी करें
  • curl: वैकल्पिक हेडर और विधि के साथ एकल वेब अनुरोध निष्पादित करें
  • upload: लक्ष्य पर एक फ़ाइल अपलोड करें
  • download: लक्ष्य प्रणाली से स्थानीय मशीन पर एक फ़ाइल डाउनलोड करें
  • और भी बहुत कुछ

संवेदनशील जानकारी खोजें

  • triagedirectory: एक होस्ट पर एक निर्देशिका के भीतर दिलचस्प फ़ाइलें खोजें, जैसे संवेदनशील फ़ाइलें या क्रेडेंशियल्स।
  • getenv: सभी वर्तमान पर्यावरण चर प्राप्त करें।

पार्श्व में स्थानांतरित करें

  • ssh: निर्दिष्ट क्रेडेंशियल्स का उपयोग करके होस्ट पर SSH करें और बिना ssh उत्पन्न किए एक PTY खोलें।
  • sshauth: निर्दिष्ट होस्ट(ों) पर SSH करें, निर्दिष्ट क्रेडेंशियल्स का उपयोग करके। आप इसे SSH के माध्यम से दूरस्थ होस्ट पर एक विशिष्ट कमांड निष्पादित करने के लिए या फ़ाइलों को SCP करने के लिए भी उपयोग कर सकते हैं।
  • link_tcp: TCP के माध्यम से दूसरे एजेंट से लिंक करें, एजेंटों के बीच सीधे संचार की अनुमति देता है।
  • link_webshell: वेबशेल P2P प्रोफ़ाइल का उपयोग करके एक एजेंट से लिंक करें, एजेंट के वेब इंटरफ़ेस तक दूरस्थ पहुंच की अनुमति देता है।
  • rpfwd: एक रिवर्स पोर्ट फॉरवर्ड शुरू या बंद करें, लक्ष्य नेटवर्क पर सेवाओं तक दूरस्थ पहुंच की अनुमति देता है।
  • socks: लक्ष्य नेटवर्क पर एक SOCKS5 प्रॉक्सी शुरू या बंद करें, समझौता किए गए होस्ट के माध्यम से ट्रैफ़िक के टनलिंग की अनुमति देता है। प्रॉक्सीचेन जैसे उपकरणों के साथ संगत।
  • portscan: खुले पोर्ट के लिए होस्ट(ों) को स्कैन करें, पार्श्व आंदोलन या आगे के हमलों के लिए संभावित लक्ष्यों की पहचान करने के लिए उपयोगी।

प्रक्रिया निष्पादन

  • shell: /bin/sh के माध्यम से एकल शेल कमांड निष्पादित करें, लक्ष्य प्रणाली पर कमांड के सीधे निष्पादन की अनुमति देता है।
  • run: तर्कों के साथ डिस्क से एक कमांड निष्पादित करें, लक्ष्य प्रणाली पर बाइनरी या स्क्रिप्ट के निष्पादन की अनुमति देता है।
  • pty: एक इंटरैक्टिव PTY खोलें, लक्ष्य प्रणाली पर शेल के साथ सीधे बातचीत की अनुमति देता है।