无感知抓包的几种实现方式,除了ssl pinning,app无法检测

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 握手包跑包

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

cat /data/system/packages.xml | grep userId | grep com.qiyi.video 

无感知抓包是一种用于分析应用程序流量的方法,通过抓包可以获取应用程序的网络数据。常见的抓包方式是将手机设置为代理,将流量导向抓包软件。然而,这种方式容易被应用程序检测到。那么有没有一种不容易被检测到的方式呢?答案是肯定的。

下面分享几种可以实现无感知抓包的方法,其中前两种方法可以绕过SSL Pinning,即应用程序无法检测到抓包行为。

一、利用手机热点将流量导向抓包软件

这种方法有多种实现方式,我将介绍我目前使用的一种方式来说明思路:

  1. 准备两部手机,一部用于开启热点,另一部用于抓包。
  2. 在开启热点的手机上,需要满足以下要求:已经获取Root权限,能够同时连接WiFi和开启热点功能,已安装”VPN热点”和”Postern”软件。
    这个热点的作用是将连接到该热点的手机的流量导向抓包软件。首先,使用Postern将抓包软件设置为我们抓包手机的VPN代理,然后开启VPN热点,将VPN作为热点共享出去。
  3. 将抓包手机连接到热点。
    抓包手机需要满足以下要求:已安装抓包软件的证书。
    连接到开启热点的手机后,手机的流量就会通过热点流向抓包软件,这样我们就可以在抓包软件中看到连接到热点手机的流量,包括HTTPS流量。

特点:只需准备两部手机,即可方便地进行抓包操作。

二、基于透明代理对特定应用程序进行抓包

在安卓系统上,每个应用程序在安装后都会被分配一个唯一的用户ID(User ID),该用户ID的生命周期从应用程序成功安装开始,直到用户卸载应用程序结束。应用程序的包名和用户ID之间的映射关系可以在系统的”/data/system/packages.xml”文件中找到。

通过透明代理的方式,可以对特定应用程序进行抓包。具体步骤如下:

  1. 修改redsocks.conf文件。
    这个文件用于配置透明代理规则。

特点:只需一部手机,但操作步骤较多。

三、使用r0capture进行抓包

r0capture是一种无视SSL Pinning的抓包工具,可以直接使用,无需额外配置。

四、获取HTTPS会话密钥以解密通信内容

使用tcpdump抓取网络流量,并通过Wireshark进行分析,这种方式也是应用程序无感知的。然而,由于HTTPS通信是加密的,无法直接查看或分析明文内容。HTTPS通信是通过非对称加密协商出一个用于对称加密的密钥,然后使用该密钥进行通信的。如果我们能够获取到这个密钥,就可以解密出明文内容了。

在我们拥有手机的情况下,获取密钥是可行的,但是如何获取这个密钥,需要对HTTPS通信有更深入的理解。

进一步说,每个TCP连接的HTTPS使用不同的密钥,要自动记录密钥并生成一个供Wireshark分析的文件(Pre-Master-Secret log filename),工作量也不小。

此外,我们还需要对不同的SSL/TLS库进行兼容处理。Android应用程序可能使用不同的SSL/TLS库,包括系统提供的javax.net.ssl库、OpenSSL或BoringSSL、其他SSL/TLS库以及应用程序自定义的SSL/TLS库。

特点:无视SSL Pinning!但仍需进一步实现,工作量巨大。

以上是几种实现无感知抓包的方法,每种方法都有其特点和适用场景。根据具体需求和条件,选择合适的方法进行抓包操作。

赞(0)