IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android路由重定向+透明代理抓App包 -> 正文阅读

[移动开发]Android路由重定向+透明代理抓App包

前言

前几天发了篇帖:https://www.52pojie.cn/thread-1492439-1-1.html 其中简单罗列了最近抓包的一点思路。发出后收到很多反馈,称有点乱、不够详细等。这里承认写的比较草率,也没有认真排版。所以打算重新做人。这次加餐打算只着重介绍我的通杀方法。行不通的,可以去上篇帖子看一下其他思路。

这里还想在开头说一下自己的一点拙见,放在最后怕看官们坚持不到。我自己在抓包的过程中,也有碰到过突然抓得到,突然又g了的情况。不可否认里面有我对原理认识不够深刻的因素,但同时,我觉得抓包,或者说逆向,作为一种黑盒测试,在现在各种App,特别是大厂,风控防御水位日益升高的情况下,出现问题也是难免的,重要的是放平心态。

思维导图

?

怎么算抓包失败及失败原因

我认为有两种失败: 1、抓不到。即抓包界面空空空空如也。 2、看不到。即抓包界面空空空空如也。 这里你可能以为我又草率了,但其实没有。因为两种失败在抓包工具界面的表现效果是一样的。下面我详细解释一下。

大家都知道最基础的手机抓包方案:手机电脑置于同一网段下,a.手机设置中配置wifi代理,b.手机安装中间人的证书。这两种失败恰恰对应了ab两步操作。

抓不到,对应a:是指你想要的数据包,压根没有经过抓包工具这个中间人,因此界面空空如也。为什么呢?因为它被发现了。我们在设置中配置的wifi代理,其实只是给了手机一个option,选择,所谓选择,就是我不选也可以。那App为了不被中间人抓到包,自然不会走你给的这条路,而是选择NoProxy。

看不到,对应b:该情况虽然也是在抓包界面什么都没有,但抓包工具会给你“友好”的提示。如Burp中,送你一堆certificate_unknown的alerts;Charles中,抓到的包前面有个红叉。其原因牵扯到两个关键字:https、证书。若证书不被信任,https连接就无法实现。在操作b中,安装的证书属于用户证书。那问题就来了,Android7.0及以上,默认只信任系统证书。同时,除了系统证书校验,还可能存在单向校验,即App自定义证书来校验;双向校验,App与服务端彼此校验。凡此种种,都会导致https抓包失败。

了解了失败,下面了解一下成功。

怎么抓到

路由重定向+透明代理

介绍:最推荐,最简单,需要root。

原理:通过控制手机iptables,我们将手机的流量全部转发到电脑。同时,电脑端的抓包工具开启透明代理模式,让App以为自己仍在与服务器直接通信。

操作:

1、不用去设置中配置代理!

2、路由重定向:手机电脑置于同一网段下,手机开启adb服务。电脑中执行以下命令:

adb connect [手机ip]
adb shell
$ su
# iptables -t nat -A OUTPUT -d 0.0.0.0/0 -p tcp -j DNAT --to [电脑ip]

PS:取消重定向将-A改为-D。adb过程中出现问题的,可能是手机的adbd服务没有成功启动。可以借助一个小工具app:ADB工具安装器。它可以一键开启adb服务,同时也提供手机命令行的功能。

3、透明代理:不同于配置wifi代理到抓包工具监听的端口,让所有流量都流经它,所谓透明,是让App以为自己在正常地与服务器通信,因此,该发往a端口的报文还是发往a。我们要做的就是监听这些端口,比如80和443。以Burp为例,作出如下配置。其中的Invisible选项,就是通过DNS污染让App认为我们的中间人就是服务器。

4、配置好后,就能抓到NoProxy请求了。

怎么看到

到此为止,本文富有技术含量的部分实际已经结束了,剩下的属于老生常谈,我就不展开讲了。

系统校验证书

前面基础方案提到,我们安装的中间人证书作为用户证书已经得不到系统的信任。那解决办法也很简单,只要让用户证书变成系统证书就行。

这里我推荐使用Magisk的模块https://github.com/Magisk-Modules-Repo/movecert。安装证书后重启,它会帮你搞定。

单向校验证书

大家熟知的方法是使用Xposed的JustTrustMe模块,但它已经很久没有更新了,可以尝试珍惜大佬的JustTrustPulsh:https://bbs.pediy.com/thread-254114.htm

尾声

以上三步,能够抓到大部分App的包(双向校验除外)。

感觉逐渐掌握了水文的技巧。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-19 12:09:56  更:2021-08-19 12:10:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:02:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码