
एक मॉड्यूलर वितरित पैठ परीक्षण उपकरण।
v0.6.0
अंग्रेज़ी | चीनी.
Swarm एक ओपन सोर्स मॉड्यूलर वितरित पेनिट्रेशन परीक्षण उपकरण है जो मास्टर-स्लेव मोड सिस्टम में संचार को लागू करने के लिए वितरित कार्य कतार का उपयोग करता है और डेटा भंडारण के लिए MongoDB का उपयोग करता है। इसमें एक वितरित ढाँचा और फंक्शन मॉड्यूल शामिल हैं। फंक्शन मॉड्यूल कुछ पेनिट्रेशन फंक्शनों का पूरी तरह से नया कार्यान्वयन हो सकता है या यह मौजूदा उपकरण का एक सरल रैपर हो सकता है जो वितरित कार्यक्षमता को लागू करता है। मॉड्यूलर आर्किटेक्चर के कारण वितरित ढाँचे के तहत नई सुविधाओं को अनुकूलित और विस्तारित करना आसान है।
अब इस संस्करण 0.6.0 में पाँच मॉड्यूल हैं:
यदि आप अपना स्वयं का मॉड्यूल लिखना चाहते हैं, तो आप यह पढ़ सकते हैं।
Zipball यहाँ से डाउनलोड किया जा सकता है। आप swarm प्राप्त करने के लिए git का भी उपयोग कर सकते हैं:
git clone [email protected]:Arvin-X/swarm.git
फिर swarm स्थापित करने के लिए setup.py का उपयोग करें:
python setup.py install
Swarm Python 2.6.x या 2.7.x के साथ काम करता है और इसे मास्टर होस्ट पर MongoDB समर्थन की आवश्यकता है।
यदि आपके पास अभी तक MongoDB नहीं है, तो आप इसे स्थापित करने के लिए apt-get का उपयोग कर सकते हैं:
apt-get install mongodb
कार्यों को वितरित करने के लिए मास्टर होस्ट पर swarm चलाएं और मास्टर से उपकार्य को पूरा करने के लिए स्लेव होस्ट पर '-p' विकल्प के साथ swarm-s चलाएं।
swarm-s -p 9090
आप स्लेव होस्ट के लक्ष्य पोर्ट पर एक लिसनर भी स्थापित कर सकते हैं ताकि swarm-s को जगाने के लिए कमांड प्राप्त हो सके, जब आप swarm चलाते हैं तो '--waken' विकल्प निर्दिष्ट करें। अन्यथा आपको '--waken' को खाली छोड़ देना चाहिए। लिसनर बनाने के लिए, आप nc या socat का उपयोग कर सकते हैं जैसे:
nc -e /bin/sh -l 9191
और वेकेन कमांड का उपयोग करें जैसे:
swarm-s ARGS
आपको अपने कमांड में "ARGS" छोड़ना होगा और सुनिश्चित करना होगा कि यह swarm को cli तर्क के रूप में पारित किया जाएगा ताकि swarm इसे कुछ आवश्यक तर्कों जैसे '-p' से बदल सके।
swarm का बुनियादी उपयोग:
usage: swarm [-h] -m MODULE [-v] [-c] [-o PATH] [-t [TARGET [TARGET ...]]]
[-T PATH] [-s [SWARM [SWARM ...]]] [-S PATH] [--waken CMD]
[--timeout TIME] [--m-addr ADDR] [--m-port PORT] [--s-port PORT]
[--authkey KEY] [--db-addr ADDR] [--db-port PORT] [--process NUM]
[--thread NUM] [--taskg NUM] [--dom-compbrute] [--dom-dict PATH]
[--dom-maxlevel NUM] [--dom-charset SET] [--dom-levellen LEN]
[--dom-timeout TIME] [--dir-http-port PORT]
[--dir-https-port PORT] [--dir-compbrute] [--dir-charset SET]
[--dir-len LEN] [--dir-dict PATH] [--dir-maxdepth NUM]
[--dir-timeout TIME] [--dir-not-exist FLAG] [--dir-quick-scan]
[--nmap-ports PORTS] [--nmap-top-ports NUM] [--nmap-ops ...]
[--int-target [URLS [URLS ...]]] [--int-method METHOD]
[--int-headers JSON] [--int-cookies COOKIES] [--int-body BODY]
[--int-payload PAYLOAD] [--int-flag FLAGS] [--int-timeout TIME]
[--map-seed SEED] [--map-http-port PORT] [--map-https-port PORT]
[--map-cookies COOKIES] [--map-interval TIME]
[--map-timeout TIME]
optional arguments:
-h, --help यह सहायता संदेश दिखाएं और बाहर निकलें
-m MODULE इसे सक्षम करने के लिए ./modules/ में मॉड्यूल नाम का उपयोग करें
Output:
इन विकल्पों का उपयोग आउटपुट को नियंत्रित करने के लिए किया जा सकता है
-v अधिक विस्तृत आउटपुट
-c रंगीन लॉग आउटपुट अक्षम करें
-o PATH लक्ष्य फ़ाइल में लॉग रिकॉर्ड करें
Target:
लक्ष्य को परिभाषित करने के लिए इनमें से कम से कम एक विकल्प प्रदान किया जाना चाहिए जब तक कि मॉड्यूल में लक्ष्य को परिभाषित करने के लिए कोई अन्य विशेष विकल्प न हो
-t [TARGET [TARGET ...]]
रिक्त स्थान से अलग किया गया (जैसे: github.com 127.0.0.0/24
192.168.1.5)
-T PATH फ़ाइल जिसमें लक्ष्य सूची हो, प्रति पंक्ति एक लक्ष्य
Swarm:
swarm कनेक्शन को अनुकूलित करने के लिए इन विकल्पों का उपयोग करें। कम से कम एक स्लेव होस्ट प्रदान किया जाना चाहिए।
-s [SWARM [SWARM ...]]
स्लेव होस्ट का पता पोर्ट के साथ यदि आपको उन्हें जगाने की आवश्यकता हो
(जैसे: 192.168.1.2:9090 192.18.1.3:9191)। कोई पोर्ट नहीं यदि स्लेव
होस्ट पर swarm-s पहले से चल रहा है
-S PATH फ़ाइल जिसमें स्लेव सूची हो, प्रति पंक्ति एक होस्ट
--waken CMD स्लेव होस्ट को जगाने का कमांड, शून्य यदि स्लेव होस्ट पर
swarm-s पहले से चल रहा है
--timeout TIME swarm को अनुरोध भेजने से पहले प्रतिक्रिया प्राप्त करने के लिए
प्रतीक्षा करने के लिए सेकंड
--m-addr ADDR मास्टर पता जो सभी स्लेव होस्टों के लिए पहुँच योग्य है
--m-port PORT कार्य वितरित करने के लिए मास्टर होस्ट पर लिसन पोर्ट
--s-port PORT मास्टर से कमांड प्राप्त करने के लिए स्लेव होस्ट पर लिसन पोर्ट
--authkey KEY मास्टर और स्लेव होस्टों के बीच प्रमाणीकरण कुंजी
Database:
इन विकल्पों का उपयोग MongoDB सर्वर तक पहुँचने के लिए किया जा सकता है
--db-addr ADDR MongoDB सर्वर का पता
--db-port PORT MongoDB सर्वर का लिसनिंग पोर्ट
Common:
इन विकल्पों का उपयोग स्लेव होस्ट के सामान्य कॉन्फ़िगरेशन को अनुकूलित करने के लिए किया जा सकता है
--process NUM स्लेव होस्ट पर अधिकतम समवर्ती प्रक्रियाओं की संख्या
--thread NUM स्लेव होस्ट पर अधिकतम समवर्ती थ्रेड्स की संख्या
--taskg NUM 1 से 3 तक उपकार्यों की ग्रैन्युलैरिटी
Domain Scan:
ये विकल्प उपडोमेन नाम स्कैन के लिए swarm क्रिया को अनुकूलित करने के लिए उपयोग किए जा सकते हैं
--dom-compbrute लक्ष्य पर बिना शब्दकोश के पूर्ण ब्रूट फोर्स का उपयोग करें
--dom-dict PATH उपडोमेन नाम स्कैन के लिए उपयोग किए जाने वाले शब्दकोश का पथ
--dom-maxlevel NUM स्कैन करने के लिए उपडोमेन नाम का अधिकतम स्तर
--dom-charset SET पूर्ण ब्रूट फोर्स के लिए उपयोग किया जाने वाला वर्णसेट
--dom-levellen LEN प्रत्येक स्तर के उपडोमेन नाम की लंबाई का अंतराल
--dom-timeout TIME उपडोमेन नाम स्कैन के लिए टाइमआउट विकल्प
Directory Scan:
ये विकल्प निर्देशिका स्कैन के लिए swarm क्रिया को अनुकूलित करने के लिए उपयोग किए जा सकते हैं
--dir-http-port PORT यदि आपको एकाधिक पोर्ट की आवश्यकता है तो अल्पविराम से अलग करें
--dir-https-port PORT
यदि आपको एकाधिक पोर्ट की आवश्यकता है तो अल्पविराम से अलग करें
--dir-compbrute लक्ष्य पर बिना शब्दकोश के पूर्ण ब्रूट फोर्स का उपयोग करें
--dir-charset SET पूर्ण ब्रूट फोर्स के लिए उपयोग किया जाने वाला वर्णसेट
--dir-len LEN निर्देशिका नाम या फ़ाइल नाम की लंबाई का अंतराल
--dir-dict PATH निर्देशिका स्कैन के लिए उपयोग किए जाने वाले शब्दकोश का पथ
--dir-maxdepth NUM निर्देशिका और फ़ाइल स्कैन में अधिकतम गहराई
--dir-timeout TIME निर्देशिका स्कैन के लिए टाइमआउट विकल्प
--dir-not-exist FLAG यदि आपको एकाधिक फ्लैग की आवश्यकता है तो डबल कॉमा से अलग करें
--dir-quick-scan स्कैन में GET के बजाय HEAD विधि का उपयोग करें
Nmap Module:
ये विकल्प स्लेव होस्टों पर nmap क्रिया को अनुकूलित करने के लिए उपयोग किए जा सकते हैं
--nmap-ports PORTS '80,443,3306,1024-2048' जैसे प्रारूप का समर्थन करता है
--nmap-top-ports NUM सबसे सामान्य पोर्ट <number> स्कैन करें
--nmap-ops ... nmap के मैन पेजों में सूचीबद्ध nmap विकल्प, यह cli
तर्कों में अंतिम होना चाहिए
Intruder:
विकल्प 'int_target' और 'int_body' में हमले बिंदु को निर्दिष्ट करने के लिए संकेतक
प्रतीक '@n@' का उपयोग करें जहाँ 'n' एक संख्या होनी चाहिए, जैसे '@0@','@1@'
आदि। इस हमले को पूरा करने के लिए इन हमले बिंदुओं पर उपयोग किए जाने वाले
पेलोड को निर्दिष्ट करने के लिए 'int_payload' विकल्प का उपयोग करें।
--int-target [URLS [URLS ...]]
लक्ष्य निर्दिष्ट करने के लिए '-t' या '-T' विकल्पों के
बजाय इस विकल्प का उपयोग करें, अल्पविराम से अलग किया गया
--int-method METHOD इस हमले में उपयोग की जाने वाली HTTP विधि
--int-headers JSON एक JSON प्रारूप डेटा। (जैसे: {"User-
Agent":"Mozilla/5.0","Origin":"XXX"})
--int-cookies COOKIES
अल्पविराम से अलग किया गया। (जैसे: PHPSESSIONID:XX,token:XX)
--int-body BODY HTTP या HTTPS बॉडी। आप इस विकल्प में संकेतक प्रतीक का
उपयोग कर सकते हैं
--int-payload PAYLOAD
प्रारूप '@0@:PATH,@1@:CHARSET
:NUM-NUM' का पालन करना चाहिए
--int-flag FLAGS यदि आपके पास एकाधिक फ्लैग हैं तो डबल कॉमा से अलग करें
--int-timeout TIME इंट्रूडर मॉड्यूल के लिए टाइमआउट विकल्प
Sitemap Crawler:
ये विकल्प साइटमैप क्रॉलर को अनुकूलित करने के लिए उपयोग किए जा सकते हैं, अभी तक
js पार्स का समर्थन नहीं करता
--map-seed SEED यदि आपके पास एकाधिक सीड हैं तो अल्पविराम से अलग करें
--map-http-port PORT यदि आपको एकाधिक पोर्ट की आवश्यकता है तो अल्पविराम से अलग करें
--map-https-port PORT
यदि आपको एकाधिक पोर्ट की आवश्यकता है तो अल्पविराम से अलग करें
--map-cookies COOKIES
यदि आपके पास एकाधिक कुकीज़ हैं तो अल्पविराम से अलग करें
--map-interval TIME दो अनुरोधों के बीच अंतराल समय
--map-timeout TIME साइटमैप क्रॉलर के लिए टाइमआउट विकल्प
यह अनुशंसित है कि यदि आपकी आवश्यकता अधिक है तो cli तर्कों का उपयोग करने के बजाय swarm को कॉन्फ़िगर करने के लिए कॉन्फ़िगरेशन फ़ाइल का उपयोग करें। कॉन्फ़िगरेशन फ़ाइलें /etc/swarm/ में स्थित हैं।
Swarm को GPLv3 के तहत लाइसेंस प्राप्त है।