安卓上基于透明代理对APP抓包

news/2024/11/24 6:52:53/

简述

使用iptables将手机的全部tcp流量转到指定的透明代理上;
再使用redsocks将流量转发到正向代理,如Charles的socks5代理

基于iptables + redsocks2 + Charles,最终实现对安卓APP进行抓包,且APP无感知
即APP不能通过检查系统代理或者VPN来判断是不是有抓包行为

准备

root过的安卓手机一部,电脑一台
redsocks2 下载地址:https://fh0.github.io/assets/android-redsocks2.tgz

步骤

创建配置文件,名为redsocks.conf,内容如下:

base {log_debug = off;log_info = on;log = stderr;daemon = off;redirector = iptables;
}redsocks {bind = "127.0.0.1:8080";relay = "192.168.0.132:7777";type = socks5;autoproxy = 0;timeout = 10;
}

其中bind就是透明代理地址,relay就是Charles的代理地址

打开终端adb shell 连接手机

  1. 保存现有的iptables规则
iptables-save > /data/local/tmp/iptables.rules
  1. 假如要恢复规则,需要重启手机或者输入
iptables-restore /data/local/tmp/iptables.rules
  1. 上传文件,开启透明代理
adb push redsocks2_arm64 /data/local/tmp/redsocks
adb shell chmod +x /data/local/tmp/redsocks
adb shell
su
cd /data/local/tmp
iptables -t nat -A OUTPUT -p tcp ! -d 127.0.0.1 -m multiport --dports 80,443 -j DNAT --to-destination 127.0.0.1:8080
./redsocks
  1. Charles 设置Socks5代理端口7777

指定端口、App

上述步骤完成,就达到了抓包App无感知的目的
假如不想让全局的流量都走代理

  1. 指定端口
    其实上面已经写了,当前是指定的80,443端口,也可以指定0-65535,改为 --dports 0:65535即可
  2. 指定App
    首先要找到App的uid

先打开你的APP,然后ps -ef命令找到有你的应用包名那一行,第一列就是uid
通常你看到的是u0_a428这样的,那么后面的命令,uid相关的可以写成u0_a428,也可以写成10428
然后把命令换成

iptables -t nat -A OUTPUT -p tcp ! -d 127.0.0.1 -m owner --uid-owner 10428 --dports 80,443 -j DNAT --to-destination 127.0.0.1:8080

参考
https://blog.seeflower.dev/archives/207/
https://mp.weixin.qq.com/s/P0ESUUXBmq2aQnrqDHsDaw
https://blog.mythsman.com/post/62791fb4b5467000017d5c6e/


http://www.ppmy.cn/news/97556.html

相关文章

springboot接口返回的json字符串如何不显示null值字段

springboot接口返回的json字符串如何不显示null值字段 POSTMAN 测试接口时,默认字段值即使是null也显示出来,如何去掉更加简洁?这个跟POSTMAN无关,POSTMAN仅仅是展示response的body而已 思考:为什么要去掉null值的字…

deepfloyd/IF

Stable Diffusion团队放大招!新绘画模型直出AI海报,实现像素级图像生成AI画文字终于能画对了https://mp.weixin.qq.com/s/_pwBD4-wLA9zNHBpD6WdNgDeepFloyd IF — DeepFloydhttps://deepfloyd.ai/deepfloyd-ifhttps://colab.research.google.com/#scroll…

如何安装宝塔面板-唯一客服系统文档中心

宝塔面板是安全高效的服务器运维面板 使用宝塔前: 手工输入命令安装各类软件,操作起来费时费力并且容易出错,而且需要记住很多Linux的命令,非常复杂。 使用宝塔后: 2分钟装好面板,一键管理服务器&#xff0…

JavaScript语法专题

1. 异步操作 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width,…

一道经典的网红面试题:从URL输入到页面展现到底发生了什么?

目录 &#x1f3ee; 前言 一、URL 到底是啥 二、域名解析&#xff08;DNS&#xff09; 三、TCP 三次握手 四、发送 HTTP 请求 五、服务器处理请求并返回 HTTP 报文 六、浏览器解析渲染页面 1.根据 HTML 解析 DOM 树 2.根据 CSS 解析生成 CSS 规则树 3.结合 DOM 树和…

第三期:那些年,我们一起经历过的链表中的浪漫

PS&#xff1a;每道题解题方法不唯一&#xff0c;欢迎讨论&#xff01;每道题后都有解析帮助你分析做题&#xff0c;答案在最下面&#xff0c;关注博主每天持续更新。 1. 两个链表的第一个公共节点 “我走过我的世界&#xff0c;再从你的世界走一遍” “你走过你的世界&#x…

redis未授权访问漏洞

1、什么是redis未授权访问漏洞 Redis安装后&#xff0c;如果绑定在 0.0.0.0:6379&#xff0c;并且没有进行采用相关的策略&#xff0c;比如添加防火墙规则避免其他非信任来源 ip 访问等&#xff0c;这样将会将 Redis 服务暴露到公网上&#xff0c;如果在没有设置密码认证或使用…

JetBrains的C和C++集成开发环境CLion 2023版本在Linux系统的下载与安装配置教程

目录 前言一、CLion安装二、使用配置总结 前言 CLion是一款为C和C语言开发人员设计的集成开发环境&#xff08;IDE&#xff09;。它提供了丰富的功能和工具&#xff0c;可以帮助开发人员更高效地编写、调试和部署C和C应用程序。注&#xff1a;已在CentOS7.9和Ubuntu20.04安装测…