安卓利用iptables转发到流量绕过代理检测

抓包总失败?一招教你破解安卓App的代理检测!

Posted by 浅唱 on February 2, 2026

痛点直击:为什么你的安卓App抓不到包?

当渗透测试遇到这种情况:明明设置了Burp代理,App却罢工不上网?或是流量死活不走代理?这往往是应用层的代理检测机制在作祟!

核心原理:用「防火墙」欺骗App

安卓基于Linux内核,通过iptables防火墙将流量强制转发到本地代理,彻底绕过应用层检测!
(相当于给App的流量套上”隐身衣”)

工具准备清单

  1. 已root的安卓手机(推荐模拟器:Genymotion)
  2. Burp Suite(社区版即可)
  3. ADB调试工具
  4. Termux终端(手机端操作)

四步攻破代理检测(附代码)

配置Burp「隐身模式」

  1. 打开Burp → Proxy → Options
  2. 绑定地址:0.0.0.0:8080(或者实际IP地址)
  3. 关键操作:勾选Support invisible proxying (伪装成正常服务器,避免被识别为代理)

手机端iptables防火墙规则

# ADB连接手机后执行
adb shell
su
iptables -t nat -A OUTPUT -p tcp -j DNAT --to 127.0.0.1:8080 (或者实际代理IP地址)

代码解读:

  • -t nat:操作NAT表(网络地址转换)
  • -A OUTPUT:拦截所有外发流量
  • --to 127.0.0.1:8080:强制重定向到本地代理(或者实际代理IP地址)

实战抓包演示

  1. 打开手机上的目标App
  2. 触发任意网络请求(如登录操作)
  3. 查看Burp History面板 → 流量全部现形!

高阶玩法:定向爆破

只针对特定App进行转发(以包名进程id为准):

iptables -t nat -A OUTPUT -p tcp -m owner --uid-owner com.target.app -j DNAT --to 127.0.0.1:8080

避坑指南(血泪经验)

  1. 重启后iptables规则会丢失,不建议用技术手段保持修改,每次临时测试前修改,测完重启手机即可。
  2. HTTPS证书错误?用xoposed模块信任证书或者安装Burp的CA证书到系统证书目录:/system/etc/security/cacerts/

技术对比

传统代理 透明代理方案
应用层设置 内核层流量劫持
易被检测 完全隐身
需要配置WIFI 绝大部分网络环境通用(VPN不行)

参考文章

转载自微信公众平台 CodeRevolt原创