# Mythic {{#include ../banners/hacktricks-training.md}} ## Mythic क्या है? Mythic एक ओपन-सोर्स, मॉड्यूलर कमांड और कंट्रोल (C2) फ्रेमवर्क है जिसे रेड टीमिंग के लिए डिज़ाइन किया गया है। यह सुरक्षा पेशेवरों को विभिन्न एजेंटों (पेलोड) को विभिन्न ऑपरेटिंग सिस्टम, जैसे Windows, Linux, और macOS पर प्रबंधित और तैनात करने की अनुमति देता है। Mythic एजेंटों को प्रबंधित करने, कमांड निष्पादित करने, और परिणाम एकत्र करने के लिए एक उपयोगकर्ता-अनुकूल वेब इंटरफेस प्रदान करता है, जिससे यह नियंत्रित वातावरण में वास्तविक दुनिया के हमलों का अनुकरण करने के लिए एक शक्तिशाली उपकरण बनता है। ### स्थापना Mythic स्थापित करने के लिए, आधिकारिक **[Mythic repo](https://github.com/its-a-feature/Mythic)** पर दिए गए निर्देशों का पालन करें। ### एजेंट Mythic कई एजेंटों का समर्थन करता है, जो **वे पेलोड हैं जो समझौता किए गए सिस्टम पर कार्य करते हैं**। प्रत्येक एजेंट को विशिष्ट आवश्यकताओं के अनुसार अनुकूलित किया जा सकता है और यह विभिन्न ऑपरेटिंग सिस्टम पर चल सकता है। डिफ़ॉल्ट रूप से Mythic में कोई एजेंट स्थापित नहीं है। हालाँकि, यह [**https://github.com/MythicAgents**](https://github.com/MythicAgents) में कुछ ओपन-सोर्स एजेंट प्रदान करता है। उस रिपॉजिटरी से एजेंट स्थापित करने के लिए, आपको बस यह चलाना होगा: ```bash sudo ./mythic-cli install github https://github.com/MythicAgents/ sudo ./mythic-cli install github https://github.com/MythicAgents/apfell ``` आप पिछले कमांड के साथ नए एजेंट जोड़ सकते हैं भले ही Mythic पहले से चल रहा हो। ### C2 प्रोफाइल Mythic में C2 प्रोफाइल **एजेंट्स के Mythic सर्वर के साथ संवाद करने के तरीके को परिभाषित करते हैं**। वे संचार प्रोटोकॉल, एन्क्रिप्शन विधियाँ, और अन्य सेटिंग्स निर्दिष्ट करते हैं। आप Mythic वेब इंटरफेस के माध्यम से C2 प्रोफाइल बना और प्रबंधित कर सकते हैं। डिफ़ॉल्ट रूप से Mythic बिना किसी प्रोफाइल के स्थापित होता है, हालाँकि, आप कुछ प्रोफाइल को repo [**https://github.com/MythicC2Profiles**](https://github.com/MythicC2Profiles) से डाउनलोड कर सकते हैं: ```bash sudo ./mythic-cli install github https://github.com/MythicC2Profiles/> sudo ./mythic-cli install github https://github.com/MythicC2Profiles/http ``` ## [Apollo Agent](https://github.com/MythicAgents/Apollo) 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](https://github.com/MythicAgents/Poseidon) 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 प्रॉक्सी शुरू या बंद करें, समझौता किए गए होस्ट के माध्यम से ट्रैफ़िक के टनलिंग की अनुमति देता है। proxychains जैसे उपकरणों के साथ संगत। - `portscan`: खुले पोर्ट के लिए होस्ट(ों) को स्कैन करें, पार्श्व आंदोलन या आगे के हमलों के लिए संभावित लक्ष्यों की पहचान करने के लिए उपयोगी। ### प्रक्रिया निष्पादन - `shell`: /bin/sh के माध्यम से एकल शेल कमांड निष्पादित करें, लक्ष्य प्रणाली पर कमांड के सीधे निष्पादन की अनुमति देता है। - `run`: तर्कों के साथ डिस्क से एक कमांड निष्पादित करें, लक्ष्य प्रणाली पर बाइनरी या स्क्रिप्ट के निष्पादन की अनुमति देता है। - `pty`: एक इंटरैक्टिव PTY खोलें, लक्ष्य प्रणाली पर शेल के साथ सीधे बातचीत की अनुमति देता है। {{#include ../banners/hacktricks-training.md}}