
स्वचालित प्रवेश परीक्षण के लिए बहु-एजेंट प्रणाली (MASAPT)
❗ अस्वीकरण
यह उपकरण विश्वविद्यालय पाठ्यक्रम के भाग के रूप में शैक्षिक और शोध उद्देश्यों के लिए विकसित किया गया है। पूर्व सहमति के बिना लक्ष्यों पर हमला करने के लिए MASAPT का उपयोग अवैध है।
डेवलपर्स इस उपकरण से होने वाली किसी भी क्षति के लिए कोई जिम्मेदारी नहीं लेते हैं और MASAPT के किसी भी दुर्भावनापूर्ण उपयोग की निंदा करते हैं। यह उपकरण इस समय किसी भी पेशेवर वातावरण में उपयोग के लिए अभिप्रेत नहीं है, यह अंतर्निहित सैद्धांतिक मॉडल के लिए केवल एक proof-of-concept है।
स्वचालित प्रवेश परीक्षण के लिए मल्टी-एजेंट सिस्टम 🐱💻

एक स्वायत्त प्रणाली जो XMPP पर संचार करने वाले SPADE एजेंटों की है, प्रवेश परीक्षण का समन्वय और निष्पादन करने के लिए। एक CLI उपकरण में!
URL दर्ज करें, थोड़ी प्रतीक्षा करें, रिपोर्ट पढ़ें!

