使用Packet Filter将Mac热点中的流量转发到Burp

一般情况下,Burp抓手机APP的HTTP/HTTPS请求时可在系统代理或者VPN代理软件上设置代理服务器,但是部分APP存在代理检测,发现存在代理则退出应用,或是部分APP的请求不通过代理。此时可利用Packet Filter将手机流量转发到Burp代理上,避免以上情况发生,从而抓到请求包。

使用步骤:

  1. 打开Macbook的网络共享,iPhone连接Macbook共享的网络(热点)。
  2. 打开Burp,监听本地端口,并打开Support invisible proxying选项。
check-support-invisible-proxying
  1. 开启转发功能:sudo sysctl -w net.inet.ip.forwarding=1

  2. 添加/etc/pf.anchors/proxy.rules文件,内容如下:

1
2
3
4
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
  1. 添加/etc/pf-minor.conf文件,内容如下:
1
2
rdr-anchor "forwarding"
load anchor "forwarding" from "/etc/pf.anchors/proxy.rules"
  1. 执行:sudo pfctl -evf /etc/pf-minor.conf
pfctl

⚠️:还原设定时只需执行:sudo pfctl -evf /etc/pf.conf,并且重启热点

sudo pfctl -d关闭packet filter

总结:本质上是通过防火墙将某张网卡的流量转发到Burp。在Linux和Windows操作系统中配合防火墙进行流量转发能得到同样的效果。