我的GitHub
0%

无星的渗透之旅速成篇(一)-https抓包

背景

抓包很常见,以前做开发的时候也经常用

无论是charles还是finddler等等

你是否遇到过https一篇红和unkown的情况?

2024年了,都是https了把,http屈指可数

那么我们如何抓包https

证书

其实说白了,证书才是关键

我们抓包的本质,是将网络请求代理到某个软件上

换句话说,自己当“中间人”

那么我们就需要安装这个代理软件的证书了

Charles

1.本机PC安装证书

本机证书安装1

本地证书安装2

本地证书安装3

本地证书安装4

这样就安装完毕了

2.浏览器安装根证书

基本上看到这篇文章的,用的应该不是Edge就是Chrome

我们以Edge为例,其他浏览器自行搜索

打开浏览器设置

搜索证书

浏览器证书

我们可以发现有个证书管理

证书导入

很显然,我们需要导入证书到受信任的CA里

这会儿我们的Charles就可以正常抓https了

3.安卓手机安装证书(安卓7以上)

下载证书

下载以后

大伙肯定都知道,安卓7以上,不让把证书安装到受信任的证书里

那么我要是非要放进去呢

Android 7.0 之后抓包 unknown 和证书无效的解决方案

这里摘抄一下大哥说的话

将抓包软件的证书安装成系统证书(需 ROOT)
系统证书目录:/system/etc/security/cacerts/

其中的每个证书的命名规则如下:
.
文件名是一个 Hash 值,而后缀是一个数字。

文件名可以用下面的命令计算出来:

openssl x509 -subject_hash_old -in

后缀名的数字是为了防止文件名冲突的,比如如果两个证书算出的 Hash 值是一样的话,那么一个证书的后缀名数字可以设置成 0,而另一个证书的后缀名数字可以设置成 1

Windows用户openssl这个命令没有的话,用git bash就可以了

在座的么有不会用git的人吧

1
openssl x509 -subject_hash_old -in charles-proxy-ssl-proxying-certificate.pem 

hash

那接下来直接把charles-proxy-ssl-proxying-certificate.pem改名为7515195b.0

然后把7515195b.0移到安卓设备/system/etc/security/cacerts/

那这里有人会问了,我手上的安卓没有Root,咋整呢

呐呐呐,我就知道有人会问了

所以这里又有两种方案

3.1 安卓模拟器(亲测有效)

这里我们不得不又说明一下借鉴自哪里

使用charls抓包微信小程序的解决方案(终极解决,各种坑不怕,亲测可用,不服来战!)

没错,使用安卓模拟器,我也和这位博主一样,要抓小程序

所以我也使用了夜神模拟器(等我有影响力了,麻烦夜神给我打钱)

不过要注意,使用它的安卓7版本即可,12版本亲测没有root,9版本未测试

接着我们把上述的手机端的hash命名文件,放到对应目录下

即把7515195b.0移到安卓设备/system/etc/security/cacerts/

这时候你会发现。嘻嘻,还是不能抓包

原因是模拟器的根证书里并没有出现根证书

这里告诉一下大家证书名,免得不好找XK72 Ltd

其实根本原因是,证书的权限不对

那么接下来,告诉大家怎么去修改权限

3.1.1 adb链接模拟器

找到模拟器的安装目录

里头有个bin目录,目录下有个nox_adb.exe

例如D:\Safety\Nox\bin\nox_adb.exe

在这里打开cmd,并使用nox_adb.exe devices查看模拟器是否连接上了adb

如果没连接上,重启模拟器即可

3.1.2 给证书文件添加权限

1
2
3
4
5
nox_adb devices

adb connect 127.0.0.1:62025
# 后面这个hash.number改成自己的,别光顾着复制粘贴了
adb shell "chmod 664 /system/etc/security/cacerts/7515195b.0"

如果chmod执行报错Read-only file system,那执行下面的

1
2
3
4
5
6
7
8
9
10
adb shell

mount -o remount -o rw /system

exit
# 再执行一次
adb shell "chmod 664 /system/etc/security/cacerts/7515195b.0"

adb reboot

这下应该会重启模拟器,重启完,模拟器配代理,欧了~

你的小Charles应该就能抓https

3.2 安卓上的虚拟机搭配xposed(思路,未测试)

给个思路

无需 Root 也能使用 Xposed!

搭配

JustTrustMe

开始你的真机https抓包吧

4.补一个设置https

填两个*就好了

BurpSuite

其实是一样的

先找到自己的代理端口

使用内置浏览器打开并访问该端口

点击下载证书 https://burp

你会下到一张der证书

我们只需要把他变成pem格式

1
openssl x509 -inform DER -outform PEM -text -in cacert.der -out cacert.pem

其他一切同上

我是阿星,阿星的阿,阿星的星!