利用Fiddler,解密wireshark抓的HTTPS包

时间:2022-07-10 11:24:20

背景介绍

HTTPS加密方式介绍

浏览器-->SSL Client Hello(我支持这些加密方式)-->服务器

浏览器<-SLL Server Hello(就用这种加密,然后下面是我的证书)-<--服务器

浏览器-->证书验证ok,拿证书里的公钥加密key,告诉服务器-->服务器

浏览器<--私钥解密,得到key<--服务器

开始以对称密钥的方式,加密通信,密钥即key

如何解密

+------------+                +------------+                +-----------------+
| Computer A | Wireshark | Computer B |                |                         |
|                  +---------->|                      +------> | Exchange Server |
|    Outlook   |                 |     Fiddler     |                |                         |
+------------+                +------------+                 +-----------------+

http://lin.xiaogang.me/?p=134

工具下载

http://pan.baidu.com/s/1i30xkjz

具体步骤
     1. 环境准备
         Windows:  10.69.32.150(外网IP), 192.168.65.1(Vmware虚拟网卡IP)
             Fiddler: 4.4.8.0
         VMWare ubuntu: 192.168.65.131
             WireShark: 1.8.2
             Chrome: 34.0
     2.流程
        2.1 启动Fiddler, Tools-->Fiddler Options --> HTTPS
                Capture HTTPS CONNECTs
                     Decryp HTTPS traffic
                Export root Certificate to Desktop,得到FiddlerRoot.cer
                命令行: about:config
                     添加 fiddler.certmaker.bc.keyprovidertype = TRUE
        2.2 ubuntu下添加根证书
              certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n Whatever_Name -i FiddlerRoot.cer
         2.2 为Chrome配置代理
              192.168.65.1:8888
         2.3 ubuntu Wireshark抓包
         2.4 Chrome访问HTTPS网站
         2.5 Fiddler命令行下
               !dumpcerts, 能将所有https连接的公钥、私钥都dump到一个文件夹里面
         2.6 Wireshark停止抓包,并解密
               edit->preference->protocol:ssl, RSA key list,配置ip,port,http,keyfile(指向私钥xx.pem文件)
               windows下的Wireshark:输入192.168.65.1,8888,http,D:/xx.pem
         !done