安装mitmproxy Https抓包证书
macbook上 mitmproxy 抓取安卓手机https流量
重点是安装mitmproxy Https抓包证书
前提
手机需要root,macbook上需要安装好mitmproxy
macbook安装mitmproxy
需要完成下文1-3:
https://github.com/doug-leith/cydia
(接入有线网并开启无线热点)
启用 IP 转发:
sudo sysctl -w net.inet.ip.forwarding=1
保存文件:
https://github.com/doug-leith/cydia/blob/main/pf.conf
最后两行改为:
rdr on bridge100 inet proto tcp to any port {80, 443} -> 127.0.0.1 port 8080
block drop quick on bridge100 inet proto udp to any port 443
在pf.conf所在文件夹执行:
sudo pfctl -f pf.conf
sudo pfctl -e
编辑文件/etc/sudoers,末尾加上一行:
ALL ALL=NOPASSWD: /sbin/pfctl -s state
测试mitmproxy
普通模式:
mitmweb --showhost --ssl-insecure --rawtcp --listen-port 8888
透明模式:
mitmweb --mode transparent –showhost
upstream模式:
mitmweb --mode upstream:127.0.0.1:7890 --showhost --ssl-insecure --rawtcp --listen-port 8888
安装证书到手机并设置为系统证书
macbook上命令行输入 mitmproxy完成首次启动,获得~/.mitmproxy,其中包含mitmproxy的CA证书
在macbook中找到mitmproxy的证书(例如在/Users/gossip/.mitmproxy)
cd ~/.mitmproxy/
openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.cer | head -1
得到输出,例如c8450d0d
cp mitmproxy-ca-cert.cer c8750f0d.0
adb push c8750f0d.0 /data/local/tmp
从https://github.com/doug-leith/cydia/blob/main/下载cacert_setup.sh 和 cacert.sh,将其中内容用c8750f0d替换后,放入手机
adb push cacert.sh /data/local/tmp
adb push cacert_setup.sh /data/local/tmp
adb shell
su
cd /data/local/tmp
chmod a+x cacert*
cp cacert.sh /data/adb/service.d/
./cacert_setup.sh
如果出现No such file or directory提示,通常是由于dos格式与unix 格式差异。
使用vi或者vim,看sh脚本通常可以发现问题
例如,每行末尾多了^M
去掉即可