अपडेट पर वापस जाएँ
New releaseSep 5, 2026

emp3r0r v4.15.0

स्व-उपचार गॉसिप मेश C2 सहायता प्राप्त पीयर डिस्कवरी, क्रॉस-प्लेटफॉर्म BOF निष्पादन, और स्क्रिप्टेबल एजेंट्स के साथ।

साझा करें
emp3r0r

emp3r0r

Linux और Windows के लिए एक स्व-उपचारकारी, केवल-मेमोरी C2 — ऐसे एजेंट जो टूटे हुए लिंक से बच जाते हैं, कभी डिस्क को छूते नहीं, और Win32 API के माध्यम से स्क्रिप्ट करते हुए आगे बढ़ते हैं।


Discord GitHub Sponsors

GitHub go.mod Go version Tests GitHub License GitHub release


emp3r0r-readme

emp3r0r क्या है?

emp3r0r एक पोस्ट-एक्सप्लॉइटेशन फ्रेमवर्क और C2 है जो Linux और Windows वातावरणों के लिए बनाया गया है जहाँ स्टील्थ और रेज़िलिएंस वैकल्पिक नहीं हैं। एक सर्वर से विश्वसनीय कनेक्शन मानने के बजाय, एजेंट एक स्व-उपचारकारी मेश बनाते हैं जो लिंक टूटने पर भी काम करता रहता है। टारगेट से Python या PowerShell मांगने के बजाय, वे सब कुछ मेमोरी में निष्पादित करते हैं। और आपको एक प्लेटफ़ॉर्म की ट्रिक्स तक सीमित करने के बजाय, emp3r0r Windows BOFs, Linux objects, और Starlark स्क्रिप्ट चलाता है — सब फाइललेस, सब इन-प्रोसेस।


मुख्य विशेषताएँ और अनूठी सुविधाएँ

🐍 स्क्रिप्टेबल एजेंट (एम्बेडेड Starlark इंजन और Win32 API प्रॉक्सी)

प्रत्येक एजेंट अपना स्क्रिप्टिंग इंजन लेकर चलता है, ताकि आप बिना कंपाइल किए या बाइनरी शिप किए नया पोस्ट-एक्सप्लॉइटेशन लॉजिक जोड़ सकें।

  • स्क्रिप्ट पूरी तरह मेमोरी में चलती हैं — टारगेट पर 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 चैनल के लिए अदृश्य — एग्रेस-प्रतिबंधित वातावरणों के लिए आदर्श।


📡 मल्टी-प्रोटोकॉल लिसनर और प्लगेबल स्टेजर

एजेंट को अंदर लाना उतनी ही गंभीरता से लिया जाता है जितना उसे जीवित रखना।

  • HTTP, TCP, और UDP लिसनर विश्वसनीय फ्रेमिंग और अनुकूलन योग्य HTTP प्रोफ़ाइल के साथ।
  • सीधे Linux syscalls पर बना लगभग 2KB का स्टेजर — टारगेट पर कोई libc नहीं, कोई टूलचेन नहीं।
  • प्लगेबल स्टेजर ट्रांसपोर्ट और स्व-अनपैकिंग पैकर आपको प्रारंभिक पहुँच को उस चैनल में मिलाने देते हैं जो आपका टारगेट अनुमति देता है, और साथ ही स्टैटिक सिग्नेचर मिलान को हराते हैं।
  • स्टेज और एजेंट कोड पढ़ने/लिखने/निष्पादन अनुशासन का पालन करते हैं — कभी RWX नहीं।

यह क्यों मायने रखता है: छोटी, अनुकूलनीय, और मेमोरी-हाइजीनिक प्रारंभिक पहुँच का मतलब है कि आप उन होस्ट्स पर उतर सकते हैं जो अन्यथा पहुँच से बाहर होते।


🧩 नेटिव क्रॉस-प्लेटफ़ॉर्म BOF और PICO समर्थन (COFF, ELF और PICO)

किसी भी प्लेटफ़ॉर्म पर कंपाइल किए गए C मॉड्यूल इन-प्रोसेस चलाएं:

  • टाइप्ड आर्ग्युमेंट पैकिंग के साथ Windows COFF/BOF बाइनरी।
  • Linux ELF रीलोकेटेबल ऑब्जेक्ट सीधे एजेंट मेमोरी में लोड होते हैं।
  • SilentMoonwalk कॉलस्टैक स्पूफिंग के साथ Crystal-Kit PICO मॉड्यूल।
  • Kerbeus-BOF, Remote-OPs, और एक Situational Awareness सूट उपयोग के लिए तैयार आते हैं।

