Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
gha-lab-ed7a1740c4 — सुरक्षा-अनुसंधान प्रयोगशाला: GHSA-3g6g-gq4r-xjm9 / CVE-2026-35580 (GitHub Actions workflow_dispatch इनपुट शेल इंजेक्शन) का NationalSecurityAgency/emissary के पिन किए गए स्नैपशॉट के विरुद्ध नियंत्रित पुनरुत्पादन | Kitploit
उपकरण/GitHubGitHub/pvharmo2/gha-lab-ed7a1740c4
भेद्यता विश्लेषणशोषणलर्निंग और शिक्षाचयनित संसाधन
GitHubpvharmo2/gha-lab-ed7a1740c4

gha-lab-ed7a1740c4

सुरक्षा-अनुसंधान प्रयोगशाला: GHSA-3g6g-gq4r-xjm9 / CVE-2026-35580 (GitHub Actions workflow_dispatch इनपुट शेल इंजेक्शन) का NationalSecurityAgency/emissary के पिन किए गए स्नैपशॉट के विरुद्ध नियंत्रित पुनरुत्पादन

रिपॉजिटरी देखें
3घं 35मि पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

स्वचालित शोध कलाकृति — अपस्ट्रीम प्रोजेक्ट नहीं।

यह रिपॉजिटरी Université Laval में मास्टर की थीसिस के लिए एक स्वचालित हार्नेस द्वारा निर्मित एक डिस्पोजेबल लैब है, जो प्रकाशित GitHub Actions वर्कफ़्लो कमजोरियों को पुन: प्रस्तुत करने पर केंद्रित है। यह NationalSecurityAgency/emissary का एक शब्दशः स्नैपशॉट है, जो कमिट 898488b489615581ea66d17954742c8e4ffb0323 (2026-01-09) पर है, और उस प्रोजेक्ट के अपने लाइसेंस के तहत पुनर्वितरित किया गया है, जिसकी फ़ाइल इस स्नैपशॉट में अपरिवर्तित शामिल है।

अपस्ट्रीम प्रोजेक्ट शामिल नहीं है, उसे कभी लक्षित नहीं किया जाता है, और यहाँ अध्ययन की गई कमजोरी पहले से ही सार्वजनिक है। इस रिपॉजिटरी में हर सीक्रेट और वेरिएबल एक यादृच्छिक रूप से उत्पन्न डमी मान है — कोई वास्तविक क्रेडेंशियल मौजूद नहीं है। एक्शन संदर्भ और रनर इमेज उसी पर पिन किए गए हैं जो 2026-01-09 पर उन्होंने हल किया था; स्नैपशॉट में किए गए हर बदलाव के लिए हार्नेस आउटपुट में pinning.md देखें।

प्रश्न या आपत्तियाँ: [email protected]


Emissary Dark Knight - some code just wants to watch the core burn

License Maven Central

Java CI with Maven
CodeQL
Lint Codebase

विषय-सूची

  • परिचय
  • न्यूनतम आवश्यकताएँ
  • आरंभ करना
  • हमसे संपर्क करें

परिचय

Emissary एक P2P-आधारित डेटा-संचालित वर्कफ़्लो इंजन है जो एक विषम, संभवतः व्यापक रूप से फैले हुए, बहु-स्तरीय P2P नेटवर्क में कंप्यूट संसाधनों पर चलता है। वर्कफ़्लो यात्राएँ पारंपरिक वर्कफ़्लो इंजनों की तरह पूर्व-नियोजित नहीं होती हैं, बल्कि डेटा के बारे में अधिक जानकारी खोजे जाने पर खोजी जाती हैं। Emissary वर्कफ़्लो में आमतौर पर कोई उपयोगकर्ता सहभागिता नहीं होती है, बल्कि डेटा को लक्ष्य-उन्मुख तरीके से तब तक संसाधित किया जाता है जब तक वह पूर्णता की स्थिति तक नहीं पहुँच जाता।

Emissary अत्यधिक कॉन्फ़िगर करने योग्य है, लेकिन इस आधार कार्यान्वयन में लगभग कुछ भी नहीं करता है। इस फ्रेमवर्क के उपयोगकर्ताओं से अपेक्षा की जाती है कि वे emissary.place.ServiceProviderPlace का विस्तार करने वाली कक्षाएँ प्रदान करें ताकि emissary.core.IBaseDataObject पेलोड पर कार्य किया जा सके।

