在我们APP漏洞挖掘过程中经常发现很多APP使用burp 直接测试无法抓到数据包的情况。

常用抓包情况

使用burp 导入证书抓取安卓数据包

微信图片_20230513215333

将扩展名修改为.cer后导入到安卓模拟器中

模拟器安装证书

设置-安全- 从SD卡安装

选择burp证书文件并安装

微信图片_20230513215430

添加名称 并设置锁屏密码

微信图片_20230513215455

微信图片_20230513215518

模拟器设置WIFI代理

微信图片_20230513215551

抓取安卓数据包,app数据包抓取

微信图片_20230513215615

Charles 简介

Charles是一款非常强大的HTTP抓包工具,通过对该软件的设置让其成为系统网络访问服务器,即所有的网络访问都要通过该软件来完成,这样它就可以轻松获得所有HTTP、HTTPS的数据封包,监视所有的流量包括所有的浏览器和应用进程,方便查看计算机与Internet之间的所有通信。

Charles下载后有30天免费使用权限,过了之后可以选择重新下载或者购买,未激活的Charles每次只能开30分钟,需要再次手动开启。

Charles 安装

微信图片_20230513215726

Charles工具配置

首先是proxy - proxy settings

微信图片_20230513215758

这里我们选择socks proxy模式,如图配置,点击ok完毕

微信图片_20230513215822

取消勾选windows proxy,不需要抓取windows的数据包

微信图片_20230513215908

然后是proxy-ssl proxy settings

微信图片_20230513215937

模拟器导入Charles系统级证书

微信图片_20230513220001

导出一个.pem格式的证书,该证书无法直接在安卓系统上使用,需要转换成.0结尾的,可以通过kali中的openssl来计算出文件名就可以。

openssl x509 -subject_hash_old -in charles_root.pem

微信图片_20230513220055

我这里是d83d2469,然后把文件改成d83d2469.0就可以了。

接着通过adb shell来把文件传到
/system/etc/security/cacerts/ 目录中

连接模拟器,模拟器根目录有adb程序

nox_adb.exe devices

微信图片_20230513220145

将证书传到模拟器

nox_adb.exe push d83d2469.0 /data/local/tmp

微信图片_20230513220216

给目录读写权限,然后把证书复制到指定位置。

nox_adb.exe shell

mount -o rw,remount -t auto /system

cp /data/local/tmp/d83d2469.0 /system/etc/security/cacerts

chmod 777 /system/etc/security/cacerts/d83d2469.0

reboot

微信图片_20230513220301

然后重启,输入reboot就可以。

重启后就可以看到有charles的证书了

微信图片_20230513220328

模拟器安装Postern

下载地址

Postern是一个Android下的全局代理工具,安装比较简单直接将文件拖到模拟器中即可安装

postern工具配置

微信图片_20230513220415

配置代理

名称随便起,服务器地址为charles所在机器地址。端口,类型要和之前charles上配置的一样,socks5代理。

微信图片_20230513220441

配置规则

删除原有规则,添加一条

微信图片_20230513220513

开启VPN

开启右上角会有个钥匙的图标

微信图片_20230513220600

成功抓到数据包。

联合burp

使用charles可以抓到数据包,但是不好做修改数据包之类的操作,所以就再做一层代理到burp来进行改包。

配置外部代理

proxy - external proxy settings

微信图片_20230513220722

微信图片_20230513220733

burp导入Charles的证书

打开charles - help - ssl proxying

微信图片_20230513220809

输入密码,导出证书

微信图片_20230513220832

得到一个.p12的文件

往burp中导入

微信图片_20230513220857

选择文件,输入密码,导入成功

微信图片_20230513220941

微信图片_20230513221005

两个选项都要配置127.0.0.1:8080,burp默认监听8080端口的,若不是8080,改成自己burp上监听的端口就可以了。

微信图片_20230513221036

成功抓到数据包