
PyMultitor - Python Multithreaded Tor Proxy
Python Multi-Threaded Tor-Proxy,
Wolltest du schon immer an zwei verschiedenen Orten gleichzeitig sein?
Als ich mir diese Frage stellte, begann ich tatsächlich, diese Lösung in meinem Kopf zu entwickeln.
Bei Penetrationstests gibt es oft Probleme durch Sicherheitsgeräte, die die „angreifende“ IP blockieren.
Das hat mich wirklich genervt, also habe ich ein Skript geschrieben, um eine Lösung für dieses Problem bereitzustellen.
Mit einer großen Anzahl von IP-Adressen, die die Angriffe durchführen, sind bessere Ergebnisse garantiert – insbesondere bei Angriffen zur Umgehung von Web Application Firewalls, Brute-Force-Angriffen und vielen mehr.
[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 Artikel (Hebräisch)] 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 bei pymultitor (z.B.: 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
# Install python dependencies.
# Depending on your setup, one or both of these may require sudo.
pip3 install -r requirements.txt
python3 setup.py install
# Confirm that everything works
pymultitor --help
Fehlerberichte zu Installationsproblemen sind willkommen!
pymultitor --on-string "Your IP Address Blocked" aus.http://127.0.0.1:8080).Your IP Address Blocked im Antwortinhalt vorhanden ist, werden Sie über eine andere IP-Adresse aussteigen.docker run --rm -p 8080:8080 realgam3/pymultitor --on-string "Your IP Address Blocked" aus.http://127.0.0.1:8080).Your IP Address Blocked im Antwortinhalt vorhanden ist, werden Sie über eine andere IP-Adresse aussteigen.PyMultiTor bietet eine REST-API zur Verwaltung von Proxy-Identitäten. Sie können die API verwenden, um Ihre Proxy-Identität bei Bedarf zu ändern.
Die API erfordert eine Authentifizierung mit einem Bearer-Token. Sie können das Token auf zwei Arten festlegen:
Umgebungsvariable: Setzen Sie die Umgebungsvariable PYMULTITOR_TOKEN:
export PYMULTITOR_TOKEN="your-secret-token-here"
Hinweis: Wenn PYMULTITOR_TOKEN nicht gesetzt ist, generiert PyMultiTor automatisch ein zufälliges Token für Sie.
Befehlszeile: Starten Sie PyMultiTor:
pymultitor
Identität wechseln
/identityPOSTBeispielverwendung:
curl http://pymultitor/identity -X POST \
--header "Proxy-Authorization: Bearer {Token}" \
--proxy http://localhost:8080
Status
/statusGETBeispielverwendung:
curl http://pymultitor/status \
--header "Proxy-Authorization: Bearer {Token}" \
--proxy http://localhost:8080
Hinweis: Ersetzen Sie {Token} durch Ihr tatsächliches Authentifizierungstoken.
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)