树莓派WiFi热点配置Burp代理后无响应问题求助
大家好,我最近折腾树莓派热点加Burp代理遇到了瓶颈,想请各位大佬帮忙分析下问题出在哪。
我用树莓派Model B+搭了个WiFi热点,IP设为192.168.0.1,目标是把所有HTTP(80端口)和HTTPS(443端口)流量都重定向到同一局域网里192.168.0.29的8080端口——这台机器上跑着Burp Proxy,而且已经开启了「support invisible proxying」(隐形代理支持)选项。
已完成的配置&正常工作的部分
- 热点是用hostapd搭建的,目前客户端能正常连接,不配置代理时也能正常上网
- 树莓派上设置了这几条iptables规则:
sudo iptables-legacy -t nat -A POSTROUTING -j MASQUERADE sudo iptables-legacy -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.29:8080 sudo iptables-legacy -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 192.168.0.29:8080
出现的问题
配置完上面的代理规则后,热点就不正常了。我能看到客户端的请求确实发往了192.168.0.29的代理,但不管是Burp那边还是客户端,都收不到任何响应。
举个实际测试的例子:我用curl访问webhook.site的一个测试地址,终端输出显示已经完成了TLS握手,也发送了GET请求,但一直卡在那里没有后续,而且webhook.site那边根本没收到我的请求:
curl "https://webhook.site/213c00e4-5ec8-4c8d-a89a-34d542c6d81/network=PiAP" -v [17/12/22 14:07:10]
- Trying 46.4.105.116:443...
- Connected to webhook.site (46.4.105.116) port 443 (#0)
- ALPN: offers h2
- ALPN: offers http/1.1
- CAfile: /etc/ssl/cert.pem
- CApath: none
- (304) (OUT), TLS handshake, Client hello (1):
- (304) (IN), TLS handshake, Server hello (2):
- (304) (IN), TLS handshake, Unknown (8):
- (304) (IN), TLS handshake, Certificate (11):
- (304) (IN), TLS handshake, CERT verify (15):
- (304) (IN), TLS handshake, Finished (20):
- (304) (OUT), TLS handshake, Finished (20):
- SSL connection using TLSv1.3 / AEAD-AES256-GCM-SHA384
- ALPN: server did not agree on a protocol. Uses default.
- Server certificate:
- subject: C=PortSwigger; O=PortSwigger; OU=PortSwigger CA; CN=webhook.site
- start date: Dec 3 13:00:10 2022 GMT
- expire date: Dec 3 13:00:10 2023 GMT
- subjectAltName: host "webhook.site" matched cert's "webhook.site"
- issuer: C=PortSwigger; ST=PortSwigger; L=PortSwigger; O=PortSwigger; OU=PortSwigger CA; CN=PortSwigger CA
- SSL certificate verify ok.
GET /213c00e4-5ec8-4c8d-a89a-34d542c6d81/network=PiAP HTTP/1.1
Host: webhook.site
User-Agent: curl/7.84.0
Accept: /^C
补充的排查信息
- 192.168.0.29的网络配置(截取关键部分):
ifconfig | grep 192 # 输出:inet 192.168.0.29 netmask 0xffffff00 broadcast 192.168.0.255 - traceroute测试路由是通的:
traceroute google.com
traceroute to google.com (142.250.181.206), 64 hops max, 52 byte packets
1 192.168.0.1 (192.168.0.1) 16.717 ms 4.513 ms 3.043 ms
2 fritz.box (192.168.178.1) 3.710 ms 3.758 ms 3.484 ms
3 ip1f11XXXX.dynamic.kabel-deutschland.de (31.17.8X.XXX) 17.808 ms 35.506 ms 14.934 ms
4 ip5886XXXX.static.kabel-deutschland.de (88.134.21X.XXX) 16.788 ms 14.614 ms 14.202 ms
5 ip5886XXXX.dynamic.kabel-deutschland.de (88.134.18X.XXX) 13.349 ms 13.917 ms 16.057 ms
6 145.254.3.88 (145.254.3.88) 20.858 ms 18.649 ms 17.655 ms
7 145.254.2.217 (145.254.2.217) 26.106 ms 16.028 ms 17.017 ms
8 72.14.194.138 (72.14.194.138) 17.006 ms...
现在实在搞不懂为什么请求发出去了但收不到响应,是不是iptables规则漏了什么,或者Burp的隐形代理还有什么配置没到位?麻烦各位大佬帮忙看看,谢谢!
备注:内容来源于stack exchange,提问作者HackLikeDemons

