charles抓包夜神模拟器保姆级教程

前言 作为it人员,无论是为了测试,还是为了一些研究,抓包必不可免。夜神模拟器配合charles无疑是不错的选择。 下面教程是本人通过网上大量资料进行实践,亲自实验后,完全没问题整理出来...

前言

作为it人员,无论是为了测试,还是为了一些研究,抓包必不可免。夜神模拟器配合charles无疑是不错的选择。


下面教程是本人通过网上大量资料进行实践,亲自实验后,完全没问题整理出来的最新教程,基本踩过的坑都提及了,细节满满,实属抓包教程的干货。


全文从0开始配置夜神模拟器通过charles抓包的全过程,也解决了安卓7安装了证书还是不受信任的问题,教大家如何把证书安装到系统的CA证书里。


一、安装charles和夜神模拟器

1、安装charles

1、建议安装使用最新版,官方下载地址 https://www.charlesproxy.com/download

2、安装完成之后,有试用时间,不想试用查看: 完整教程


2、安装夜神模拟器

略,自行百度搜索夜神模拟器进行下载。


本文下载地址到:D:\software\Nox (后面教程会提及,到时候替换为自己的夜神模拟器地址即可)


二、配置环境

开启Charles http代理


设置Charles代理。如果只是抓取手机端APP网络请求,可以将此前设置的电脑代理勾去掉(每次启动Charles都是默认开启的)


激活http代理功能。进入Proxy->Proxy Setting,设置http proxy代理端口:8888(一般默认设置为这个)

attachments-2022-12-tEO8tbb66388798e9b159,png

设置SSL代理:
Proxy–> SSL Proxying Setting–> Enable SSL Proxying -->Add。https访问的端口号都是443。在弹出的表单中Host填写域名,Port填443,*表示所有域名‘。

attachments-2022-12-kMl0gFXq638879a8286f9,png

电脑防火墙设置:

设置允许Charles通过防火墙。

三、charles证书导入到夜神模拟器

1、安装证书

attachments-2022-12-uRnvyUFr638879d4d6f96,png

attachments-2022-12-8kX0A4ip638879ebce841,png

attachments-2022-12-4Eb3cKk5638879f621a48,png

attachments-2022-12-zRy5as1F63887a1025e37,png

attachments-2022-12-yAVKg0tJ63887a207d631,png

主要步骤:

1、选择“本地计算机”,点击下一步;

2、点击浏览按钮,弹出选择证书存储界面,并选择受信任的根证书颁发机构,点击下一步;

3、完成。

2、证书下载下来,为第四步做准备

attachments-2022-12-saIxuTY963887a3ec127a,png

下载目录:(第五步会用到)


F:\Documents\charles\charles4.6.1.cer

1

四、手机端Wifi添加代理

1、找到宿主机的ip地址

手机与电脑连接同一网段的wifi,进入wifi连接设置,设置代理为手动,填写主机名与端口号,

主机名可以打开charles,获取IP地址,端口号为第二步中设置的端口号。

attachments-2022-12-e516hT7S63887afd8bcbe,png

attachments-2022-12-gD1FVhmm63887b1101a3e,png

2、在夜神模拟器 设置->WLAN,找到wifi,长按点击“修改网络”,将ip和port设置进去。

attachments-2022-12-yDC7T7FE63887b398589c,png

attachments-2022-12-jL41Mxpg63887b4bc5e4e,png

3、手机浏览器打开,输入地址:http://chls.pro/ssl ,进行证书安装下载。

attachments-2022-12-CjqX9o6F63887bde478af,png

安卓7.0版本前,到这一步就可以了,但安卓7.0版本之后的版本,还需要进行第五步。

五、Android 7.0 之后抓取HTTPS数据出现unknown 和证书无效的解决方案

attachments-2022-12-PPyf3BYs63887c03f0552,png

原因:Android7.0 之后默认不信任用户添加到系统的CA证书

解决办法:

1、将抓包软件的证书安装成系统证书(手机需要ROOT)

系统证书目录:/system/etc/security/cacerts/

其中的每个证书的命名规则如下:


<Certificate_Hash>.<Number>

1

文件名是一个Hash值,而后缀是一个数字。

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


openssl x509 -subject_hash_old -in <Certificate_File>

1

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


2、下载Charles证书到电脑上,文件格式为.pem文件

1、安装opensll命令

Linux系统下可以之间使用openssl 命令

window系统需要使用工具才能执行openssl命令


window下载地址:https://slproweb.com/products/Win32OpenSSL.html


下载之后之间解压,然后配置一下环境变量path就可以用了。


2、获得证书的Hash值

#到证书目录

cd F:\Documents\charles

#cer证书转.pem证书

openssl x509 -inform der -in charles4.6.1.cer -out F:\Documents\charles\charles.pem


#得到hash值

openssl x509 -subject\_hash\_old -in F:\Documents\charles\charles.pem

#执行完之后得到证书的Hash : dc32344a.0


#然后把证书名由Charles.pem更换为dc32344a.0

#目录 F:\Documents\charles\dc32344a.0

attachments-2022-12-UIyBKrlX63887c4752a20,png

3、把证书安装到手机系统证书目录下(手机需要root)

执行以下adb命令:


#转到夜神模拟器安装目录的bin目录里

cd D:\software\Nox\bin

#查看是否多设备

adb devices

#如果有多设备。如下:则后面命令都带上  -s 127.0.0.1:62001 

## List of devices attached

## 127.0.0.1:62001 device

## emulator-5564   host

## emulator-5562   host

## emulator-5560   host

## emulator-5556   host


# 判断是否有root权限命令:nox_adb.exe root,没有root权限 给模拟器勾选上root,重启模拟器即可

adb -s 127.0.0.1:62001 root

adb -s 127.0.0.1:62001 disable-verity

adb -s 127.0.0.1:62001 reboot

adb -s 127.0.0.1:62001 root

adb -s 127.0.0.1:62001 remount

adb -s 127.0.0.1:62001 push F:\Documents\charles\dc32344a.0  /system/etc/security/cacerts/    【需要使用windows cmd命令,使用git-shell 报错】

打开设置——安全——信任的凭据——用户,有charles证书,代表证书安装至系统证书成功。

attachments-2022-12-41VHeTdG63887c7e0c0b2,png


  • 发表于 2022-12-01 17:52
  • 阅读 ( 60 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
shitian
shitian

662 篇文章

作家榜 »

  1. shitian 662 文章
  2. 石天 437 文章
  3. 每天惠23 33 文章
  4. 小A 29 文章