
emp3r0r v4.15.0
स्व-उपचार गॉसिप मेश C2 सहायता प्राप्त पीयर डिस्कवरी, क्रॉस-प्लेटफॉर्म BOF निष्पादन, और स्क्रिप्टेबल एजेंट्स के साथ।
emp3r0r
Linux और Windows के लिए एक स्व-उपचारकारी, केवल-मेमोरी C2 — ऐसे एजेंट जो टूटे हुए लिंक से बच जाते हैं, कभी डिस्क को नहीं छूते, और Win32 API के माध्यम से अपना रास्ता स्क्रिप्ट करते हैं।
emp3r0r क्या है?
emp3r0r एक post-exploitation फ्रेमवर्क और C2 है जो Linux और Windows वातावरणों के लिए बनाया गया है जहाँ स्टील्थ और लचीलापन वैकल्पिक नहीं हैं। एक सर्वर से विश्वसनीय कनेक्शन मानने के बजाय, एजेंट एक स्व-उपचारकारी मेश बनाते हैं जो लिंक टूटने पर भी काम करता रहता है। टारगेट से Python या PowerShell मांगने के बजाय, वे सब कुछ मेमोरी में निष्पादित करते हैं। और आपको एक प्लेटफ़ॉर्म की तरकीबों तक सीमित करने के बजाय, emp3r0r Windows BOFs, Linux objects, और Starlark स्क्रिप्ट चलाता है — सब फ़ाइललेस, सब इन-प्रोसेस।
मुख्य विशेषताएँ और अनूठी सुविधाएँ
🐍 स्क्रिप्टेबल एजेंट (एम्बेडेड Starlark इंजन और Win32 API प्रॉक्सी)
प्रत्येक एजेंट अपना स्क्रिप्टिंग इंजन लेकर चलता है, ताकि आप बिना कंपाइल किए या बाइनरी भेजे नया post-exploitation लॉजिक जोड़ सकें।
- स्क्रिप्ट पूरी तरह मेमोरी में चलती हैं — टारगेट पर Python, Bash, या PowerShell की आवश्यकता नहीं, और कोई कमांड इंटरप्रेटर स्पॉन नहीं होता।
- बिल्ट-इन APIs का एक पूरा सेट फ़ाइल I/O, HTTP, कमांड निष्पादन, और बहुत कुछ सीधे स्क्रिप्ट कोड से कवर करता है।
- Windows पर, स्क्रिप्ट सीधे नेटिव Win32 फ़ंक्शन कॉल कर सकती हैं — एजेंट सीधे सिस्टम DLLs में प्रॉक्सी करता है।
- मॉड्यूल सादे Starlark फ़ाइलें हैं जिनमें एक छोटा JSON मैनिफ़ेस्ट होता है, इसलिए अपना खुद का जोड़ना आसान और फ़ाइललेस है।
यह क्यों मायने रखता है: एजेंट कार्यक्षमता लिखना और बढ़ाना एक स्क्रिप्ट संपादित करने जितना सरल हो जाता है, बिना टारगेट पर इंटरप्रेटर या नई बाइनरी छोड़ने के।
🔐 TOFU क्रिप्टोग्राफ़िक पहचान पिनिंग
एजेंट पहली बार आपसे बात करते समय अपनी पहचान एक क्रिप्टोग्राफ़िक कुंजी से बांधते हैं — और वह बंधन कभी नहीं बदलता।
- अलग क्रेडेंशियल्स के साथ पुनः-नामांकन को एक धोखेबाज़ माना जाता है और अस्वीकार कर दिया जाता है।
- किसी एजेंट को हटाना एक स्पष्ट ऑपरेटर निर्णय है, ऐसा नहीं जो चोरी हुई कुंजी चुपचाप कर सके।
यह क्यों मायने रखता है: सेशन हाईजैकिंग और एजेंट क्लोनिंग बस नहीं होती; हर एजेंट जिससे आप बात करते हैं वही है जिसे आपने नामांकित किया।
🔒 परफेक्ट फ़ॉरवर्ड सीक्रेसी (PFS)
प्रत्येक C2 और पीयर लिंक सेशन-व्युत्पन्न एन्क्रिप्शन कुंजियों के साथ अल्पकालिक ECDH कुंजियों का उपयोग करता है।
यह क्यों मायने रखता है: भले ही कोई दीर्घकालिक कुंजी बाद में समझौता हो जाए, इसका उपयोग उस ट्रैफ़िक को डिक्रिप्ट करने के लिए नहीं किया जा सकता जो पहले ही गुज़र चुका है।
🕸️ स्वायत्त P2P गॉसिप मेश नेटवर्क
एजेंट एक-दूसरे को खोजते हैं और गॉसिप मेश के माध्यम से ट्रैफ़िक रिले करते हैं, ताकि एक लिंक या एक सर्वर गायब होने पर ऑपरेशन ध्वस्त न हो।
- पीयर कैमोफ्लाज mTLS 1.3 या विश्वसनीय UDP (KCP) पर जुड़ते हैं, हर हॉप एन्क्रिप्टेड।
- ट्रैफ़िक मृत रिले के चारों ओर स्वचालित रूप से रूट होता है — ऑपरेशन के बीच में मैन्युअल प्रॉक्सी सर्जरी नहीं।
- जिन सेगमेंट्स की सीधी C2 पहुँच नहीं है, वे भी अपने पड़ोसियों के माध्यम से पहुँच योग्य रहते हैं।
यह क्यों मायने रखता है: नेटवर्क आपके लिए पिवटिंग करता है। एक लिंक काटें, एक बॉक्स खोएँ, या C2 को ब्लॉक करें — एजेंट स्वयं पुनः-रूट कर लेते हैं।
📂 P2P फ़ाइलसिस्टम
फ़ाइलें सीधे एजेंट्स के बीच चलती हैं, न कि केवल C2 के माध्यम से।
- ट्रांसफ़र एन्क्रिप्टेड पीयर-टू-पीयर टनल पर चलते हैं, इसलिए आंतरिक नेटवर्क आपके सर्वर पर बाधा नहीं बनते।
- फ़ाइलें एजेंट मेमोरी में एन्क्रिप्टेड ब्लॉब्स के रूप में कैश होती हैं और मांग पर पीयर्स को दी जाती हैं।
- यदि किसी पीयर के पास फ़ाइल नहीं है, तो एजेंट इसे स्वचालित रूप से C2 से प्राप्त करता है।
यह क्यों मायने रखता है: डिलीवरी तेज़ है और अधिकतर C2 चैनल के लिए अदृश्य — egress-प्रतिबंधित वातावरणों के लिए आदर्श।
📡 मल्टी-प्रोटोकॉल लिसनर और प्लगेबल स्टेजर
एजेंट को अंदर लाना उतनी ही गंभीरता से लिया जाता है जितना उसे जीवित रखना।
- HTTP, TCP, और UDP लिसनर विश्वसनीय फ़्रेमिंग और अनुकूलन योग्य HTTP प्रोफ़ाइल के साथ।
- सीधे Linux syscalls पर बना लगभग 2KB का स्टेजर — टारगेट पर कोई libc नहीं, कोई टूलचेन नहीं।
- प्लगेबल स्टेजर ट्रांसपोर्ट और स्व-अनपैकिंग पैकर आपको प्रारंभिक पहुँच को उस चैनल में मिलाने देते हैं जो आपका टारगेट अनुमति देता है, और साथ ही स्टैटिक सिग्नेचर मिलान को हराते हैं।
- स्टेज और एजेंट कोड read/write/execute अनुशासन का पालन करते हैं — कभी RWX नहीं।
यह क्यों मायने रखता है: छोटी, अनुकूलनीय, और मेमोरी-स्वच्छ प्रारंभिक पहुँच का मतलब है कि आप उन होस्ट्स पर उतर सकते हैं जो अन्यथा पहुँच से बाहर होते।
🧩 नेटिव क्रॉस-प्लेटफ़ॉर्म BOF और PICO समर्थन (COFF, ELF और PICO)
किसी भी प्लेटफ़ॉर्म पर कंपाइल किए गए C मॉड्यूल इन-प्रोसेस चलाएँ:
- Windows COFF/BOF बाइनरी टाइप्ड आर्ग्युमेंट पैकिंग के साथ।
- Linux ELF रीलोकेटेबल ऑब्जेक्ट सीधे एजेंट मेमोरी में लोड होते हैं।
- Crystal-Kit PICO मॉड्यूल SilentMoonwalk कॉलस्टैक स्पूफ़िंग के साथ।
- Kerbeus-BOF, Remote-OPs, और एक Situational Awareness सूट उपयोग के लिए तैयार आते हैं।
यह क्यों मायने रखता है: BOFs उतने ही अच्छे होते हैं जितना उनका लोडर — emp3r0r उन्हें इन-प्रोसेस चलाता है, बिना नए प्रोसेस और बिना पीछे कोई निशान छोड़े, Linux और Windows दोनों पर।
🧬 इन-मेमोरी लाइब्रेरी लोडर (memmod)
नेटिव लाइब्रेरी एजेंट के अपने एड्रेस स्पेस में मैप होती हैं और वहीं कॉल होती हैं — कोई LoadLibrary नहीं, कोई dlopen नहीं, कोई फ़ाइल कभी डिस्क पर नहीं पहुँचती।
memmodWindows पर PE DLLs और Linux पर ELF.soलोड करता है, रीलोकेशन, इम्पोर्ट, और एक्सपोर्ट कॉल्स को इन-प्रोसेस संभालता है।- यह सिद्ध अपस्ट्रीम कार्य पर बनाया गया है: WireGuard का
memmodPE लोडर और Sliver C2 / sliverarmory/reflektor ELF लोडर और कॉल मशीनरी। memdepsइसके ऊपर बैठता है: एक घोषित निर्भरता एन्क्रिप्टेड memfs/C2 से हल होती है, केवल उस ऑपरेशन के लिए मैप की जाती है जिसे इसकी आवश्यकता होती है, और वापसी पर अनमैप कर दी जाती है।
यह क्यों मायने रखता है: एजेंट को नेटिव कोड से बढ़ाने के लिए नई बाइनरी, लोडर सेवा, या डिस्क पर फ़ाइल की आवश्यकता नहीं होती।
🐧 Linux मॉड्यूल और eBPF
Linux मॉड्यूल Starlark स्क्रिप्ट हैं जो कर्नेल तक पहुँच सकती हैं। एजेंट मांग पर libbpf मैप करता है और इसकी API को स्क्रिप्ट्स के लिए Go-बैक्ड बिल्टिन्स के रूप में उजागर करता है, ताकि एक मॉड्यूल बिना कंपाइलर और बिना चाइल्ड प्रोसेस के eBPF ऑब्जेक्ट्स को एन्यूमरेट, अटैच, और टियर-डाउन कर सके।
- बिल्टिन्स libbpf को दर्शाते हैं:
ebpf_progs,ebpf_maps,ebpf_links,ebpf_detach,ebpf_map_wipe,ebpf_code_offset, और दीर्घजीवीebpf_uprobe_start/ebpf_uprobe_stop। ssh_harvestकार्यशील उदाहरण है: यहsshdमें एक पैटर्न का पता लगाता है, एक दीर्घजीवी uprobe अटैच करता है, कैप्चर किए गए क्रेडेंशियल्स को लाइव स्ट्रीम करता है, और--disableतक इसे बनाए रखता है — कोई ptrace नहीं, कोई ब्रेकपॉइंट नहीं, कोई डिस्क नहीं।- libbpf एकमात्र विकल्प नहीं है: वही ऑन-डिमांड लोडर किसी भी
.soको संभालता है जिसे कोई मॉड्यूल घोषित या आपूर्ति करता है, और स्क्रिप्ट्सmem_load_libraryके साथ सीधे बाइट्स मैप कर सकती हैं।