विभिन्न प्रकार की चीज़ें की जा सकती हैं और वर्कफ़्लो को चरणों में प्रबंधित किया जाता है, जैसे STUDY, ID, COORDINATE, TRANSFORM, ANALYZE, IO, REVIEW।

वर्कफ़्लो को निर्देशित करने के लिए जिम्मेदार कक्षाएँ हैं emissary.core.MobileAgent और उससे व्युत्पन्न कक्षाएँ, जो संबंधित पेलोड ऑब्जेक्ट्स के एक सेट के पथ को वर्कफ़्लो के माध्यम से प्रबंधित करती हैं, और emissary.directory.DirectoryPlace जो उपलब्ध सेवाओं, उनकी लागत और गुणवत्ता का प्रबंधन करता है और P2P नेटवर्क को जुड़ा रखता है।

GitHub Pages पर होस्ट की गई Maven साइट और Javadoc: https://code.nsa.gov/emissary/

न्यूनतम आवश्यकताएँ

  • Linux या MacOSX ऑपरेटिंग सिस्टम
  • JDK 11
  • Apache Maven 3.6.3+

आरंभ करना

आवश्यक घटकों को स्थापित करने, स्रोत कोड खींचने, Emissary को बनाने और चलाने की जानकारी के लिए DEVELOPING.md गाइड पढ़ें।

निर्माण

Emissary को संकलित, परीक्षण और पैकेज करने के लिए mvn clean package चलाएँ

root@kitploit:~
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  9.132 s
[INFO] Finished at: 2022-01-10T22:31:05Z
[INFO] ------------------------------------------------------------------------

चलाना

Emissary में एक bash स्क्रिप्ट है जो सब कुछ चलाती है। यह Emissary की शीर्ष-स्तरीय निर्देशिका में है। स्क्रिप्ट emissary.Emissary क्लास चलाती है जिसमें विभिन्न कार्यों को संभालने के लिए कई Picocli कमांड उपलब्ध हैं।

कोई तर्क नहीं

यदि emissary स्क्रिप्ट बिना किसी तर्क के चलाई जाती है, तो आपको सभी कॉन्फ़िगरेशन उप-कमांडों की सूची और एक संक्षिप्त विवरण मिलेगा।

root@kitploit:~
./emissary

सहायता

./emissary help चलाने से आपको वही आउटपुट मिलेगा जो बिना तर्कों के चलाने पर मिलता है। यदि आप किसी कमांड के बारे में अधिक विस्तृत जानकारी देखना चाहते हैं, तो help के बाद कमांड का नाम जोड़ें। उदाहरण के लिए, server कमांड के लिए विवरण सहित सभी तर्क देखने के लिए, चलाएँ:

root@kitploit:~
./emissary help server

सामान्य पैरामीटर

बाकी कमांडों में सभी के पास (-b या --projectBase) तर्क होते हैं जिन्हें सेट किया जा सकता है, लेकिन यह PROJECT_BASE से मेल खाना चाहिए।

कॉन्फ़िग निर्देशिका डिफ़ॉल्ट रूप से /config पर सेट होती है लेकिन इसे (-c या --config) के साथ भी पास किया जा सकता है। git चेकआउट से चलाते समय, आपको projectBase के रूप में target का उपयोग करना चाहिए। शुरू करने से पहले target/config में कॉन्फ़िग फ़ाइलों को संशोधित करने के लिए स्वतंत्र महसूस करें।

लॉगिंग logback द्वारा संभाली जाती है। आप --logbackConfig तर्क के साथ एक कस्टम फ़ाइल की ओर इशारा कर सकते हैं।

अधिक जानकारी के लिए प्रत्येक कमांड के लिए help -c देखें।

सर्वर (स्टैंडअलोन)

यह कमांड एक Emissary सर्वर शुरू करेगा और सभी स्थानों, एक पिकअप स्थान, और ड्रॉप ऑफ फ़िल्टर को प्रारंभ करेगा जो कॉन्फ़िगर किए गए हैं। यदि -m या --mode निर्दिष्ट नहीं है तो यह स्टैंडअलोन मोड में शुरू होगा। डिफ़ॉल्ट रूप से, MobileAgents की संख्या मशीन के विनिर्देशों के आधार पर गणना की जाती है। आधुनिक कंप्यूटरों पर, यह अधिक हो सकती है। आप -a या --agents के साथ एजेंटों की संख्या को नियंत्रित कर सकते हैं। यहाँ एक उदाहरण चलाना है।

root@kitploit:~
./emissary server -a 2

