首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Android 基于路由转发工具(iptables)的App定向抓包

Android 基于路由转发工具(iptables)的App定向抓包

作者头像
rys
修改2026-01-08 19:26:17
修改2026-01-08 19:26:17
510
举报
文章被收录于专栏:问题解决问题解决

补充知识:

透明代理:

透明代理拦截出站网络流量,并通过自身进行转发,而终端设备则不会察觉到中介的存在。这种模式可对请求进行集中监控,无需在客户端设备或应用程序内进行任何手动特征。

iptables:

iptable命令是Linux上常用的防火墙软件,是netfilter项目的一部分。

(1)iptabtles是采用数据包过滤机制工作的,所以它会对请求的数据包的包头进行分析,并根据我们预先设定的规则进行匹配来决定是否可以进入主机。

(2)iptbales四表五链

  • INPUT链:处理输入数据包
  • OUTPUT链:处理输出数据包
  • FORWARD链:处理转发数据包
  • PREROUTING链:用于目标地址转换(DNAT)
  • POSTOUTING链:用于源地址转换(SNAT)

工具

Charles、redsocks、iptables

操作步骤

1. 对Charles的代理进行设置,需要确保设置上透明代理,查看Proxy >Proxy Settings > HTTP Proxy > ✅ Enable transparent HTTP proxying。

Charles代理配置
Charles代理配置

2. Android手机装好Charles的证书,手机无需配置手动代理,其中高版本Android系统证书信任可参考:https://cloud.tencent.com.cn/developer/article/2496038。 3. 下载redsocks(https://fh0.github.io/assets/android-redsocks2.tgz)后解压。

解压后的可执行文件,根据手机的架构选择一个使用即可
解压后的可执行文件,根据手机的架构选择一个使用即可

4. 创建配置文件redsocks.conf,具体内容如下:

代码语言:txt
复制
base {
    log_debug = off;
    log_info = on;
    log = stderr;
    daemon = off;
    redirector = iptables;
}

redsocks {
    bind = "127.0.0.1:16666";
    relay = "10.67.183.87:8889";
    type = socks5;
    autoproxy = 0;
    timeout = 13;
}

其中 bind 是透明代理地址,relay 是Charles代理且端口要用Proxy Settings>Socks Proxy的端口,⚠️ 注意配置文件的每一对{}后面应该有一个空行,即最后一个 } 需要再还一行。

5. 连接手机,确保adb命令可用,使用adb push 命令将 redsocks.conf、 redsocks2_arm /redsocks2_arm64 推入/data/local/tmp 中。使用 adb shell getprop ro.product.cpu.abi 可以查看手机CPU架构,如果显示arm64-v8a

则使用redsocks2_arm64。

代码语言:txt
复制
adb push /path/redsocks2_arm64 /data/local/tmp/redsocks2
adb push /path/redsocks.conf /data/local/tmp

6. 查询需要定向抓包APP的UID,使用adb shell dumpsys package packagename|grep appId,查询出应用的UID,这里的appId就是UID。

UID查询
UID查询

7. 配置iptables,其中--uid-owner 后面的参数需要修改为需要定向抓包APP的UID,--to-destination 需要修改为redsocts的代理地址及端口。

代码语言:txt
复制
iptables -t nat -A OUTPUT -p tcp ! -d 127.0.0.1 -m owner --uid-owner 10195 --dport 0:65535 -j DNAT --to-destination 127.0.0.1:16666 

参考文档: https://xtls.github.io/document/level-2/transparent_proxy/transparent_proxy.html#iptables-nftables

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 补充知识:
    • 透明代理:
    • iptables:
  • 工具
  • 操作步骤
    • 参考文档: https://xtls.github.io/document/level-2/transparent_proxy/transparent_proxy.html#iptables-nftables
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档