
PyMultitor - Proxy Tor multi-thread in Python
Proxy Tor Multi-Thread Python,
Hai mai desiderato essere in due posti diversi contemporaneamente?
Quando mi sono posto questa domanda, ho iniziato a sviluppare questa soluzione nella mia mente.
Durante i test di penetrazione, ci sono spesso problemi causati da dispositivi di sicurezza che bloccano l'IP "attaccante".
Ciò mi infastidiva molto, così ho scritto uno script per fornire una soluzione a questo problema.
Con un gran numero di indirizzi IP che eseguono gli attacchi, sono garantiti risultati migliori - specialmente quando si tentano attacchi per bypassare Web Application Firewall, attacchi di tipo brute-force e molti altri.
[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 (Hebrew)] 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 su pymultitor (ad
esempio: 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
# Installa le dipendenze python.
# A seconda della configurazione, uno o entrambi potrebbero richiedere sudo.
pip3 install -r requirements.txt
python3 setup.py install
# Conferma che tutto funzioni
pymultitor --help
Segnalazioni di bug relativi all'installazione sono benvenute!
pymultitor --on-string "Your IP Address Blocked".http://127.0.0.1:8080).Your IP Address Blocked sarà presente nel contenuto della risposta, uscirai da un altro indirizzo 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 sarà presente nel contenuto della risposta, uscirai da un altro indirizzo IP.PyMultiTor fornisce un'API REST per gestire le identità del proxy. Puoi utilizzare l'API per cambiare la tua identità proxy su richiesta.
L'API richiede autenticazione tramite un token Bearer. Puoi impostare il token in due modi:
Variabile d'ambiente: Imposta la variabile d'ambiente PYMULTITOR_TOKEN:
export PYMULTITOR_TOKEN="your-secret-token-here"
Nota: Se PYMULTITOR_TOKEN non è impostata, PyMultiTor genererà automaticamente un token casuale per te.
Riga di comando: avviando PyMultiTor:
pymultitor
Cambia identità
/identityPOSTEsempio di utilizzo:
curl http://pymultitor/identity -X POST \
--header "Proxy-Authorization: Bearer {Token}" \
--proxy http://localhost:8080
Stato
/statusGETEsempio di utilizzo:
curl http://pymultitor/status \
--header "Proxy-Authorization: Bearer {Token}" \
--proxy http://localhost:8080
Nota: Sostituisci {Token} con il tuo token di autenticazione effettivo.
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)