Burp Suite 的块何 Proxy 模块默认监听 8080 端口,只要 Burp 一启动,隐藏这个端口就暴露在本机所有网络接口上。块何局域网里随便谁扫一下 8080,隐藏就能看到你的块何 Burp 代理在跑。更麻烦的隐藏是,某些目标服务器会检测请求来源,块何一旦发现流量经过已知的隐藏 Burp 代理特征,直接返回 403 或封 IP。块何隐藏 Proxy 模块不是隐藏可选项,是块何干活时的基本操作。
最直接的隐藏一招:改监听地址。打开 Proxy → Options → Proxy Listeners,块何选中当前监听器,隐藏点 Edit。块何把 Bind to address 从 "All interfaces" 改成 "Loopback only"。这样 Burp 只监听 127.0.0.1,外部机器根本连不上。我见过太多人图省事用 All interfaces,结果在咖啡厅连公共 Wi-Fi 时被人扫到代理端口,浏览器流量全被人看光。改完这个设置,Burp 本身不会给你任何提示,但你的攻击面已经小了一大圈。
端口号也得换。8080 是 Burp 的默认值,也是扫描器重点照顾的对象。改成 18080、28080 这类不常见端口,能挡掉大部分自动化扫描。别用 8888、3128 这种同样烂大街的代理端口。我习惯用 18081,配合浏览器插件 SwitchyOmega 做快速切换,用久了形成肌肉记忆,比记 8080 还顺手。
光改地址和端口还不够。Burp 的 HTTP 请求里会带一些默认头,比如 User-Agent: Mozilla/5.0 (compatible; Burp Suite) 这种,目标服务器一看就知道你在用 Burp。去 Proxy → Options → Intercept Client Requests 下面,找到 Match and Replace 规则,把 User-Agent 替换成正常浏览器的值。我通常直接抄 Chrome 的 UA 字符串,或者干脆留空让浏览器自己发。这一步做完,请求包看起来就跟普通浏览器没区别了。
还有个小细节:Burp 的 Proxy 在拦截模式下会暂停请求,如果你挂着代理去访问一些对时间敏感的服务,响应超时会导致连接被重置。把 Intercept is on 改成 off,让流量自动放行,只在需要抓包时再开。这不算严格意义上的“隐藏”,但能减少异常连接特征。有些 WAF 会统计请求间隔,你手动放行和自动放行的节奏完全不一样,自动放行更像真实用户。
如果你在团队里共用一台测试机,Burp 的 Proxy 历史记录会留在项目文件里。导出项目时记得把 Proxy history 清掉,或者用临时项目。我见过有人把带 cookie 和 token 的 Burp 项目文件直接发给客户,里面全是内部系统的请求记录。这跟隐藏没关系,但属于同一个安全习惯——别让不该露的东西露出来。
最后说一个偏门但有效的做法:用 iptables 或 pf 做端口转发。把本机 80 端口的流量重定向到 Burp 监听的 18080,浏览器不用配代理也能抓包。这样 Burp 的监听端口对外完全不可见,因为流量走的是 80。Linux 下一条命令:iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-port 18080。macOS 用 pf 的 rdr 规则也能实现。缺点是 HTTPS 流量需要额外处理证书,而且只适合本机调试。但如果你只是想让 Burp 彻底隐身,这招最干净。
隐藏 Burp Proxy 的本质是减少特征。监听地址、端口、请求头、连接模式,每一个都是指纹。改掉它们不需要多高深的技术,但能让你在渗透测试里少踩很多坑。别等到目标封了你 IP 才想起来改设置。