आगे के कॉन्फ़िगरेशन के बिना, यह http://localhost:8001 पर शुरू होगा। यदि आप उस url पर ब्राउज़ करते हैं, तो आपको target/config/jetty-users.properties में परिभाषित उपयोगकर्ता नाम और पासवर्ड दर्ज करना होगा, जो emissary और emissary123 है।

डिफ़ॉल्ट PickUpPlace target/data/InputData से फ़ाइलें पढ़ने के लिए कॉन्फ़िगर किया गया है। यदि आप उस निर्देशिका में फ़ाइलें कॉपी करते हैं, तो आप देखेंगे कि Emissary उन्हें संसाधित करता है। ध्यान रखें, केवल toUpper और toLower कॉन्फ़िगर किए गए हैं, इसलिए आउटपुट बहुत दिलचस्प नहीं होगा।

रोकें

सेवा को कार्य लेने से रोकें

root@kitploit:~
./emissary server --pause
फिर से शुरू करें

रोकी गई सेवा को कार्य लेने की अनुमति दें

root@kitploit:~
./emissary server --unpause
अमान्य करें

उन सेवाओं को अमान्य करें जो refreshable हैं। यह एक "हल्का" रिफ्रेश है जो एक नो-डाउनटाइम दृष्टिकोण है जो ServiceProviderRefreshablePlace को अमान्य करता है। जब स्थान को DirectoryPlace से खींचा जाता है, तो स्थान को DirectoryPlace और Namespace के लिए समान कुंजियों का उपयोग करके फिर से बनाया जाता है, लेकिन कॉन्फ़िगरेटर को फिर से लोड किया जाता है और स्थान अपने कॉन्फ़िग्स के एक उपसमुच्चय को फिर से लोड करने में सक्षम होता है।

root@kitploit:~
./emissary server --invalidate
रिफ्रेश

सेवाओं का बलपूर्वक रिफ्रेश करें। यह एक "हार्ड" रिफ्रेश है, सर्वर को रोका जाता है और MobileAgents के खाली होने की प्रतीक्षा होती है। एक बार सर्वर पूरी तरह से निष्क्रिय हो जाने पर, सभी ServiceProviderRefreshablePlace मौजूदा कुंजियाँ DirectoryPlace और Namespace से हटा दी जाती हैं, और स्थानों को पूरी तरह से फिर से बनाया जाता है। यह सेवा नामों, प्रॉक्सी, अस्वीकृति सूचियों आदि में परिवर्तन की अनुमति देता है। फिर प्रसंस्करण फिर से शुरू करने के लिए सर्वर को अनपॉज़ किया जाता है। रिफ्रेश में कोई भी विफलता सर्वर को खराब स्थिति में डाल देगी, इसलिए सर्वर को बंद कर दिया जाता है।

root@kitploit:~
./emissary server --refresh
रोकें

सेवा को बंद करें

root@kitploit:~
./emissary server --stop
समाप्त करें

सेवा को बलपूर्वक बंद करें

root@kitploit:~
./emissary server --kill

एजेंट (स्टैंडअलोन)

एजेंट कमांड कॉन्फ़िगर किए गए होस्ट के लिए MobileAgents की संख्या और वे एजेंट क्या कर रहे हैं दिखाता है। डिफ़ॉल्ट रूप से, पोर्ट 9001 है, लेकिन आप इसे बदलने के लिए -p या --port का उपयोग कर सकते हैं। यह मानते हुए कि आप उपरोक्त सर्वर कमांड से 8001 पर चल रहे हैं, प्रयास करें:

root@kitploit:~
./emissary agents -p 8001

पूल (स्टैंडअलोन)

पूल एक नोड के लिए एजेंटों का एक संक्षिप्त दृश्य है। यह भी डिफ़ॉल्ट रूप से पोर्ट 9001 पर होता है। ऊपर शुरू किए गए स्टैंडअलोन सर्वर के लिए चलाने के लिए

root@kitploit:~
./emissary pool -p 8001

यह कमांड क्लस्टर के लिए अधिक उपयोगी है क्योंकि यह हर नोड का अधिक सुपाच्य दृश्य है।

Env

Env कमांड के लिए एक चल रहे सर्वर की आवश्यकता होती है। यह सर्वर से कुछ कॉन्फ़िगरेशन मान पूछेगा, जैसे PROJECT_BASE और BIN_DIR। बिना तर्कों के, यह एक अनफ़ॉर्मेटेड json प्रतिक्रिया डंप करेगा।

root@kitploit:~
./emissary env

