简介
每当遇到一些 APP 渗透测试项目的时候,抓不了包的问题令人有点难受,但是抓不了包并不能代表目标系统很安全,那么接下来我会整理一下目前我所了解到的一些抓包方法。
![图片[1]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211121144957.png!/format/webp/lossless/true)
- 1、Burpsuite
- 2、Fiddler
- 3、Burpsuite + Fiddler
- 4、小黄鸟 HttpCanary
- 5、Charles
- 6、Charles + Burpsuite
- 7、Postern + Charles + Burpsuite
- 8、Frida + Xposed + Objection + Burpsuite
- 9、Frida 写 Hook 代码来抓包
以下抓包测试请确保手机和电脑是处于同一个局域网下
1、使用 Burpsuite 对 APP 进行抓包
环境:Burpsuite Professional v2021.2
Pixel3 Android11 、已 root + Xposed
在 Burpsuite 里面 Proxy — Options — Proxy Listeners — Add
然后在Speciffic address
选择172
网段的那个 IP 地址(即本机局域网 IP 地址)
![图片[2]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211121302876.png!/format/webp/lossless/true)
在手机里面网络设置也要设置 手动代理模式
,输入的 IP和端口
都要与 Burpsuite 一样
![图片[3]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211121347353.png!/format/webp/lossless/true)
然后在手机浏览器访问 https://burp
这个地址,去进行下载并安装 burp 证书,因为抓取 HTTPS 流量是需要证书的,点击 CA Certificate
即可进行下载
![图片[4]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211121442248.png!/format/webp/lossless/true)
.der
后缀的文件,所以要吧 .der
改为 .cer
,然后再进行安装证书![图片[5]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211121510310.png!/format/webp/lossless/true)
那么安装之后就可以进行抓取 APP 数据包了。
2、使用 Fiddler 对 APP 进行抓包
环境:Fiddler v5.0.20204.45441
Pixel3 Android11 、已 root + Xposed
1、在 Fiddler 里面 Tools — Options
![图片[6]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211121638182.png!/format/webp/lossless/true)
2、在 options 弹框中切换至 HTTPS
,勾选图中标记的 2 个选项并点击 OK
![图片[7]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211121723439.png!/format/webp/lossless/true)
3、勾选后会弹出安装证书的提示,根据提示一直点击 是
即可安装成功 4、接着在Tools — Options — Connections
,端口写 9999
(可随意更改),并勾选 Allow remote computers to connect
,点击 OK
![图片[8]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211121810943.png!/format/webp/lossless/true)
5、重启 Fiddler ( 修改fiddler配置要重启后才能生效
) 6、修改手机网络设置
![图片[9]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211121834209.png!/format/webp/lossless/true)
7、在浏览器访问上面设置的 IP 地址和端口号,我这里是 172.20.10.5:9999
(这里要根据实际情况),然后 FiddlerRoot certificate
进行下载证书,并自行安装
![图片[10]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211121859117.png!/format/webp/lossless/true)
那么安装之后就可以进行抓取 APP 数据包了
![图片[11]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211121925738.png!/format/webp/lossless/true)
3、使用 Burpsuite + Fiddler 进行对 APP 进行抓包
配置 Burpsuite 使用的代理监听是 127.0.0.1:8080
![图片[12]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211121957451.png!/format/webp/lossless/true)
在 Fiddler 里面 Tools — Options — Gateway
配置的代理监听是 127.0.0.1:8080
(这里的配置与 Burpsuite 代理一致)
![图片[13]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211122021252.png!/format/webp/lossless/true)
接着在 Tools — Options — Connections
,端口写 9999
(可随意更改),并勾选 Allow remote computers to connect
,点击 OK
![图片[14]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211122121757.png!/format/webp/lossless/true)
修改手机网络设置
![图片[15]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211122258466.png!/format/webp/lossless/true)
也就是说从手机的流量经过 Fiddler
进行转发到Burpsuite
![图片[16]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211122324718.png!/format/webp/lossless/true)
4、使用小黄鸟 HttpCanary 对 APP 进行抓包
环境:HttpCanary v3.3.6
Pixel3 Android11 、已 root + Xposed 首先安装 HttpCanary APP 应用
![图片[17]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211122439763.png!/format/webp/lossless/true)
![图片[18]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211122509678.png!/format/webp/lossless/true)
![图片[19]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211122536256.png!/format/webp/lossless/true)
HttpCanary 支持 HTTP/HTTPS/HTTP2 网络数据包的抓取和分析,其实和 Charles
类似,要抓取 HTTPS 需要使用 MITM 中间技术对 TLS/SSL 数据包进行解密以及明文输出,因此需要安装自签的 CA 证书
![图片[20]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211122557413.png!/format/webp/lossless/true)
![图片[21]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211122617543.png!/format/webp/lossless/true)
这里要提一下 Android 系统默认对证书信任证书的问题
因为我的 Pixel3 手机是已经 root 了,而且是 Android11 系统,在安卓 7.0 之前系统,直接下载证书装入即可,安卓 7.0 及以上系统对于证书的安全策略做了修改,意味着,从 sdcard 安装用户级 CA 将无法拦截应用流量。我们需要将证书命名为计算出的哈希值后缀 .0
或者直接在手机里面的 用户凭据
可以看到后缀 .0的证书文件
名字,然后导入到根证书目录:/system/etc/security/cacerts
让系统默认可信任。因此安装证书的方式也有所不同,默认它是安装在用户那里的。
![图片[22]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211122641226.png!/format/webp/lossless/true)
首先按照我下面的图顺序进行安装证书
![图片[23]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211122703816.png!/format/webp/lossless/true)
![图片[24]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211122721561.png!/format/webp/lossless/true)
![图片[25]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211122737745.png!/format/webp/lossless/true)
![图片[26]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211122756544.png!/format/webp/lossless/true)
先导出 HttpCanary根
证书文件 .pem
![图片[27]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211122837392.png!/format/webp/lossless/true)
![图片[28]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211122854449.png!/format/webp/lossless/true)
点击它,即可完成安装证书
![图片[29]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211122914243.png!/format/webp/lossless/true)
![图片[30]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211122933322.png!/format/webp/lossless/true)
那么这里就看到它是安装在用户那里的,但是由于我的设备是已经 root 了,要把这个证书安装在 系统
那里才能进行抓取 HTTPS 流量
![图片[31]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211123001341.png!/format/webp/lossless/true)
那么这时就需要把证书的文件移动到系统目录下就可以了,这里选择导出 System Trusted(.0)
![图片[32]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211123034738.png!/format/webp/lossless/true)
![图片[33]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211123048344.png!/format/webp/lossless/true)
那么就把证书进行移动到系统证书目录 /etc/security/cacerts/
![图片[34]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211123115330.png!/format/webp/lossless/true)
![图片[35]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211123130590.png!/format/webp/lossless/true)
在 Android 10 以及以上安装证书到 /system/etc/security/cacerts/
会出现 system 无法写入使用 mount 报错如下:
'/system' not in /proc/mounts'
/dev/block/dm-4' is read-only
由于 Android 10 采用了某些安全策略,将系统分区 /system挂载为只读
,就算你 root 了也没用,无法写入系统分区也就无法导入系统证书,在使用 HTTPCanary 这样的软件抓包分析的时候,很多 app 只认系统证书,不认用户证书 遇见此类情况有两种方式解决:1、在 Magisk
里面安装 `Move Certificates模块`[1],该插件可以一键将所有用户证书自动转换为系统区证书
使用方法:所有证书安装为用户证书后,安装此插件,并重启。
![图片[36]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211123222713.png!/format/webp/lossless/true)
![图片[37]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211123236504.png!/format/webp/lossless/true)
2、创建一个新的挂载点来覆盖 这种方式是内存覆盖的方式所以手机重启后失效。(想要持久化需考虑搞一个开机启动服务)
# 创建一个临时目录,保存当前证书
mkdir /sdcard/tmp/
# 复制现有证书到临时目录
cp /system/etc/security/cacerts/* /sdcard/tmp/
# 创建内存挂载
mount -t tmpfs tmpfs /system/etc/security/cacerts
# 将现有证书复制回 tmpfs 挂载mv
/sdcard/tmp/* /system/etc/security/cacerts/
# 更新 perms 和 selinux
chown root:root /system/etc/security/cacerts/*
chmod 644 /system/etc/security/cacerts/*
chcon u:object_r:system_file:s0 /system/etc/security/cacerts/*
再进来这个看证书的界面就已经看到已经把 用户
的证书安装在 系统
那里了
![图片[38]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211123452898.png!/format/webp/lossless/true)
![图片[39]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211123516446.png!/format/webp/lossless/true)
![图片[40]-各种抓包软件和抓包教程-小白资源博客-个人技术分享](https://img.yxyp.cc/2022/12/20221211123525337.png!/format/webp/lossless/true)
虽然 HttpCanary
是一个很不错的抓包工具,但是它并不能跟其他抓包工具进行一个联动转发抓包,所以当渗透测试人员在使用它进行抓包之后,可以直接在手机上进行修改数据包进行测试,但是可能在手机上工作效率没那么高,于是就把要测试的数据包复制出来到 Burpsuite 上进行修改并发包,这个过程也会浪费很多时间。
下面是 HttpCanary 的工作原理
HttpCanary 采用 VPN 的方式将网络包转发给本地代理服务器,本地代理服务器将数据包转发虚拟网关,由虚拟网关进行不同策略地拦截和协议解析,最后再将数据发送给终端.

小白资源博客-个人技术分享,原文地址: https://www.yxyp.cc/521
暂无评论内容