0x00 背景
我们知道,如果想要用burp截取iPhone流量,可以将iPone接入mac的共享wifi,再将iPhone的wifi代理设置为burp的监听接口与端口即可。但是实际使用中,ssl等流量有时并不会被转发到burp上,我个人推测是只有使用iOS内置的NSURLSession等库的时候代理的设置才会被使用。除此之外的情况,我们需要使用路由表,强制将流量转发到burp上去。
0x01 教程
- 打开mac网络共享,将iPhone连接上mac的热点。
-
打开burp,监听本地8080端口,并开启
support invisible proxying
选项。 -
开启转发功能:
sudo sysctl -w net.inet.ip.forwarding=1
- 添加
/etc/pf.anchors/proxy.rules
文件,内容如下:rdr pass on bridge100 inet proto tcp from any to any -> 127.0.0.1 port 8080 # rdr pass on bridge100 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080 # rdr pass on bridge100 inet proto tcp from any to any port 443 -> 127.0.0.1 port 8080
- 添加
/etc/pf-minor.conf
文件,内容如下:rdr-anchor "forwarding" load anchor "forwarding" from "/etc/pf.anchors/proxy.rules"
- 执行:
sudo pfctl -evf /etc/pf-minor.conf
。如果你想还原设定只需要执行sudo pfctl -evf /etc/pf.conf
即可。
0x02 Android上的方法
转发:
iptables -t nat -A OUTPUT -p tcp -j DNAT --to 192.168.2.1:8080
查看:
iptables -L
删除:
iptables -F
0x03 iphone设定信赖burp的证书
在iphone10以后,仅仅下载安装burp的证书还是不行,还需要在"設定->一般->情報->証明書以来設定"中开启对你安装的证书的信任才行。