लेकिन आप bash में सोर्सिंग के लिए उपयुक्त प्रतिक्रिया भी डंप कर सकते हैं।

root@kitploit:~
./emissary env --bashable

Emissary सर्वर शुरू करना वास्तव में इस एंडपॉइंट को कॉल करता है और कॉन्फ़िगर किए गए वेरिएबल्स के साथ $PROJECT_BASE}/env.sh डंप करता है। यह इसलिए किया जाता है ताकि शेल स्क्रिप्ट source $PROJECT_BASE}/env.sh कर सकें और फिर उन वेरिएबल्स को कहीं और कॉन्फ़िगर करने की चिंता किए बिना उपलब्ध करा सकें।

Config

config कमांड आपको एक निर्दिष्ट स्थान/सेवा/क्लास के लिए प्रभावी कॉन्फ़िगरेशन देखने की अनुमति देता है। चूंकि Emissary फ्लेवर का उपयोग करता है, यह कमांड सभी फ्लेवर लागू होने के बाद एक क्लास का परिणामी कॉन्फ़िगरेशन दिखाएगा। इस कमांड का उपयोग चल रहे Emissary नोड से जुड़ने के लिए किया जा सकता है, -h होस्ट के लिए (डिफ़ॉल्ट localhost है) और -p पोर्ट के लिए (डिफ़ॉल्ट 8001 है) निर्दिष्ट करके। पोर्ट 8001 पर स्थानीय रूप से चल रहे Emissary से जुड़ने के लिए, निम्न में से कोई भी कमांड काम करेगा:

root@kitploit:~
./emissary config --place emissary.place.sample.ToLowerPlace
./emissary config --place emissary.place.sample.ToLowerPlace -h localhost -p 8001

वैकल्पिक रूप से, आप अपने स्थानीय CONFIG_DIR में निर्दिष्ट कॉन्फ़िगरेशन फ़ाइलों का उपयोग करने के लिए --offline का उपयोग करके ऑफ़लाइन मोड निर्दिष्ट कर सकते हैं:

root@kitploit:~
./emissary config --place emissary.place.sample.ToLowerPlace --offline

ऑफ़लाइन मोड में, आप कॉन्फ़िगरेशन में अंतर देखने के लिए फ्लेवर प्रदान कर सकते हैं:

root@kitploit:~
./emissary config --place emissary.place.sample.ToLowerPlace --offline --flavor STANDALONE,TESTING

ये प्रभावी कॉन्फ़िगरेशन देखने के लिए उपयोगी हैं, लेकिन हम अंतिम आउटपुट के साथ सभी कॉन्फ़िगरेशन फ़ाइलों को देखने के लिए एक वर्बोज़ मोड में भी चल सकते हैं। यह --detailed फ्लैग के साथ नियंत्रित किया जाता है:

root@kitploit:~
./emissary config --place emissary.place.sample.ToLowerPlace --detailed

या ऑफ़लाइन मोड में:

root@kitploit:~
./emissary config --place emissary.place.sample.ToLowerPlace --offline --detailed

सर्वर (क्लस्टर)

Emissary स्टैंडअलोन में मज़ेदार है, लेकिन वास्तविक कार्य के लिए क्लस्टर चलाना अधिक उपयुक्त है। क्लस्टर चलाने का तरीका स्टैंडअलोन के समान है, लेकिन आपको नोड को अन्य नोड्स से जुड़ने के लिए -m cluster की आवश्यकता होगी। क्लस्टर मोड में Emissary PickUpPlace के बजाय PickUpClient भी शुरू करेगा, इसलिए आपको एक फीडर शुरू करने की आवश्यकता होगी।

रेंडेज़वस पीयर्स देखने के लिए target/config/peers.cfg देखें। इस मामले में, 3 हैं। पोर्ट 8001 और 9001 पर चलने वाले नोड केवल Emissary नोड हैं। पोर्ट 7001 पर चलने वाला नोड फीडर है। तो चलिए दो अलग-अलग टर्मिनलों में 8001 और 9001 शुरू करते हैं।

root@kitploit:~
./emissary server -a 2 -m cluster
./emissary server -a 2 -m cluster -p 9001

क्योंकि ये नोड सभी पोर्ट 8001, 9001 और 7001 के बारे में जानते हैं, आप लॉग में त्रुटियाँ देखेंगे क्योंकि वे जुड़ने का प्रयास करते रहते हैं।

