From charlesreid1


What is MITMf?


MITMf is the man in the middle framework.

This is a really nice tool written in Python, and capable of carrying out man in the middle attacks using multiple methods (think Bettercap but implemented in Python instead of Ruby, yay!).

The best part of MITMf is that you can process packets using Scapy - so you can capitalize on all that knowledge you already have of that library.


Before installing MITMf, you will need to install a bunch of aptitude packages:

$ apt-get install python-dev python-setuptools libpcap0.8-dev libnetfilter-queue-dev libssl-dev libjpeg-dev libxslt1-dev libcapstone3 libcapstone-dev libffi-dev file
$ apt-get install libxml2-dev 

Check out the MITMf repo from github, and clone the git submodule:

$ git clone
$ cd MITMf && git submodule init && git submodule update --recursive

This is mentioned in the MITMf installation instructions:

Now you need to install a bunch of python packages (execute this from the git repository of the MITMf that you checked out):

$ pip install -r requirements.txt

If you still run into problems, run with the update flag:

$ pip install --update -r requirements.txt

This will ensure you install the latest and greatest of everything.

ImportError: No Module Named bdfactory

NOTE: If you are seeing an import error related to bdfactory, you are not cloning the git submodule. Follow the instructions carefully.

Installation instructions:

$ git clone
$ cd MITMf && git submodule init && git submodule update --recursive

Installing with virtual environment

The installation instructions specify that the system site packages in Python in Kali Linux can potentially cause conflicts, and the author recommends using virtualenv to install and use MITMf.

To do all of the above in a virtual environment:

$ pip install virtualenvwrapper
$ mkvirtualenv MITMf -p /usr/bin/python2.7

Now you can download/install MITMf and install all the prerequisites into the virtual environment:

$ git clone
$ cd MITMf && git submodule init && git submodule update --recursive
$ pip install -r requirements.txt
$ python --help

Testing and Getting Help

Run the script with the --help flag to test that it is working and to get some help:

$ python --help