
emp3r0r v4.7.0
स्व-उपचार गॉसिप मेश C2 सहायता प्राप्त पीयर डिस्कवरी, क्रॉस-प्लेटफॉर्म BOF निष्पादन, और स्क्रिप्टेबल एजेंट्स के साथ।
emp3r0r
स्व-उपचार गॉसिप मेश C2, जिसमें सहायक पीयर डिस्कवरी, क्रॉस-प्लेटफ़ॉर्म BOF निष्पादन और स्क्रिप्टेबल एजेंट शामिल हैं।
emp3r0r क्या है?
emp3r0r एक उन्नत, ज़ीरो-ट्रस्ट पोस्ट-एक्सप्लॉइटेशन फ्रेमवर्क और कमांड एंड कंट्रोल (C2) प्रणाली है, जिसे Linux और Windows लक्ष्य वातावरण के लिए डिज़ाइन किया गया है। उच्च-सुरक्षा वातावरण में संचालन के लिए ज़मीन से निर्मित, emp3r0r स्वायत्त गॉसिप मेश नेटवर्किंग, फाइललेस मेमोरी-ओनली निष्पादन, क्रॉस-प्लेटफ़ॉर्म BOF लोडिंग, इंटर-एजेंट फ़ाइल ट्रांसफर और इन-मेमोरी स्क्रिप्टेबल एजेंट को संयोजित करता है, ताकि बेहतर स्टील्थ, परिचालन नियंत्रण और परिचालन सुरक्षा (OPSEC) प्रदान की जा सके।
मुख्य आकर्षण और अद्वितीय विशेषताएँ
🐍 स्क्रिप्टेबल एजेंट (एम्बेडेड Starlark इंजन और Win32 API प्रॉक्सी)
emp3r0r एजेंटों में एक एम्बेडेड Starlark स्क्रिप्टिंग इंजन (एक Python डायलेक्ट जो पूर्ण रूप से Go में लागू किया गया है) शामिल है। स्क्रिप्ट्स बिना लक्ष्य पर Python, Bash या PowerShell स्थापित किए, फाइललेस रूप से मेमोरी में निष्पादित होती हैं।
- ज़ीरो होस्ट निर्भरताएँ: कमांड इंटरप्रेटर (
/bin/sh,powershell.exe) स्पॉन किए बिना या स्थापित रनटाइम पर निर्भर हुए बिना स्टैंडअलोन स्क्रिप्ट्स निष्पादित करता है। - बिल्ट-इन एजेंट Go APIs: फ़ाइलसिस्टम संचालन (
read_file,write_file,list_dir,mkdir,remove,exists), HTTP नेटवर्किंग (http_get,http_post), कमांड निष्पादन (exec_cmd) और हैशिंग (crypto_hash) के लिए उजागर फ़ंक्शन। - डायनामिक Win32 API प्रॉक्सी: Windows लक्ष्यों पर, Starlark स्क्रिप्ट्स नेटिव C कोड संकलित किए बिना, सीधे स्क्रिप्ट कोड से सिस्टम DLLs को डायनामिक रूप से लोड कर सकती हैं और नेटिव Win32 APIs (
win_call,win_alloc,win_free,win_read_mem) निष्पादित कर सकती हैं। - मॉड्यूलर एकीकरण: Starlark स्क्रिप्ट्स को सहज CLI पैरामीटर पार्सिंग और वितरण के लिए JSON मैनिफेस्ट (
config.json) का उपयोग करके परिभाषित किया जाता है।
यह क्यों मायने रखता है: पारंपरिक C2 स्क्रिप्ट मॉड्यूल्स को होस्ट इंटरप्रेटर या प्रोसेस स्पॉनिंग की आवश्यकता होती है, जिससे डिस्क या कमांड-लाइन निष्पादन के भारी निशान रह जाते हैं। emp3r0r के स्क्रिप्टेबल एजेंट नेटिव सिस्टम इंटरैक्शन के साथ जटिल लॉजिक को पूर्ण रूप से मेमोरी में निष्पादित करते हैं।
🔐 TOFU क्रिप्टोग्राफिक पहचान पिनिंग
emp3r0r एजेंट नामांकन पर सख्त UUID और पब्लिक-की पिनिंग के साथ ट्रस्ट-ऑन-फर्स्ट-यूज़ (TOFU) लागू करता है।
- अपरिवर्तनीय बाइंडिंग: एक बार नामांकित होने के बाद, एजेंट का UUID उसकी क्रिप्टोग्राफिक पब्लिक की से पिन हो जाता है। परिवर्तित क्रेडेंशियल्स के साथ पुनः-नामांकन को प्रतिरूपण प्रयास के रूप में अस्वीकार कर दिया जाता है।
- नियंत्रित रीसेट: डी-पंजीकरण के लिए
forget_agentके माध्यम से स्पष्ट ऑपरेटर प्राधिकरण आवश्यक है।
यह क्यों मायने रखता है: सत्र अपहरण, एजेंट क्लोनिंग और परिचालन वातावरणों में मौन पहचान विचलन को रोकता है।
🔒 पूर्ण फॉरवर्ड सीक्रेसी (PFS)
सभी C2 और पीयर संचार HKDF-व्युत्पन्न सत्र कुंजियों के साथ ECDH कुंजी विनिमय लागू करते हैं।
- एफेमरल कुंजियाँ: प्रत्येक सत्र अद्वितीय एन्क्रिप्शन कुंजियाँ उत्पन्न करता है।
- पृथक सुरक्षा: दीर्घकालिक कुंजियों या किसी व्यक्तिगत एजेंट से समझौता करने पर पिछले या समानांतर संचार से समझौता नहीं किया जा सकता।
यह क्यों मायने रखता है: अवरोधित नेटवर्क कैप्चर के पूर्वव्यापी डिक्रिप्शन को रोकता है।
🕸️ स्वायत्त P2P गॉसिप मेश नेटवर्क
एग्रेस-प्रतिबंधित या पृथक नेटवर्क सेगमेंट में एजेंट स्वायत्त रूप से पीयर खोजते हैं और गॉसिप-आधारित (Memberlist) मेश नेटवर्क के माध्यम से ट्रैफिक टनल करते हैं।
- प्लगेबल पीयर ट्रांसपोर्ट: कैमोफ्लाज mTLS 1.3 (एफेमरल प्रमाणपत्रों का उपयोग करके) और KCP (विश्वसनीय UDP) के लिए समर्थन।
- एंड-टू-एंड एन्क्रिप्शन: सभी इंटर-एजेंट मेश हॉप्स AES-GCM एन्क्रिप्शन में लिपटे होते हैं।
- कम नेटवर्क फुटप्रिंट: प्रत्यक्ष एजेंट-से-एजेंट रिलेइंग अनावश्यक ब्रॉडकास्ट शोर और केंद्रीकृत C2 कनेक्शन चोकपॉइंट्स को समाप्त करती है।
यह क्यों मायने रखता है: सेगमेंटेड नेटवर्कों में पाइवोटिंग निरंतर ऑपरेटर हस्तक्षेप या स्थिर प्रॉक्सी सेटअप की आवश्यकता के बिना स्वायत्त रूप से होती है।
📂 P2P फ़ाइलसिस्टम
आंतरिक नेटवर्कों में फ़ाइल वितरण को तेज़ करने के लिए P2P रिले ट्रांसपोर्ट (mTLS/KCP) के माध्यम से सीधा एजेंट-से-एजेंट फ़ाइल साझाकरण।
- एन्क्रिप्टेड P2P टनल: एग्रेस प्रतिबंधों को बायपास करने और केंद्रीय C2 बैंडविड्थ बाधाओं को कम करने के लिए mTLS/KCP का उपयोग करके पीयर्स के बीच ट्रांसफर टनल करें।
- स्मार्ट इन-मेमोरी फ़ाइल कैशिंग: फ़ाइलें एजेंट मेमोरी में एन्क्रिप्टेड ब्लॉब्स के रूप में कैश की जाती हैं; अन्य एजेंटों द्वारा मांग पर डाउनलोड करने के लिए सहज रूप से परोसी जा सकती हैं। फ़ाइल का अनुरोध करते समय, एजेंट पहले अपने स्थानीय memfs को देखते हैं, फिर अन्य पीयर्स को, और अंत में C2 को।
- स्वचालित C2 रिले फॉलबैक: यदि किसी लक्ष्य पीयर के पास अनुरोधित फ़ाइल नहीं है, तो वह मांग पर C2 सर्वर से गतिशील रूप से उसे प्राप्त करके स्ट्रीम करता है।
यह क्यों मायने रखता है: प्रत्यक्ष एजेंट-से-एजेंट फ़ाइल साझाकरण ट्रांसफर गति को अधिकतम करता है, नेटवर्क चोकपॉइंट्स को बायपास करता है और प्रत्यक्ष C2 ट्रैफिक दृश्यता को कम करता है।
📡 मल्टी-प्रोटोकॉल लिसनर और स्टेजर
प्रारंभिक पहुंच और पेलोड वितरण के लिए लचीले स्टेज 0 डाउनलोडर स्टेजर और प्रोटोकॉल लिसनर।
- मल्टी-प्रोटोकॉल लिसनर: विश्वसनीय सीक्वेंस-एक्नॉलेजमेंट फ्रेमिंग और कस्टम HTTP प्रोफाइल के साथ एम्बेडेड और स्टैंडअलोन HTTP, TCP और UDP लिसनर।
- स्टैंडअलोन C डाउनलोडर स्टेजर: सिंबल त्रुटियों के बिना विभिन्न डिस्ट्रीब्यूशनों में संगतता के लिए प्रत्यक्ष, libc-स्वतंत्र Linux syscalls के साथ निर्मित।
- छोटा पेलोड आकार: जबकि emp3r0r एजेंट बाइनरी संपीड़न के बिना ~20MB होती हैं, यह स्टेजर 1.5KB से कम है; emp3r0r लिसनर से प्राप्त sRDI-जैसा पेलोड ~8MB का होता है (एजेंट बाइनरी से ELF शेयर्ड ऑब्जेक्ट प्रारूप में संपीड़ित)।
- लचीले प्रारूप: कच्चे पोजीशन-इंडिपेंडेंट शेलकोड (
.bin), स्टैंडअलोन ELF निष्पादनयोग्य या शेयर्ड ऑब्जेक्ट्स (.so) में संकलित होता है। - इन-मेमोरी हार्डनिंग: रीड-राइट अनुमतियों के साथ स्टेज मेमोरी आवंटित करता है, पेलोड्स को डी-ऑबफस्केट करता है और स्टेज 1 को रिफ्लेक्टिव रूप से निष्पादित करने से पहले रीड-एग्ज़िक्यूट लागू करता है।
🧩 नेटिव क्रॉस-प्लेटफ़ॉर्म BOF समर्थन (COFF और ELF)
Windows और Linux दोनों लक्ष्यों पर इन-मेमोरी बाइनरी मॉड्यूल निष्पादित करें:
- Windows COFF लोडर: टाइप्ड पैरामीटर पैकिंग (
int,short,cstr,wstr,binary) के साथ Windows BOF बाइनरी को फाइललेस रूप से चलाएं। - Linux ELF ऑब्जेक्ट लोडर: Linux पर ELF रिलोकेटेबल ऑब्जेक्ट फ़ाइलों (
.o) को सीधे एजेंट मेमोरी में लोड करें। - बंडल्ड BOF सूट: Kerbeus-BOF, Remote-OPs और सिचुएशनल अवेयरनेस (SA) मॉड्यूल संग्रहों के लिए बिल्ट-इन समर्थन।
यह क्यों मायने रखता है: संकलित C मॉड्यूल को इन-प्रोसेस चलाकर प्रोसेस निर्माण का ओवरहेड समाप्त करता है और कमांड-लाइन निगरानी को दरकिनार करता है।
🔑 ऑन-डिमांड Windows टोकन हेरफेर
Windows पर एजेंट चल रही प्रक्रियाओं से एक्सेस टोकन चुरा सकते हैं, कैश कर सकते हैं और उनका प्रतिरूपण कर सकते हैं — पूर्ण रूप से इन-प्रोसेस, अप्रत्यक्ष NT syscalls का उपयोग करके।
- चुराएँ और कैश करें:
steal_token --pid <PID>NtOpenProcess+NtDuplicateTokenके माध्यम से एक प्रक्रिया टोकन की नकल करता है और उसे SID द्वारा मेमोरी में संग्रहीत करता है। वैकल्पिक रूप से, एक चुराई गई पहचान से दूसरी में एस्केलेट करने के लिए--token <sid>के साथ प्रतिरूपण को श्रृंखलाबद्ध करें। - सूचीबद्ध करें:
list_tokensसभी कैश्ड टोकन कोDOMAIN\User (SID)नामों के साथ प्रदर्शित करता है। - यूनिवर्सल प्रतिरूपण: किसी भी मॉड्यूल — Go, Starlark, COFF/BOF — में SID (
--token <sid>) द्वारा एक कैश्ड टोकन का संदर्भ लें। संवेदनशील संचालनों के आसपास थ्रेड-स्तरीय प्रतिरूपण (NtSetInformationThread) लागू किया जाता है। - टोकन-जागरूक Starlark: बिल्टिन्स (
read_file,write_file,exec_cmd, Win32 API प्रॉक्सी, आदि) टोकन सेट होने पर प्रति-syscall स्वचालित रूप से प्रतिरूपण करते हैं, औरexec_cmdCreateProcessWithTokenWके माध्यम से चुराई गई पहचान के अंतर्गत चाइल्ड प्रोसेस स्पॉन कर सकता है।
यह क्यों मायने रखता है: कोई बाहरी टूल नहीं, कोई डिस्क आर्टिफैक्ट नहीं, कोई प्रोसेस-निर्माण शोर नहीं। टोकन चोरी और पुनः उपयोग अप्रत्यक्ष syscalls का उपयोग करके पूर्ण रूप से इन-प्रोसेस होता है, और चुराए गए टोकन प्रत्येक बिल्ट-इन मॉड्यूल द्वारा तुरंत उपयोग योग्य होते हैं।
🎭 प्लगेबल C2 ट्रांसपोर्ट, uTLS JA3 एवेज़न और CBOR प्रोटोकॉल
- प्लगेबल C2 मोड: मैलेबल HTTP प्रोफाइल के साथ लचीला बीकनिंग (
http_poll) और HTTP/2 पर स्ट्रीमिंग (h2conn)। - JA3 सिग्नेचर रैंडमाइज़ेशन: स्थिर नेटवर्क सिग्नेचर को विफल करने के लिए TLS क्लाइंट हैलो फिंगरप्रिंट्स को रैंडमाइज़ करने हेतु uTLS का उपयोग करता है।
- बाइनरी वायर प्रोटोकॉल: सभी नियंत्रण डेटा और वायर सीरियलाइज़ेशन के लिए CBOR (कन्साइज़ बाइनरी ऑब्जेक्ट रिप्रेज़ेंटेशन) का उपयोग करता है, जिससे JSON की तुलना में नेटवर्क पेलोड आकार 30-40% कम हो जाता है।
💾 एन्क्रिप्टेड मेमोरी-फर्स्ट स्टोरेज
- इन-मेमोरी एन्क्रिप्टेड वर्चुअल फ़ाइलसिस्टम: सभी एजेंट फ़ाइल संचालन एक इन-मेमोरी AES-GCM वर्चुअल फ़ाइलसिस्टम का उपयोग करते हैं। बड़ा डेटा स्वचालित रूप से पहचाने जाने योग्य हेडर या एक्सटेंशन के बिना एन्क्रिप्टेड डिस्क स्टोरेज में स्थानांतरित हो जाता है।
- P2P-संचालित स्मार्ट कैशिंग: प्रत्येक P2P-सक्षम एजेंट C2 से प्राप्त फ़ाइलों को memfs में कैश करता है; फिर उन्हें अन्य पीयर्स के लिए उपलब्ध कराता है, जिससे तेज़ इंटर-एजेंट कनेक्शन का लाभ उठाते हुए C2 ट्रैफिक फुटप्रिंट न्यूनतम होता है।
त्वरित आरंभ
1. C2 सर्वर स्थापना
emp3r0r बनाने के लिए होस्ट पर Docker या Podman आवश्यक है। किसी स्थानीय Go टूलचेन की आवश्यकता नहीं है।
# Clone repository
git clone --depth=1 https://github.com/jm33-m0/emp3r0r.git && cd emp3r0r
# Build inside a container and install locally
./install.sh
इंस्टॉलर कोर बाइनरी को एक थ्रोअवे कंटेनर के अंदर संकलित करता है, प्रीकंपाइल्ड emp3r0r-operator-kit.tar.zst उत्पन्न करता है, आवश्यक Linux क्षमताओं (setcap) को कॉन्फ़िगर करता है और सिस्टम रनटाइम निर्देशिकाएँ सेट करता है।
विकल्प:
./install.sh [--debug] [--disable-garble] [--prefix /usr/local] [--skip-build]
C2 सर्वर लॉन्च करें:
emp3r0r server --c2-hosts 1.2.3.4 --http-port 12345 --operator-port 13377
नोट: यदि मानक sudo के बजाय root उपयोगकर्ता के साथ स्थापित किया गया है, तो आपका वर्तमान उपयोगकर्ता emp3r0r लॉन्च करने में सक्षम नहीं हो सकता, क्योंकि इंस्टॉलर द्वारा अनुमतियाँ ठीक से सेट नहीं की जा सकतीं। यही बात आपकी ऑपरेटर मशीनों पर भी लागू होती है।
2. ऑपरेटर मशीन सेटअप
उत्पन्न emp3r0r-operator-kit.tar.zst को अपनी ऑपरेटर मशीन पर स्थानांतरित करें और इंस्टॉलर चलाएँ:
tar --zstd -xpf emp3r0r-operator-kit.tar.zst
cd ./emp3r0r-operator-kit && ./install.sh
सर्वर द्वारा मुद्रित WireGuard टनल क्रेडेंशियल्स का उपयोग करके ऑपरेटर क्लाइंट को C2 सर्वर से कनेक्ट करें:
emp3r0r client --c2-port 13377 \
--server-wg-key '<SERVER_WG_KEY>' \
--server-wg-ip '<SERVER_WG_IP>' \
--operator-wg-ip '<OPERATOR_WG_IP>' \
--operator-wg-key '<OPERATOR_WG_KEY>' \
--c2-host 1.2.3.4
3. एजेंट पेलोड उत्पन्न करें
पेलोड बनाने के लिए emp3r0r ऑपरेटर इंटरफ़ेस के भीतर generate कमांड का उपयोग करें।
डायरेक्ट C2 एजेंट:
generate --type linux_executable --arch amd64 --cc your.domain.com
मेश गेटवे एजेंट:
generate --type linux_executable --arch amd64 --cc your.domain.com \
--p2p --direct-c2 --p2p-transport mtls
मेश मध्यवर्ती पीयर:
generate --type linux_executable --arch amd64 --cc your.domain.com \
--p2p --p2p-transport mtls --peers 1.2.3.4
दस्तावेज़ीकरण और संसाधन
- 📝 सुरक्षा नीति: SECURITY.md
- 📜 परिवर्तन लॉग: CHANGELOG.md
- 🛠️ मॉड्यूल विकास गाइड: core/modules/module_development_guide.md
विकास का समर्थन करें
यदि emp3r0r आपके सुरक्षा अनुसंधान और परीक्षण में मूल्यवान सिद्ध हुआ है, तो GitHub Sponsors के माध्यम से इसके निरंतर विकास का समर्थन करने पर विचार करें।