ध्यान दें, वास्तविक दुनिया की तैनाती में हम एक ही नोड पर कई Emissary प्रक्रियाएँ नहीं चलाते हैं। आप -h के साथ होस्टनाम कॉन्फ़िगर कर सकते हैं।

फीड (क्लस्टर)

पोर्ट 8001 और 9001 पर शुरू किए गए नोड्स के साथ, हमें फीडर शुरू करने की आवश्यकता है। feed कमांड डिफ़ॉल्ट रूप से पोर्ट 7001 का उपयोग करता है, लेकिन हमें एक निर्देशिका स्थापित करने की आवश्यकता है जिससे फीडर पढ़ेगा। उस निर्देशिका में डाली गई फ़ाइलें वर्कर नोड्स द्वारा लेने के लिए उपलब्ध होंगी और कार्य क्लस्टर के बीच वितरित किया जाना चाहिए। फीड शुरू करें

root@kitploit:~
mkdir ~/Desktop/feed1
./emissary feed -i ~/Desktop/feed1/

आपको ब्राउज़र में http://localhost:8001, http://localhost:9001 और http://localhost:7001 हिट करने में सक्षम होना चाहिए और कॉन्फ़िगर किए गए स्थानों को देखना चाहिए। ~/Desktop/feed1 में कुछ फ़ाइलें डालें और देखें कि 2 नोड उन्हें संसाधित करते हैं। उन्हें प्रसंस्करण शुरू करने में एक मिनट लग सकता है

एजेंट (क्लस्टर)

क्लस्टर मोड में एजेंट फिर से mobileAgents के बारे में विवरण दिखाते हैं। यह उस नोड से शुरू होता है जिसे आप कॉन्फ़िगर करते हैं (डिफ़ॉल्ट रूप से localhost:9001), फिर उन सभी नोड्स को कॉल करता है जिनके बारे में यह जानता है और समान जानकारी प्राप्त करता है। इसे चलाएँ:

root@kitploit:~
./emissary agents --cluster

पूल (क्लस्टर)

क्लस्टर मोड में पूल भी स्टैंडअलोन में पूल के समान करता है। यह नोड (डिफ़ॉल्ट रूप से localhost:9001) से शुरू होता है फिर उन सभी नोड्स पर जाता है जिनके बारे में यह जानता है और क्लस्टर का एक संक्षिप्त दृश्य एकत्र करता है। इसे चलाएँ

root@kitploit:~
./emissary pool --cluster

टोपोलॉजी (क्लस्टर)

टोपोलॉजी कॉन्फ़िगर किए गए नोड (डिफ़ॉल्ट रूप से localhost:8001) से बात करती है और हर उस नोड से बात करती है जिसके बारे में यह जानता है। प्रतिक्रिया वह है जो उन सभी नोड्स को पता है, इसलिए आप अपने क्लस्टर का एक नेटवर्क टोपोलॉजी बना सकते हैं। इसे चलाएँ

root@kitploit:~
./emissary topology

SSL के साथ सर्वर चलाना

कीस्टोर और कीस्टोर पासवर्ड emissary.client.EmissaryClient-SSL.cfg फ़ाइल में हैं। डिफ़ॉल्ट रूप से शामिल और कॉन्फ़िगर किया गया एक नमूना कीस्टोर है जिसे आप इस कार्यक्षमता का परीक्षण करने के लिए उपयोग कर सकते हैं। हम उत्पादन वातावरण में नमूना कीस्टोर का उपयोग करने की अनुशंसा नहीं करते हैं। अपना स्वयं का कीस्टोर उपयोग करने के लिए, emissary.client.EmissaryClient-SSL.cfg फ़ाइल में कॉन्फ़िगरेशन मान बदलें।

स्टैंडअलोन

root@kitploit:~
./emissary server -p 8443 --ssl --disableSniHostCheck

क्लस्टर

root@kitploit:~
./emissary server -p 8443 --ssl --disableSniHostCheck --mode cluster
./emissary server -p 9443 --ssl --disableSniHostCheck --mode cluster
mkdir ~/Desktop/feed1
./emissary feed -p 7443 --ssl --disableSniHostCheck -i ~/Desktop/feed1/

हमसे संपर्क करें

सामान्य प्रश्न

यदि आपके पास इस प्रोजेक्ट के बारे में कोई प्रश्न या चिंताएँ हैं, तो आप हमसे संपर्क कर सकते हैं: [email protected]

सुरक्षा प्रश्न

सुरक्षा प्रश्नों और कमजोरी रिपोर्टिंग के लिए, कृपया SECURITY.md देखें

टूल डाउनलोड करें