
PyMultitor - पायथन मल्टी-थ्रेडेड टोर प्रॉक्सी
पायथन मल्टी थ्रेडेड टोर प्रॉक्सी,
क्या आपने कभी एक ही समय में दो अलग-अलग स्थानों पर होने की इच्छा की है?
जब मैंने खुद से यह सवाल पूछा, तो मैंने वास्तव में अपने दिमाग में इस समाधान को विकसित करना शुरू कर दिया।
पेनेट्रेशन टेस्ट करते समय अक्सर सुरक्षा उपकरणों के कारण समस्याएँ आती हैं जो "हमला करने वाले" IP को ब्लॉक कर देते हैं।
यह मुझे वास्तव में परेशान करता था, इसलिए मैंने इस समस्या का समाधान प्रदान करने के लिए एक स्क्रिप्ट लिखी।
बड़ी संख्या में IP पतों के साथ हमले करने पर बेहतर परिणाम की गारंटी होती है - विशेष रूप से वेब एप्लिकेशन फ़ायरवॉल को बायपास करने, ब्रूट-फ़ोर्स प्रकार के हमलों और कई अन्य प्रयासों में।
[Blackhat Asia] https://www.blackhat.com/asia-17/arsenal.html#pymultitor
[Owasp-IL Presentation] https://www.owasp.org/images/3/3d/OWASPIL-2016-02-02_PyMultiTor_TomerZait.pdf
[DigitalWhisper Article (हिब्रू)] http://www.digitalwhisper.co.il/files/Zines/0x2E/DW46-3-PyMultitor.pdf

sudo apt install -y torsudo yum install -y torsudo dnf install -y tor{tor-win32-*_path}\Tor--tor-cmd तर्क का उपयोग करें (उदाहरण के लिए: pymultitor --tor-cmd "c:\Pentest\Web\tor-win32-0.2.9.9\Tor\tor.exe")brew install torpip3 install pymultitor
docker pull realgam3/pymultitor
git clone https://github.com/realgam3/pymultitor.git
cd pymultitor
# Python निर्भरताएँ स्थापित करें।
# आपकी सेटअप के आधार पर, इनमें से एक या दोनों को sudo की आवश्यकता हो सकती है।
pip3 install -r requirements.txt
python3 setup.py install
# पुष्टि करें कि सब कुछ काम करता है
pymultitor --help
स्थापना संबंधी समस्याओं पर बग रिपोर्ट का स्वागत है!
pymultitor --on-string "Your IP Address Blocked" चलाएँ।http://127.0.0.1:8080) का उपयोग करें।Your IP Address Blocked मौजूद होगी, तो आप किसी अन्य IP पते से बाहर निकल जाएंगे।docker run --rm -p 8080:8080 realgam3/pymultitor --on-string "Your IP Address Blocked" चलाएँ।http://127.0.0.1:8080) का उपयोग करें।Your IP Address Blocked मौजूद होगी, तो आप किसी अन्य IP पते से बाहर निकल जाएंगे।PyMultiTor प्रॉक्सी पहचान प्रबंधित करने के लिए एक REST API प्रदान करता है। आप मांग पर अपनी प्रॉक्सी पहचान बदलने के लिए API का उपयोग कर सकते हैं।
API को एक Bearer टोकन का उपयोग करके प्रमाणीकरण की आवश्यकता होती है। आप टोकन दो तरीकों से सेट कर सकते हैं:
पर्यावरण चर: PYMULTITOR_TOKEN पर्यावरण चर सेट करें:
export PYMULTITOR_TOKEN="your-secret-token-here"
नोट: यदि PYMULTITOR_TOKEN सेट नहीं है, तो PyMultiTor स्वचालित रूप से आपके लिए एक यादृच्छिक टोकन उत्पन्न करेगा।
कमांड लाइन: PyMultiTor प्रारंभ करते समय:
pymultitor
पहचान बदलें
/identityPOSTउदाहरण उपयोग:
curl http://pymultitor/identity -X POST \
--header "Proxy-Authorization: Bearer {Token}" \
--proxy http://localhost:8080
स्थिति
/statusGETउदाहरण उपयोग:
curl http://pymultitor/status \
--header "Proxy-Authorization: Bearer {Token}" \
--proxy http://localhost:8080
नोट: {Token} को अपने वास्तविक प्रमाणीकरण टोकन से बदलें।
pymultitor --help
usage: pymultitor.py [-h] [-v] [-lh LISTEN_HOST] [-lp LISTEN_PORT] [-s] [-a AUTH] [-i] [-d] [-p PROCESSES] [-c CMD] [-e CONFIG] [-t TIMEOUT] [-r TRIES]
[--request-timeout REQUEST_TIMEOUT] [--on-count ON_COUNT] [--on-string ON_STRING] [--on-regex ON_REGEX] [--on-rst] [--on-status-code [ON_STATUS_CODE ...]]
[--on-timeout]
options:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-lh, --host LISTEN_HOST
proxy listen host. (default: 127.0.0.1)
-lp, --port LISTEN_PORT
proxy listen port (default: 8080)
-s, --socks use as socks proxy (not http proxy) (default: False)
-a, --auth AUTH set proxy authentication (format: 'username:pass') (default: )
-i, --insecure insecure ssl (default: False)
-d, --debug Debug Log. (default: False)
-p, --tor-processes PROCESSES
number of tor processes in the cycle (default: 2)
-c, --tor-cmd CMD tor cmd (executable path + arguments) (default: tor)
-e, --tor-config CONFIG
tor extended json configuration (default: {})
-t, --tor-timeout TIMEOUT
timeout in seconds for starting a tor instance; 0 disables timeout (default: 90)
-r, --tor-tries TRIES
number tries to start a tor instance before it fails (default: 5)
--request-timeout REQUEST_TIMEOUT
timeout in seconds for http requests; 0 disables timeout (default: 0)
--on-count ON_COUNT change ip every x requests (resources also counted) (default: 0)
--on-string ON_STRING
change ip when string found in the response content (default: )
--on-regex ON_REGEX change ip when regex found in The response content (default: )
--on-rst change ip when connection closed with tcp rst (default: False)
--on-status-code [ON_STATUS_CODE ...]
change ip when one of the specified status codes is returned (default: [])
--on-timeout change ip when request times out (default: False)