यह क्यों मायने रखता है: BOFs उतने ही अच्छे होते हैं जितना उनका लोडर — emp3r0r उन्हें इन-प्रोसेस चलाता है, बिना किसी नए प्रोसेस और बिना पीछे छोड़े किसी निशान के, Linux और Windows दोनों पर।


🔑 Windows टोकन, Netonly सेशन और Kerberos टिकट (PTT)

एक बार जब आप Windows होस्ट पर हों, तो emp3r0r आपको उस पर मौजूद उपयोगकर्ता बनने देता है — बिना कभी कोई टूल डाले।

  • किसी भी चल रहे प्रोसेस से एक्सेस टोकन चुराएं और इसे हर जगह उपयोग करें: Go मॉड्यूल, Starlark, BOFs।
  • किसी मॉड्यूल के --user फ़्लैग के साथ डिस्पोज़ेबल netonly सेशन बनाएं: वे आपके एजेंट की अपनी पहचान रखते हैं और केवल आउटबाउंड एक्सेस के लिए टारगेट उपयोगकर्ता की पहचान उधार लेते हैं — कोई भी पासवर्ड काम करता है, कुछ भी कभी मान्य नहीं होता।
  • पूर्ण पास-द-टिकट के लिए --ticket फ़्लैग के साथ Kerberos टिकट आयात करें: आपकी नेटवर्क पहचान टिकट की हो जाती है (जैसे, Domain Admin) जबकि आपकी स्थानीय पहचान कभी नहीं बदलती।
  • प्रत्येक टोकन-जागरूक मॉड्यूल --token, --user, और --ticket स्वीकार करता है, इसलिए पहचान बदलना एक फ़्लैग दूर है — जिसमें एक ही कमांड में सेशन बनाना और टिकट लोड करना शामिल है।
  • टिकट प्रति लॉगऑन सेशन रहते हैं, इसलिए DA सामग्री एक डिस्पोज़ेबल सेशन में संगरोधित रहती है जिसे आप शुद्ध कर सकते हैं, और एजेंट प्रोसेस स्वयं साफ़ रहता है।

यह क्यों मायने रखता है: उन मशीनों पर लेटरल मूवमेंट जिन पर कोई एजेंट नहीं चल रहा — SMB शेयर, सर्विस कंट्रोल, CIFS — आपके वर्कफ़्लो का सामान्य हिस्सा बन जाता है, उस उपयोगकर्ता के रूप में प्रमाणित जिसे आपने उधार लिया है, न कि डिस्क पर किसी टूल के रूप में।


🧦 SOCKS5 पिवटिंग और ऑपरेटर-साइड tun2socks

एक और इम्प्लांट जलाए बिना पिवट करें: C2 एक SOCKS5 प्रॉक्सी चलाता है जो आपके चुने हुए एजेंट के माध्यम से रिले करता है, और ऑपरेटर साइड एक ट्रांसपेरेंट TUN डिवाइस के साथ एक कदम आगे जा सकता है।

  • socks_start 1080 आपको C2 पर एक SOCKS5 एंडपॉइंट देता है जो चुने गए एजेंट के माध्यम से टनल करता है — proxychains या कोई भी टूल इसे इंगित करें और आप टारगेट नेटवर्क के अंदर हैं।
  • tun2socks start --route 10.10.0.0/24 एक TUN डिवाइस बनाता है जो केवल आपके नामित सबनेट्स को उस प्रॉक्सी के माध्यम से रूट करता है — बाकी सब आपके सामान्य कनेक्शन का उपयोग करता रहता है।
  • परिणाम ऐसा दिखता है जैसे यह एजेंट से उत्पन्न हो रहा हो, बिना प्रति-टूल प्रॉक्सी कॉन्फ़िगरेशन के।

यह क्यों मायने रखता है: पूरे एजेंट-साइड नेटवर्क तक पारदर्शी रूप से पहुँचें — एक DC को curl करें, कोई भी टूल उपयोग करें — एग्रेस के साथ जो टारगेट नेटवर्क से आता प्रतीत होता है, आपके ऑपरेटर बॉक्स से नहीं।


🎭 प्लगेबल C2 ट्रांसपोर्ट, uTLS JA3 एवेज़न और CBOR प्रोटोकॉल

  • बीकन-शैली HTTP पोलिंग या स्ट्रीमिंग HTTP/2 चुनें — दोनों मैलेबल प्रोफ़ाइल के साथ।
  • TLS फिंगरप्रिंट uTLS के साथ रैंडमाइज़ किए जाते हैं, इसलिए चैनल नेटवर्क टेलीमेट्री में अलग नहीं दिखता।
  • कंट्रोल ट्रैफ़िक एक कॉम्पैक्ट CBOR प्रोटोकॉल पर सवार होता है — JSON से छोटा, तेज़, और पार्स करने में कठिन।

