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

无感知抓包有什么用?

要分析app的流量需要需要进行抓包,常用的抓包方式就是给手机设置一个代理将流量导到抓包软件。这里给手机设置代理,不管是使用wifi代理还是VPN代理都可以被检测到。

有没有不会被检测到的方式呢?有的。

分享几种app无感知的抓包方式,前2种除了ssl pinning,app无法检测

一、 手机只管连上wifi,让wifi帮我把流量导到抓包软件上去

这个实现方式不止一种的,我介绍我在用的这种来阐述这个思路

1.准备2台手机,1台用于开启热点,1台是我们要抓包的手机

2. 开启热点

手机要求:要root、要能连着wifi的同时能开启热点、安装软件“vpn热点”、安装postern

这个热点的作用是为了把连这个热点的手机的流量导到抓包软件上去,先用postern设置抓包软件为我们这台手机的vpn代理,然后开启vpn热点,将vpn作为热点共享出去。

3.手机连上热点

手机要求:安装抓包软件的证书

连上上台手机的热点,这时手机的流量就会通过热点流到抓包软件上去,我们这时候就可以在抓包软件上看到连了热点的手机的流量了,当然也包括https的流量。

特点:开启几个应用就可以抓包,很方便,需要2台手机

二、在网上看到的一个方案,安卓上基于透明代理对特定APP抓包

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

Android系统在用户安装好某个APP后,就会给这个APP分配一个设备内唯一的user id,这个user id的生存周期是从APP成功安装开始到APP被用户卸载结束。APP的包名和它的user id直接的映射关系可以在系统的/data/system/packages.xml文件得到,这个文件内容类似于如下,里面就有package name和userId的映射关系。
在这里插入图片描述

安卓查看应用的userId:

cat /data/system/packages.xml | grep userId | grep com.qiyi.video 
iptables -t nat -A OUTPUT -p tcp ! -d 127.0.0.1 -m owner --uid-owner 10332 --dport 0:65535 -j DNAT --to-destination 127.0.0.1:16666

修改 redsocks.conf

su
/data/local/tmp/redsocks2_arm64

特点:一台手机就行,步骤比较多

三、r0capture

特点:无视ssl pinning!开箱即用。

四、得到https的会话密钥解密通信内容

使用tcpdump抓取网络流量再通过wireshark进行分析,这种方式也是app无感知的,但是无法查看https的流量,因为https通信是加密的,所以不能直接查看或分析https传输的明文内容。https通信是客户端和服务端通过非对称加密协商出一个用于对程加密的密钥而后使用这个密钥进行对称加密的通信,如果我们能通过hook的方式得到这个密钥,是不是我们就可以解密出明文内容了呢?

手机在我们手上了,要得到密钥肯定是可以做到的,但如何得到这个密钥,我对https的通信还需要有更深刻的理解,,,
进一步说,可以得到密钥,不同tcp连接的https使用不同的密钥,要自动实现记录密钥组成一个文件(Pre-)Master-Secret log filename给wireshark分析,工作量也不小。。。

再进一步说,我们还要对不同的SSL/TLS 库进行兼容处理。
Android 应用程序可能使用不同 SSL/TLS 库:系统提供的 javax.net.ssl 库、OpenSSL 或 BoringSSL、其他 SSL/TLS 库、app自定义的SSL/TLS 库

特点:无视ssl pinning!还待实现,工作量巨大o_o

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值