安装mitmproxy实现流量分析
简介
mitmproxy 它是一个python实现的代理库,可以实现流量的拦截,注入,修改,重放等。
提供操作流量的api,很容易实现自定义的需求。
https://github.com/mitmproxy/mitmproxy
安装
前提有python环境,安装了pip
pip install mitmproxy
配置
第一次会运行mitmdump
会在~/.mitmproxy/
下生成根证书文件。
要把这个根证书文件放在你要流量分析设备的信任根证书列表中。
windows 导入根证书
- 选择mitmproxy-ca-cert.cer,点安装证书
- 进入证书导入向导,点下一步
- 证书存储:选第二项将所有的证书放入下列存储中
- 在选择证书存储位置的对话框,选受信任的根证书颁发机构。
- 完成证书导入向导
- 会有一个安全性警告,选是。(注意:导入未知根证书会有安全风险)
firefox 导入根证书
- 选options>Advanced>Certificates>View Certificates
- 会看到Certificate Manager,选Authoritees,点import
- 选择mitmproxy-ca-cert.cer
- 会出现对话框Downloading Certificate,勾选Trust this CA to identify websites.点OK
iphone 导入根证书
- 在电脑mitmproxy-ca-cert.cer所在目录建一个http服务如用python:
python -m SimpleHTTPServer
,目地是局域网内的别的机器可以访问这个证书文件 - 打开Safari,输入证书文件地址
- 会进入安装描述文件,点安装
使用
基本使用
以看iphone的http/https流量为例
在电脑上运行mitmdump -b 0.0.0.0 -p 8889
在手机上调整手机的代理为电脑ip 加上面的端口
然后就可以看到窗口显示手机上的发出了哪些http/https流量
高级使用
在电脑上运行mitmdump -b 0.0.0.0 -p 8889 -s xxx.py
xxx.py可写自定义操作数据的代码。
详细的见项目页中的例子
https://github.com/mitmproxy/mitmproxy/tree/14b33dca5d19afc2427499e25aee8b7439b4b485/examples
安装时可能会遇到的问题
https不支持
出现
1 |
|
解决方案pip install pyOpenSSL
安装pydivert时卡住
可能是因为国内网络环境问题
自备代理
在安装前执行set HTTPS_PROXY=http://127.0.0.1:1080
pydivert安装出错
1 |
|
在为c++库没的安装,见
https://stackoverflow.com/questions/38320033/python-2-7-pip-failed-building-wheel-for
要安装VCForPython27.msi
python2.x与python3.x的问题
出现
1 |
|
不想改电脑环境的可以使用低版本的mitmproxy pip install "mitmproxy==0.18.2"