Overview
Python Multi Threaded Tor Proxy
Did you ever want to be at two different places at the same times ?
While performing penetration tests there are often problems caused by security devices that block the “attacking” IP.
With a large number of IP addresses performing the attacks, better results guaranteed-especially when attempting attacks to bypass Web Application Firewalls, Brute-Force type attacks and many more.
How does PyMultiltor work ?
- PyMultitor work with EventLoop(Gevent) and multiple Tor processing(Sub Processes).
- Each Tor process is responsible for the connection between a single IP address(Proxy) and the target. Futhermore, each Tor process has two addresses-an internet address(Socks 4a Proxy) and a mangement address.
- Each time the programs identifies that the IP is blocked, a new identity is requested from Tor meaning a new IP address is issued to this connection. The request that was blocked is re-sent and the testing process will continue.
gevent
gevent is a coroutine based Python networking library that uses greenlet to provide a high level synchronous API on top of the libev event loop.
Installation
Ubuntu
Requirement
* Python 2.7+.
sudo apt-get install -y build-essential libssl-dev python-setuptools python-pip python-wheel python-dev
sudo apt-get install -y libffi-dev libssl-dev libxml2-dev libxslt1-dev libjpeg8-dev zlib1g-dev
sudo apt-get install -y tor
Fedora
Requirement
* python 2.7+.
sudo dnf install -y redhat-rpm-config gcc gcc-c++ make openssl-devel python-setuptools python-pip python-wheel python-devel
sudo dnf install -y libffi-devel openssl-devel libxml2-devel libxslt-devel libpng-devel libjpeg-devel
sudo dnf install -y tor
MacOS
Requirement
* python2.7+.
xcode-select –install
$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
brew install mitmproxy
brew install tor
Installation
- From pip
pip install pymultitor
- From source:
git clone https://github.com/realgam3/pymultitor.git
cd pymultitor
pip install -r requirements.txt
python setup.py install
Usage
Usage: pymultitor [-h] [-v] [-lh LISTEN_HOST] [-lp LISTEN_PORT] [-s] [-i] [-d]
[-p PROCESSES] [-c CMD] [--on-count ON_COUNT]
[--on-string ON_STRING] [--on-regex ON_REGEX] [--on-rst]
When To Change IP Address
--on-count Change IP Every x Requests (Resources Also Counted).
--on-string Change IP When String Found On The Response Content.
--on-regex Change IP When Regex Found On The Response Content.
--on-rst Change IP When Connection Closed With TCP RST.