各种抓包软件和抓包教程

简介

每当遇到一些 APP 渗透测试项目的时候,抓不了包的问题令人有点难受,但是抓不了包并不能代表目标系统很安全,那么接下来我会整理一下目前我所了解到的一些抓包方法。

图片[1]-各种抓包软件和抓包教程-小白资源博客-个人技术分享
  • 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]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

在手机里面网络设置也要设置 手动代理模式 ,输入的 IP和端口 都要与 Burpsuite 一样

图片[3]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

然后在手机浏览器访问 https://burp 这个地址,去进行下载并安装 burp 证书,因为抓取 HTTPS 流量是需要证书的,点击 CA Certificate 即可进行下载

图片[4]-各种抓包软件和抓包教程-小白资源博客-个人技术分享
下载之后要对证书文件后缀名进行更改,因为手机是无法打开 .der 后缀的文件,所以要吧 .der 改为 .cer ,然后再进行安装证书
图片[5]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

那么安装之后就可以进行抓取 APP 数据包了。

2、使用 Fiddler 对 APP 进行抓包

环境:Fiddler v5.0.20204.45441

Pixel3 Android11 、已 root + Xposed

1、在 Fiddler 里面 Tools — Options

图片[6]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

2、在 options 弹框中切换至 HTTPS ,勾选图中标记的 2 个选项并点击 OK

图片[7]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

3、勾选后会弹出安装证书的提示,根据提示一直点击  即可安装成功 4、接着在Tools — Options — Connections,端口写 9999(可随意更改),并勾选 Allow remote computers to connect ,点击 OK

图片[8]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

5、重启 Fiddler ( 修改fiddler配置要重启后才能生效 ) 6、修改手机网络设置

图片[9]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

7、在浏览器访问上面设置的 IP 地址和端口号,我这里是 172.20.10.5:9999(这里要根据实际情况),然后 FiddlerRoot certificate 进行下载证书,并自行安装

图片[10]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

那么安装之后就可以进行抓取 APP 数据包了

图片[11]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

3、使用 Burpsuite + Fiddler 进行对 APP 进行抓包

配置 Burpsuite 使用的代理监听是 127.0.0.1:8080

图片[12]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

在 Fiddler 里面 Tools — Options — Gateway 配置的代理监听是 127.0.0.1:8080(这里的配置与 Burpsuite 代理一致)

图片[13]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

接着在 Tools — Options — Connections ,端口写 9999(可随意更改),并勾选 Allow remote computers to connect ,点击 OK

图片[14]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

修改手机网络设置

图片[15]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

也就是说从手机的流量经过 Fiddler 进行转发到Burpsuite

图片[16]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

4、使用小黄鸟 HttpCanary 对 APP 进行抓包

环境:HttpCanary v3.3.6

Pixel3 Android11 、已 root + Xposed 首先安装 HttpCanary APP 应用

图片[17]-各种抓包软件和抓包教程-小白资源博客-个人技术分享
图片[18]-各种抓包软件和抓包教程-小白资源博客-个人技术分享
图片[19]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

HttpCanary 支持 HTTP/HTTPS/HTTP2 网络数据包的抓取和分析,其实和 Charles 类似,要抓取 HTTPS 需要使用 MITM 中间技术对 TLS/SSL 数据包进行解密以及明文输出,因此需要安装自签的 CA 证书

图片[20]-各种抓包软件和抓包教程-小白资源博客-个人技术分享
图片[21]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

这里要提一下 Android 系统默认对证书信任证书的问题

因为我的 Pixel3 手机是已经 root 了,而且是 Android11 系统,在安卓 7.0 之前系统,直接下载证书装入即可,安卓 7.0 及以上系统对于证书的安全策略做了修改,意味着,从 sdcard 安装用户级 CA 将无法拦截应用流量。我们需要将证书命名为计算出的哈希值后缀 .0 或者直接在手机里面的 用户凭据 可以看到后缀 .0的证书文件 名字,然后导入到根证书目录:/system/etc/security/cacerts 让系统默认可信任。因此安装证书的方式也有所不同,默认它是安装在用户那里的。

图片[22]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

首先按照我下面的图顺序进行安装证书

图片[23]-各种抓包软件和抓包教程-小白资源博客-个人技术分享
图片[24]-各种抓包软件和抓包教程-小白资源博客-个人技术分享
图片[25]-各种抓包软件和抓包教程-小白资源博客-个人技术分享
图片[26]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

先导出 HttpCanary根 证书文件 .pem

图片[27]-各种抓包软件和抓包教程-小白资源博客-个人技术分享
图片[28]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

点击它,即可完成安装证书

图片[29]-各种抓包软件和抓包教程-小白资源博客-个人技术分享
图片[30]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

那么这里就看到它是安装在用户那里的,但是由于我的设备是已经 root 了,要把这个证书安装在 系统 那里才能进行抓取 HTTPS 流量

图片[31]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

那么这时就需要把证书的文件移动到系统目录下就可以了,这里选择导出 System Trusted(.0)

图片[32]-各种抓包软件和抓包教程-小白资源博客-个人技术分享
图片[33]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

那么就把证书进行移动到系统证书目录 /etc/security/cacerts/

图片[34]-各种抓包软件和抓包教程-小白资源博客-个人技术分享
图片[35]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

在 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]-各种抓包软件和抓包教程-小白资源博客-个人技术分享
图片[37]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

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]-各种抓包软件和抓包教程-小白资源博客-个人技术分享
图片[39]-各种抓包软件和抓包教程-小白资源博客-个人技术分享
图片[40]-各种抓包软件和抓包教程-小白资源博客-个人技术分享

虽然 HttpCanary 是一个很不错的抓包工具,但是它并不能跟其他抓包工具进行一个联动转发抓包,所以当渗透测试人员在使用它进行抓包之后,可以直接在手机上进行修改数据包进行测试,但是可能在手机上工作效率没那么高,于是就把要测试的数据包复制出来到 Burpsuite 上进行修改并发包,这个过程也会浪费很多时间。

下面是 HttpCanary 的工作原理

HttpCanary 采用 VPN 的方式将网络包转发给本地代理服务器,本地代理服务器将数据包转发虚拟网关,由虚拟网关进行不同策略地拦截和协议解析,最后再将数据发送给终端.




小白资源博客-个人技术分享,原文地址: https://www.yxyp.cc/521
© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容