HTTPS流量都会涉及证书问题,

证书认证

SSL 单向认证

App使用了证书固定(Pinning)技术后,在这个场景里抓包,App会返回网络出错,且无法获取数据的信息。

采用了证书固定技术(SSL Pinning),即应用在与服务器建立SSL/TLS连接时,会验证服务器的证书或公钥是否匹配预定的值。如果证书不匹配,连接会被拒绝,导致无法通过中间人攻击(例如抓包)获取流量。很多应用为了防止SSL/TLS劫持(例如防止抓包工具的中间人攻击),都会使用这种技术。

解决方法:

  • SSL Pinning通常需要绕过(例如修改应用代码或利用某些工具进行绕过)。

  • 降低Android版本,7.0后的系统才可以把证书装在系统信任里。

  • 采用Xposed框架 和 JustTrustMe模块 或者 sslunpining模块。
    JustTrustMe是基于Xposed的一个模块,可以禁用SSL证书检查从而抓取此应用所有网络流量,不过该模块的禁用方法是针对固定名称的特定函数所以经常会遇到不友好的模拟器或者App导致禁用失效。

SSL 双向认证

不走代理

NoProxy(不走代理的App)抓包问题,
这种情况是在使用代理之后抓包工具并未捕获到数据,而且不论是开启还是关闭时,都不影响App正常的数据加载。
如果源码的网络请求接口部分有NO PROXY,那么更能说明问题,因为Android系统设置的代理并不是强制对所有App生效的,App可以在网络请求类库中通过自定义代理设置,选择是否要走系统代理。

现象:charles抓不到包,但Wireshark、HttpAnalyzor可以抓到包。
此时可以使用postern、drony将移动设备的请求直接转发到抓包软件,相当于抓Android系统的包。postern、drony在之前的章节中均有使用案例。

当然也可以从源码上进行处理,比如使用Frida去Hook设置代理的函数。

其他——APP抓不到包的情况

APP无法抓包的原因有很多,以下是一些常见的可能性:

  • 应用采用了 HTTPS 并使用了加密
    现代应用普遍采用HTTPS(即SSL/TLS加密)来保护数据传输。如果你没有正确配置抓包工具,无法解密HTTPS流量,也无法看到请求的内容。抓包工具(如Fiddler、Charles、Wireshark)需要使用特定的证书来解密HTTPS流量,否则你只能看到加密的流量,而无法分析请求。

    解决方法: 需要在抓包工具中安装并信任抓包工具的根证书,以便解密HTTPS流量。

  • 应用使用了加密或混淆技术
    一些应用可能会对网络数据进行加密或混淆,增加抓包的难度。这种做法并不直接与透明证书相关,但可能会使抓包工具无法直接获取明文数据。

    解决方法: 需要对加密或混淆技术进行逆向工程,找到解密方法。

  • 应用通过 VPN 或其他网络隧道传输数据
    一些应用可能使用VPN或其他网络隧道(如Tor)来加密网络通信,或者通过特定的网络代理进行通信,这样即使你在同一网络环境下,抓包工具也可能无法直接捕获到数据包。

    解决方法: 需要配置抓包工具监听正确的网络接口,或者直接在应用的网络配置中找到相关的代理和隧道设置。

技巧

协议降级

https —— http
以此类推。

自定义协议

原则上也是修改参数,让它降为HTTPS;

工具

Burpsuite

应该是最好用的HTTP/HTTPS抓包测试工具。

Fiddler/Charles

也是HTTP/HTTPS抓包,但是没有burpsuite好用;

MitmProxy

开源、可交互的HTTPS代理,
可以写插件、脚本、
配合Python对拦截包的数据进行参数修改,
可以在Linux上运行;

HTTP AnalyzerStd V7

HTTP AnalyzerFull V7是数据包分析工具,用于性能分析、调试和诊断。使用方式和fiddler、charles等差不多。但是它可以捕获来自某些特定进程或用户/会话/系统范围应用程序的HTTP/HTTPS流量。比如在Windows应用程序中捕获HTTP信息,而无须从HTTP Analyzer中启动它们。
如果遇到某些不需要HTTP协议的App,可以用它来监听模拟器应用的请求,来确定一下接口。

HTTP Canary - 黄鸟

HttpCanary 已更名为Reqable,
android平台下的网络分析工具,
支持在android下抓 TCP/UDP/HTTP/HT-TPS/websocket等协议;

Postern

Postern是一个免root的Android全局代理工具/虚拟网络管理工具,它的主要作用是将普通代理设置为VPN代理,由于VPN代理处于网络层,可以配置抓包工具让大家抓到更多的数据包;

Drony

Drony是一个Android VPN代理工具,不需要root环境也可完成代理身份认证。 Drony和Postern类似,可以转发App的所有请求,而不是去设置手机Wi-Fi代理,所以也可以配合charles、fiddler完成定向抓包,去抓取那些不走代理的请求,

Wireshark

这个肯定能抓包,但是缺点是:

  • 对于加密的数据,没办法明文显示;
  • 对于HTTP/HTTPS的数据包展示不太友好,那种二进制的显示方式,虽然能转换。(他是全协议栈抓包,主要以二进制为主。)
  • 无法重放,需要粘贴出去自己构造包;

Rerference

渗透测试之App与小程序工具总结
https://xz.aliyun.com/t/13280?time__1311=GqmxuD0DnD9D2BDlh+t0=KKY564Wq4xwRipD#toc-0

笔记:
夜神的adb是专用的,在安装包的~\Nox\bin目录下有个nox_adb.exe

posted on 2025-01-17 09:32  Mysticbinary  阅读(50)  评论(0)    收藏  举报