mitmproxy over OSX 10.7
Mitmproxy is an SSL-capable man-in-the-middle HTTP proxy. It provides a console interface that allows traffic flows to be inspected and edited on the fly. In other words is like a tcpdump from http.
To install:
- Check your python version (you need 2.6.x or 2.7.x). If have any trouble with this, install macports and "sudo port install python26"
- Download urwid from here and next, uncompress and "sudo python setup.py install"
- Checkout the source code with git "git clone https://github.com/cortesi/mitmproxy.git"
- Install using the setup.py script "sudo python setup.py install". This is the output:
# python setup.py install/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'install_requires' warnings.warn(msg)running installrunning buildrunning build_pycreating buildcreating build/libcreating build/lib/libmproxycopying libmproxy/__init__.py -> build/lib/libmproxycopying libmproxy/cmdline.py -> build/lib/libmproxycopying libmproxy/controller.py -> build/lib/libmproxycopying libmproxy/dump.py -> build/lib/libmproxycopying libmproxy/encoding.py -> build/lib/libmproxycopying libmproxy/filt.py -> build/lib/libmproxycopying libmproxy/flow.py -> build/lib/libmproxycopying libmproxy/proxy.py -> build/lib/libmproxycopying libmproxy/script.py -> build/lib/libmproxycopying libmproxy/tnetstring.py -> build/lib/libmproxycopying libmproxy/utils.py -> build/lib/libmproxycopying libmproxy/version.py -> build/lib/libmproxycreating build/lib/libmproxy/consolecopying libmproxy/console/__init__.py -> build/lib/libmproxy/consolecopying libmproxy/console/common.py -> build/lib/libmproxy/consolecopying libmproxy/console/connlist.py -> build/lib/libmproxy/consolecopying libmproxy/console/connview.py -> build/lib/libmproxy/consolecopying libmproxy/console/help.py -> build/lib/libmproxy/consolecopying libmproxy/console/kveditor.py -> build/lib/libmproxy/consolecreating build/lib/libmproxy/contribcopying libmproxy/contrib/__init__.py -> build/lib/libmproxy/contribcopying libmproxy/contrib/pyparsing.py -> build/lib/libmproxy/contribcreating build/lib/libmproxy/resourcescopying libmproxy/resources/ca.cnf -> build/lib/libmproxy/resourcescopying libmproxy/resources/cert.cnf -> build/lib/libmproxy/resourcesrunning build_scriptscreating build/scripts-2.7copying and adjusting mitmproxy -> build/scripts-2.7copying and adjusting mitmdump -> build/scripts-2.7changing mode of build/scripts-2.7/mitmproxy from 644 to 755changing mode of build/scripts-2.7/mitmdump from 644 to 755running install_libcreating /Library/Python/2.7/site-packages/libmproxycopying build/lib/libmproxy/__init__.py -> /Library/Python/2.7/site-packages/libmproxycopying build/lib/libmproxy/cmdline.py -> /Library/Python/2.7/site-packages/libmproxycreating /Library/Python/2.7/site-packages/libmproxy/consolecopying build/lib/libmproxy/console/__init__.py -> /Library/Python/2.7/site-packages/libmproxy/consolecopying build/lib/libmproxy/console/common.py -> /Library/Python/2.7/site-packages/libmproxy/consolecopying build/lib/libmproxy/console/connlist.py -> /Library/Python/2.7/site-packages/libmproxy/consolecopying build/lib/libmproxy/console/connview.py -> /Library/Python/2.7/site-packages/libmproxy/consolecopying build/lib/libmproxy/console/help.py -> /Library/Python/2.7/site-packages/libmproxy/consolecopying build/lib/libmproxy/console/kveditor.py -> /Library/Python/2.7/site-packages/libmproxy/consolecreating /Library/Python/2.7/site-packages/libmproxy/contribcopying build/lib/libmproxy/contrib/__init__.py -> /Library/Python/2.7/site-packages/libmproxy/contribcopying build/lib/libmproxy/contrib/pyparsing.py -> /Library/Python/2.7/site-packages/libmproxy/contribcopying build/lib/libmproxy/controller.py -> /Library/Python/2.7/site-packages/libmproxycopying build/lib/libmproxy/dump.py -> /Library/Python/2.7/site-packages/libmproxycopying build/lib/libmproxy/encoding.py -> /Library/Python/2.7/site-packages/libmproxycopying build/lib/libmproxy/filt.py -> /Library/Python/2.7/site-packages/libmproxycopying build/lib/libmproxy/flow.py -> /Library/Python/2.7/site-packages/libmproxycopying build/lib/libmproxy/proxy.py -> /Library/Python/2.7/site-packages/libmproxycreating /Library/Python/2.7/site-packages/libmproxy/resourcescopying build/lib/libmproxy/resources/ca.cnf -> /Library/Python/2.7/site-packages/libmproxy/resourcescopying build/lib/libmproxy/resources/cert.cnf -> /Library/Python/2.7/site-packages/libmproxy/resourcescopying build/lib/libmproxy/script.py -> /Library/Python/2.7/site-packages/libmproxycopying build/lib/libmproxy/tnetstring.py -> /Library/Python/2.7/site-packages/libmproxycopying build/lib/libmproxy/utils.py -> /Library/Python/2.7/site-packages/libmproxycopying build/lib/libmproxy/version.py -> /Library/Python/2.7/site-packages/libmproxybyte-compiling /Library/Python/2.7/site-packages/libmproxy/__init__.py to __init__.pycbyte-compiling /Library/Python/2.7/site-packages/libmproxy/cmdline.py to cmdline.pycbyte-compiling /Library/Python/2.7/site-packages/libmproxy/console/__init__.py to __init__.pycbyte-compiling /Library/Python/2.7/site-packages/libmproxy/console/common.py to common.pycbyte-compiling /Library/Python/2.7/site-packages/libmproxy/console/connlist.py to connlist.pycbyte-compiling /Library/Python/2.7/site-packages/libmproxy/console/connview.py to connview.pycbyte-compiling /Library/Python/2.7/site-packages/libmproxy/console/help.py to help.pycbyte-compiling /Library/Python/2.7/site-packages/libmproxy/console/kveditor.py to kveditor.pycbyte-compiling /Library/Python/2.7/site-packages/libmproxy/contrib/__init__.py to __init__.pycbyte-compiling /Library/Python/2.7/site-packages/libmproxy/contrib/pyparsing.py to pyparsing.pycbyte-compiling /Library/Python/2.7/site-packages/libmproxy/controller.py to controller.pycbyte-compiling /Library/Python/2.7/site-packages/libmproxy/dump.py to dump.pycbyte-compiling /Library/Python/2.7/site-packages/libmproxy/encoding.py to encoding.pycbyte-compiling /Library/Python/2.7/site-packages/libmproxy/filt.py to filt.pycbyte-compiling /Library/Python/2.7/site-packages/libmproxy/flow.py to flow.pycbyte-compiling /Library/Python/2.7/site-packages/libmproxy/proxy.py to proxy.pycbyte-compiling /Library/Python/2.7/site-packages/libmproxy/script.py to script.pycbyte-compiling /Library/Python/2.7/site-packages/libmproxy/tnetstring.py to tnetstring.pycbyte-compiling /Library/Python/2.7/site-packages/libmproxy/utils.py to utils.pycbyte-compiling /Library/Python/2.7/site-packages/libmproxy/version.py to version.pycrunning install_scriptscopying build/scripts-2.7/mitmdump -> /usr/local/bincopying build/scripts-2.7/mitmproxy -> /usr/local/binchanging mode of /usr/local/bin/mitmdump to 755changing mode of /usr/local/bin/mitmproxy to 755running install_egg_infoWriting /Library/Python/2.7/site-packages/mitmproxy-0.6-py2.7.egg-info
Using:
All you need is execute the command "mitmproxy" in a terminal and configure your preferred browser to use the manual proxy at: localhost port 8080.
So nice and very useful with the uncomfortable "calls to home" from certain apps and web apps.

