利用Fiddler,解密wireshark抓的HTTPS包
背景介绍
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