यह एक proof-of-concept, बहु-एजेंट प्रणाली है, जो Python में विकसित की गई है, और इसका उद्देश्य प्रवेश परीक्षण की प्रक्रिया को संरचित और बुद्धिमान तरीके से स्वचालित करना है।
अंतिम लक्ष्य एक कार्यशील, लचीला, वितरित, CLI-आधारित पेंटेस्टिंग उपकरण बनाना है जिसका उपयोग प्रवेश परीक्षण कार्यों को स्वचालित करने के लिए किया जा सके।
वर्तमान विशेषताएँ:
भविष्य की योजनाएँ और विशेषताएँ यहाँ सूचीबद्ध हैं।
कठिन।
बहुत सारी पूर्वापेक्षाएँ और आवश्यकताएँ स्थापित करनी हैं:
Python और Kali पर मिलने वाले पेंटेस्टिंग टूल्स के अलावा, आपको किसी XMPP सेवा तक पहुँच की भी आवश्यकता है। सिस्टम के परीक्षण के लिए मैंने स्थानीय रूप से चल रहे ejabberd का उपयोग किया।
अपने पसंदीदा XMPP सर्वर पर एजेंटों को चलाने के लिए, आपको निम्नलिखित उपयोगकर्ता बनाने होंगे। आप निश्चित रूप से अन्य उपयोगकर्ता बना सकते हैं, लेकिन तब आपको masapt स्क्रिप्ट में एजेंट बनाते समय नए JID और PWD पैरामीटर पास करने होंगे।
| JID | पासवर्ड |
|---|---|
| repoter@domain | repoterSecret |
पूर्वापेक्षाएँ स्थापित होने और XMPP सेटअप होने के बाद:
प्रोजेक्ट फ़ोल्डर में cd करें
cd ../MASAPT
निर्देशिका को PATH में जोड़ें
export PATH=$PATH:/path/to/MASAPT
source ~/.bashrc
Python आवश्यकताएँ स्थापित करें
pip install -r requirements.txt
masapt स्क्रिप्ट को निष्पादन योग्य बनाएँ
chmod +x masapt
सिस्टम को इस प्रकार शुरू करें:
masapt -t url/to/target
अधिक एजेंट:
Explorer.py का विस्तार करें ताकि यह:
SQLinjector.py का विस्तार करें ताकि यह:
Coordinator.py का विस्तार करें ताकि यह:
MASAPT प्रणाली को मॉड्यूलर, वितरित और व्यावहारिक होने की कल्पना की गई थी। इसका अर्थ है कि सिस्टम बनाने वाले एजेंट मुख्य प्रक्रिया से स्वतंत्र हैं, उन्नत किए जा सकते हैं, और मौजूदा, 'युद्ध-परीक्षित' पेंटेस्टिंग उपकरणों का उपयोग करते हैं।
कल्पित लक्ष्यों को प्राप्त करने के लिए, एजेंटों को एक तीन-स्तरीय मॉडल के भाग के रूप में विकसित किया जाता है, जो मानक पेंटेस्ट चरणों (योजना - निष्पादन - पोस्ट निष्पादन) से लिया गया है। उक्त मॉडल का उच्च अवलोकन नीचे Img1 पर देखा जा सकता है।
इस अवलोकन में सभी सैद्धांतिक अवधारणाओं को पहले ही कोड में लागू किया जा चुका है (भविष्य के विचार - Img 8. को छोड़कर)। इन अवधारणाओं को सिस्टम के किसी भी भविष्य के उन्नयन में लागू किया जाना चाहिए।
तीन-स्तरीय मॉडल के पीछे मुख्य विचार इस प्रणाली में एजेंटों को व्यवस्थित और वर्गीकृत करने के लिए उपयोग किए जाने वाले एक ढाँचे को प्रदान करना है।
मॉडल का पहला स्तर Explorer एजेंट(ों) को शामिल करता है जो OSINT संचालित करने और लक्ष्य के बारे में कोई भी उपयोगी खुफिया जानकारी एकत्र करने के कार्य में लगे होते हैं।
दूसरे स्तर में Coordinator एजेंट और Exploit एजेंट शामिल हैं। Coordinator एक एकल एजेंट है जो तय करता है कि वर्तमान परीक्षण में कौन से शोषण एजेंट भाग लेंगे। जैसा कि नाम से पता चलता है, शोषण एजेंट वे हैं जो शोषण चलाते हैं - SQL इंजेक्शन, XSS, DoS, बफ़र ओवरफ़्लो... इन शोषण एजेंटों की कई हो सकती हैं।
तीसरे स्तर में Reporter शामिल है जिसका कार्य सभी शोषण एजेंटों से सभी शोषण डेटा, परिणाम, डेटा डंप एकत्र करना और इसे एक अंतिम रिपोर्ट में सारांशित करना है। फिर रिपोर्ट उपयोगकर्ता को दिखाई जाती है और स्थानीय रूप से संग्रहीत की जाती है।
पहली छवि में, मोटे तीर मॉडल में डेटा के प्रवाह का प्रतिनिधित्व करते हैं।

