
फाइललेस x64 असेंबली C2 फ्रेमवर्क जिसमें द्वि-चैनल ICMP/DNS प्रोटोकॉल पिवोटिंग, प्रत्यक्ष syscall निष्पादन, और ptrace-आधारित प्रोसेस इंजेक्शन शामिल हैं — गुप्त कमांड निष्पादन और डेटा एक्सफिल्ट्रेशन के लिए।
________ ___ ___ ________ ________ _________ ________ ________
|\ ____\|\ \|\ \|\ __ \|\ ____\|\___ ___\ |\ ____\|\_____ \
\ \ \___| \ \ \\\ \ \ \|\ \ \ \___|\|___ \ \_| \ \ \___|\|____|\ \
\ \ \ __ \ \ __ \ \ \\\ \ \_____ \ \ \ \ \ \ \ ____\_\ \
\ \ \|\ \ \ \ \ \ \ \\\ \|____|\ \ \ \ \ \ \ \___|\____ \ \
\ \_______\ \__\ \__\ \_______\____\_\ \ \ \__\ \ \______\\_________\
\|_______|\|__|\|__|\|_______|\_________\ \|__| \|______\|_________|
\|_________|
फ़ाइललेस, शुद्ध x64 असेंबली C2 इम्प्लांट जो डुअल-चैनल (ICMP / DNS) आर्किटेक्चर का उपयोग करता है। ज़ीरो libc। ज़ीरो डिस्क। मानक EDR हुक्स के लिए अदृश्य।
⭐️ यदि आपको यह शोध उपयोगी लगता है, तो कृपया आगे के विकास को समर्थन देने के लिए इसे स्टार देने पर विचार करें
🚨 पूर्ण तकनीकी शोध और सोर्स कोड: यह रिपॉज़िटरी एक सारांश है। संपूर्ण आर्किटेक्चरल विवरण, W^X मेमोरी एवेज़न विवरण, और VTable कार्यान्वयन के लिए, आधिकारिक प्रोजेक्ट पेज देखें: ICMP-Ghost Technical Breakdown
Ghost-C2 एक कमांड-एंड-कंट्रोल फ्रेमवर्क है जो पूरी तरह से शुद्ध x64 Linux असेंबली में लिखा गया है, जिसमें कोई libc निर्भरता नहीं है। हर ऑपरेशन सीधे syscalls के माध्यम से होता है। कोई import tables नहीं हैं, कोई dynamic linker artifacts नहीं हैं, और कोई डिस्क राइट नहीं है।
मूल रूप से एक raw ICMP स्टील्थ चैनल के रूप में निर्मित, संस्करण 3.6.2 एक डुअल-चैनल प्रोटोकॉल पाइवटिंग आर्किटेक्चर प्रस्तुत करता है। ऑपरेटर इम्प्लांट के संचार चैनल को साइलेंट ICMP Raw Sockets और एवेसिव DNS UDP टनलिंग के बीच तुरंत स्विच कर सकते हैं। इम्प्लांट पूरी तरह से RAM में रहता है, एक कस्टम ptrace-आधारित लोडर के माध्यम से एक चालू सिस्टम प्रोसेस में इंजेक्ट किया जाता है।
यह प्रोजेक्ट यह पता लगाने के लिए बनाया गया था कि कर्नेल को छुए बिना यूज़र-स्पेस स्टील्थ और नेटवर्क स्टेट सिंक्रोनाइज़ेशन कितनी दूर तक जा सकते हैं।
┌─────────────────────────────────────────────────────────────┐
│ OPERATOR MACHINE │
│ │
│ ┌──────────────┐ │
│ │ client.asm │ ← Terminal UI: Prompt IP/Domain + Cmd │
│ │ (Operator │ Encrypts payload with Rolling XOR │
│ │ Console) │ State Sync: ICMP mode / DNS mode │
│ └──────┬───────┘ │
│ │ │
└──────────┼──────────────────────────────────────────────────┘
│ Channel 1: Raw ICMP (Stateless, Port-less)
│ Channel 2: DNS UDP Port 53 (Asymmetric)
┌──────────┼──────────────────────────────────────────────────┐
│ │ TARGET MACHINE │
│ ▼ │
│ ┌──────────────┐ ┌─────────────────────────────────┐ │
│ │ loader.asm │────▶│ sniff.asm (PIC) │ │
│ │ (Phantom │ │ Lives in RAM only │ │
│ │ Loader) │ │ inside host process │ │
│ └──────────────┘ └────────────────┬────────────────┘ │
│ │ │
│ 1. Scans /proc for target PID │ Listens ICMP/DNS │
│ 2. ptrace ATTACH │ Validates Auth │
│ 3. Force remote mmap (RW) │ Decrypts command │
│ 4. Inject PIC shellcode │ fork+execve │
│ 5. mprotect → RX │ memfd_create │
│ 6. Redirect RIP → shellcode │ Compress(DPCM-RLE)│
│ 7. ptrace DETACH → exits │ Encrypt & Frag. │
│ │ Sends Reply │
└─────────────────────────────────────────┼───────────────────┘
│ Encrypted Traffic
▼
[ client.asm ]
Receives & Validates
Decrypts Payload
Decompresses (Hybrid)
Reassembles & Prints
client.asm — ऑपरेटर कंसोलहमलावर-पक्ष का टर्मिनल। UI, डायनामिक मेमोरी प्रबंधन, और टारगेट स्टेट सिंक्रोनाइज़ेशन को संभालता है। पैकेट्स को ICMP Echo Requests या DNS TXT क्वेरीज़ के रूप में भेज सकता है। फ्रैगमेंटेड रिप्लाई सुनता है, बफर ओवरफ्लो को रोकता है, और आउटपुट को पुनर्निर्मित करता है। अनाथ सत्रों को बचाने के लिए एक "सक्रिय टारगेट पुनःकनेक्शन" मॉड्यूल शामिल है।
sniff.asm — PIC इम्प्लांट एजेंटटारगेट पर चलने वाला इम्प्लांट। एक raw बाइनरी के रूप में कंपाइल किया गया (पोज़ीशन-इंडिपेंडेंट, कोई ELF हेडर नहीं) ताकि इसे किसी भी मेमोरी एड्रेस में इंजेक्ट किया जा सके। यह ऑपरेटर पाइवट कमांड्स के आधार पर ICMP स्निफिंग और UDP DNS बाइंडिंग के बीच स्विच करने के लिए अपने आंतरिक VTable को डायनामिक रूप से अपडेट करता है।
Phantom_Loader/loader.asm — इंजेक्शन इंजनडिलीवरी तंत्र। /proc को स्कैन करता है, comm नाम से टारगेट प्रोसेस खोजता है, और मल्टी-स्टेज ptrace स्टेट मशीन का उपयोग करके उसमें PIC शेलकोड इंजेक्ट करता है। इंजेक्शन के बाद साफ-सुथरा बाहर निकलता है — कोई निशान नहीं छोड़ता।
Ghost-C2 v3.6.2 ऑपरेटर को एजेंट को खोए बिना नेटवर्क प्रोटोकॉल को हॉट-स्वैप करने की अनुमति देता है। विशिष्ट पाइवट कमांड भेजकर, मास्टर और एजेंट दोनों में VTables डायनामिक रूप से ओवरराइट हो जाते हैं:
!D (DNS पर पाइवट): दोनों नोड ICMP सॉकेट बंद कर देते हैं और UDP पोर्ट 53 संचार आरंभ करते हैं। कॉर्पोरेट DNS ट्रैफ़िक में घुलमिल कर सख्त Layer 3 फ़िल्टरिंग को बायपास करने के लिए आदर्श।!I (ICMP पर पाइवट): एजेंट UDP सॉकेट बंद कर देता है, पोर्ट बाइंडिंग समाप्त कर देता है, और साइलेंट Raw Socket स्निफिंग में वापस आ जाता है। "Phantom" स्टील्थ मोड के लिए एकदम सही।Ghost-C2 का डेटा ट्रांसमिशन इंजन x86-64 असेंबली में अत्यधिक अनुकूलित एक हाइब्रिड कंप्रेशन और एन्कोडिंग परत का उपयोग करता है।
हर आउटगोइंग ICMP पैकेट इस तरह संरचित होता है कि वह मानक Linux ping से अप्रभेद्य हो:
struct timeval की नकल करते हैं।iputils पैडिंग (0x10 से 0x1F) बुनियादी ह्यूरिस्टिक फ़ायरवॉल को बायपास करती है।