यह क्यों मायने रखता है: C2 चैनल को सामान्य ट्रैफ़िक जैसा दिखने और वायर पर दुबला रहने के लिए बनाया गया है।


💾 एन्क्रिप्टेड मेमोरी-फर्स्ट स्टोरेज

  • एजेंट फ़ाइल ऑपरेशन एक इन-मेमोरी, AES-GCM-एन्क्रिप्टेड वर्चुअल फाइलसिस्टम के विरुद्ध चलते हैं; बड़ा डेटा डिस्क पर केवल एन्क्रिप्टेड ब्लॉब्स के रूप में बहता है जिनमें कोई पहचानने योग्य हेडर नहीं होता।
  • P2P-सक्षम एजेंट जो वे प्राप्त करते हैं उसे कैश करते हैं और पीयर के साथ साझा करते हैं, जिससे C2 ट्रैफ़िक और कम हो जाता है।

यह क्यों मायने रखता है: यहाँ तक कि डिस्क को भी शत्रुतापूर्ण माना जाता है — एजेंट खोजने के लिए कोई प्लेनटेक्स्ट आर्टिफ़ैक्ट आसपास नहीं रखता।


त्वरित शुरुआत

1. C2 सर्वर इंस्टॉलेशन

emp3r0r बनाने के लिए होस्ट पर Docker या Podman आवश्यक है — कोई स्थानीय Go टूलचेन नहीं।

git clone --depth=1 https://github.com/jm33-m0/emp3r0r.git && cd emp3r0r
./install.py

इंस्टॉलर सब कुछ एक थ्रोअवे कंटेनर में बनाता है और ऑपरेटर किट तैयार करता है। उपयोगी फ़्लैग: --lightweight (केवल Linux/Windows amd64, सबसे तेज़), --targets OS/ARCH,..., --debug, --skip-build

सर्वर लॉन्च करें:

emp3r0r server --c2-hosts 1.2.3.4 --http-port 12345 --operator-port 13377

2. ऑपरेटर मशीन सेटअप

tar --zstd -xpf emp3r0r-operator-kit.tar.zst
cd ./emp3r0r-operator-kit && ./install.py

सर्वर द्वारा प्रिंट किए गए WireGuard क्रेडेंशियल्स का उपयोग करके कनेक्ट करें:

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. एजेंट पेलोड जनरेट करें

ऑपरेटर कंसोल के अंदर:

# Direct C2 agent
generate --type linux_executable --arch amd64 --cc your.domain.com

# Mesh gateway agent (also reachable from the C2 directly)
generate --type linux_executable --arch amd64 --cc your.domain.com \
  --p2p --direct-c2 --p2p-transport mtls

# Mesh intermediate peer (relays for other agents)
generate --type linux_executable --arch amd64 --cc your.domain.com \
  --p2p --p2p-transport mtls --peers 1.2.3.4

# Windows mesh peer over SMB named pipes (local \\.\pipe, cross-host \\host\pipe),
# AES-GCM framed like the other transports
# (requires the Windows SMB stack / logon session to reach the peer)
generate --type windows_executable --arch amd64 --cc your.domain.com \
  --p2p --p2p-transport smb

मेश नोड्स अलग-अलग ट्रांसपोर्ट चला सकते हैं। प्रत्येक एजेंट उस ट्रांसपोर्ट और पोर्ट का विज्ञापन करता है जिस पर उसका रिले सुनता है, और डायलर हमेशा पीयर के विज्ञापित ट्रांसपोर्ट का उपयोग करते हैं, इसलिए एक मिश्रित मेश (उदाहरण के लिए Linux mTLS नोड्स के साथ Windows SMB नोड्स) एक ऐसे पीयर के माध्यम से रूट करता है जो एक उपयोगी ट्रांसपोर्ट साझा करता है, बजाय यह मानने के कि सब स्थानीय डिफ़ॉल्ट चलाते हैं। smb केवल Windows पेलोड के लिए स्वीकार किया जाता है; kcp/mtls हर जगह काम करते हैं।


दस्तावेज़ीकरण और संसाधन


विकास का समर्थन करें

यदि emp3r0r आपके सुरक्षा अनुसंधान और परीक्षण में मूल्यवान साबित हुआ है, तो GitHub Sponsors के माध्यम से इसके निरंतर विकास का समर्थन करने पर विचार करें।

श्रेणियाँ