Android + Charles https抓包环境搭建

需要准备的设备

  • 一台已经获取 Root 权限的手机/虚拟机 (如果需要抓取一些对服务器证书有特别验证的APP你可能还需要安装好 Xposed 框架)最好是有 Magisk
  • Charles 软件 具体获取方式劳烦百度

自签名CA证书安装

首先我们需要将 Charles 为我们生成的 CA证书 给导出

安卓 7.0 以后默认不信任用户安装的证书,需要将证书安装在系统目录中

如果是安卓7.0以下版本只需要将该证书复制到手机目录,在手机设置中安装即可,安装后请跳过下面步骤到,#代理设置

接着我们需要获取到证书的 hash 值来重命名证书名称,由于安卓系统限制,如果不这样会导致系统不信任该证书

openssl x509 -inform PEM -subject_hash_old -in CA_Name.crt | head -1
[email protected]:/home/docker# openssl x509 -inform PEM -subject_hash_old -in charlesCA.pem | head -1
68cc8d46

这时将证书 charlesCA.pem 重命名为 68cc8d46.0 后面我们会通过制作 Magisk 模块的方式,将证书写入系统目录,下载模板文件 ,或者你直接将该文件复制到目录 /system/etc/security/cacerts/ 中

模板文件目录:

CHARLES
│  module.prop
│  post-fs-data.sh
│  sepolicy.rule
│  service.sh
│  system.prop
│  uninstall.sh
│
└─system
    └─etc
        └─security
            └─cacerts
                    68cc8d46.0

你需要将 68cc8d46.0 文件替换为你的 证书文件,使用 magisk 安装,重启即可

代理设置

我们需要将电脑和手机连接在一个局域网中(不管使用什么方法,两个设备可以互相访问就行)

设置代理端口

设置 ssl 代理

获取电脑 IP

记下这个 IP 后面会用到,接着在手机设置中设置代理

填入IP和端口确认即可

开始抓包

点击开始抓包

虽然是https流量,但我们还是可以查看内容,抓取成功

对于APP对证书有特殊验证

使用Xposed模块将客户端证书验证给Hook掉

原理分析

这里其实使用了中间人攻击(Man-in-the-middle attack)的原理进行抓包

https://zh.wikipedia.org/wiki/%E4%B8%AD%E9%97%B4%E4%BA%BA%E6%94%BB%E5%87%BB#:~:text=%E4%B8%AD%E9%97%B4%E4%BA%BA%E6%94%BB%E5%87%BB%EF%BC%88%E8%8B%B1%E8%AA%9E%EF%BC%9AMan%2D,%E8%A2%AB%E6%94%BB%E5%87%BB%E8%80%85%E5%AE%8C%E5%85%A8%E6%8E%A7%E5%88%B6%E3%80%82

如何对中间人攻击进行防御呢?这里请查看

Golang 自签CA证书及双向认证

如果有其他疑问,请留言

广告 广告位招租

评论

  1. err
    Windows Chrome
    美国
    1月前
    2022-8-10 11:39:14

    test

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
小黄脸
上一篇
下一篇