Img2 पहली छवि के समान मॉडल दिखाता है लेकिन अधिक विस्तार में - एजेंटों को उनके संबंधित स्तरों में स्पष्ट रूप से देखा जा सकता है। इस छवि में पूर्ण तीर फिर से मॉडल में डेटा प्रवाह का प्रतिनिधित्व करते हैं जो परिणामस्वरूप दिखाता है कि कौन से एजेंट एक-दूसरे के साथ संचार कर रहे हैं। यह देखा जा सकता है कि Explorer एजेंट Coordinator एजेंट को डेटा भेजता है, जो तब बदले में Exploit एजेंटों (SQLinjector, agent2, agent3) को कुछ डेटा भेजता है। अंत में, शोषण एजेंटों द्वारा एकत्र किया गया सारा डेटा Reporter एजेंट को भेजा जाता है जो फिर इसे संकलित करता है, सारांशित करता है और उपयोगकर्ता को प्रस्तुत करता है।
यह भी देखा जा सकता है कि केवल Explorer और Exploit (SQLinjector) एजेंट बाहरी वातावरण (परीक्षण लक्ष्य) के साथ बातचीत करते हैं। इसे दो-तरफा बिंदीदार तीरों द्वारा दर्शाया गया है।
जैसा कि पहले उल्लेख किया गया है, MASAPT प्रणाली की विशेषताओं में से एक इसका वितरित होना है। इसका एक पहलू पहले ही लागू किया जा चुका है, यह देखते हुए कि सभी एजेंटों को स्वतंत्र प्रोग्राम के रूप में लागू किया गया है, जो मुख्य (masapt) स्क्रिप्ट द्वारा चलाए जाते हैं।
Img 3. दिखाता है कि वर्तमान सिस्टम कैसे सेटअप और परीक्षण किया गया था। यह देखा जा सकता है कि एजेंट स्थानीय सिस्टम पर सेटअप XMPP (ejabberd) सर्वर पर संचार करने के लिए SPADE वातावरण का उपयोग करते हैं। परीक्षण लक्ष्य (SQLi Labs) भी स्थानीय सिस्टम पर सेटअप है। यह सेटअप सिस्टम के परीक्षण के लिए अच्छा है लेकिन यह एक वितरित प्रणाली के रूप में MASAPT की पूर्ण क्षमता नहीं दिखाता है।
Img 4. दूसरी ओर, MASAPT के एक संभावित भविष्य के कार्यान्वयन को दिखाता है। यह एक वितरित बहु-एजेंट प्रणाली दिखाता है जो संचार के लिए XMPP और कई अलग-अलग सिस्टमों पर चलने के लिए Docker का उपयोग करती है। पूर्ण तीर एक बार फिर सिस्टम के संचार और डेटा प्रवाह पहलू को दिखाते हैं, जो दर्शाता है कि एजेंट एक केंद्रीय XMPP सर्वर पर अपना डेटा कैसे भेजते और प्राप्त करते हैं।
एजेंटों के XMPP पर संचार करने का मुख्य कारण एजेंटों के लिए एक विश्वसनीय, भाषा-अज्ञेयवादी तरीका प्रदान करना है। इस दृष्टिकोण के साथ, सभी भविष्य के एजेंटों को Python में या SPADE वातावरण का उपयोग करके भी नहीं लिखा जाना चाहिए।
इसके पीछे तर्क यह है कि भविष्य में MASAPT का हिस्सा बनने के लिए किसी भिन्न प्रणाली का उपयोग हो सकता है (उदा. अन्य प्रोग्रामिंग भाषाओं में लिखे गए एजेंट)। इसलिए यह 'XMPP दृष्टिकोण' सिस्टम को उस तरह का लचीलापन प्रदान करने का सबसे अच्छा तरीका है।
संचार करने की क्षमता के अलावा, व्यवहार किसी भी एजेंट का दूसरा सबसे महत्वपूर्ण पहलू है। MASAPT एजेंटों और उनके व्यवहार को अवस्थाओं के एक सेट के साथ मॉडल किया गया है, जो उन्हें परिमित अवस्था मशीन बनाता है। SPADE वातावरण में परिमित अवस्था मशीन बनाने के लिए अच्छा समर्थन है।
नीचे दिए गए आरेख उन सभी संभावित अवस्थाओं को दिखाते हैं जिनमें एक एजेंट किसी भी समय हो सकता है। आरेख यह भी दिखाते हैं कि कौन सी घटनाएँ एजेंट को अगली अवस्था में स्विच करने का कारण बनती हैं। सभी भविष्य के एजेंटों को उसी तरह से लागू किया जाना चाहिए।
सभी भविष्य के शोषण एजेंटों (उदा. DoS, XSS...) को Img 8. आरेख को टेम्पलेट के रूप में उपयोग करके लागू किया जाना चाहिए।


[1] Audi-1 और उनकी उत्कृष्ट SQLI labs के लिए बहुत-बहुत धन्यवाद, जिन्होंने त्रुटि-आधारित, ब्लाइंड बूलियन और समय-आधारित SQL इंजेक्शन के परीक्षण में मदद की!
| explorerSecret |
| coordinator@domain | coordinatorSecret |
| sqlinjector@domain | injectorSecret |