概述

在庞大的网络环境中,需要通过抓包来排查网络问题,然则有时候 https 的包是 tls 加密,无法看到真实它在做什么, 需要对其举行解密。

工具

  • tcpdump
  • wireshark
  • https 请求工具
    • 浏览器
    • curl

设置解密变量

export SSLKEYLOGFILE=~/Downloads/ssl.key

测试

发送 https 请求

curl https://baidu.com
<html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
<hr><center>bfe/1.0.8.18</center>
</body>
</html>

查看 ssl.key 是否有交流 key


cat ~/Downloads/sslkey.log
CLIENT_RANDOM E358B7ECDEDA7FEC4684942DC6395CFFB34B72918CAFACD69AA06713BB25240D F3934E92E3B1562B13CBA7C8613E7DDCE23A46F68B2B489604C99B65628833738230970A6A2940AA55F600AA06E4874E

有交流 key 说明乐成,若是没有交流的 key 信息,那就说明使用的 https 的应用程序(客户端)不支持捕捉 SSLKEYLOGFILE 环境变量输出交流的 key 信息,建议换客户端或查询资料排查。

最先抓包

  1. 查询域名的 IP 地址,通过 dns 剖析域名的 IP: 220.181.38.148
$ ping baidu.com -t 1
PING baidu.com (220.181.38.148): 56 data bytes
64 bytes from 220.181.38.148: icmp_seq=0 ttl=49 time=6.459 ms

--- baidu.com ping statistics ---
2 packets transmitted, 1 packets received, 50.0% packet loss
round-trip min/avg/max/stddev = 6.459/6.459/6.459/0.000 ms

在其他终端执行

sudo tcpdump -i any host 220.181.38.148 -w https_baidu.cap -vv
Password:
tcpdump: data link type PKTAP
tcpdump: listening on any, link-type PKTAP (Apple DLT_PKTAP), capture size 262144 bytes
54 packets captured
1027 packets received by filter
0 packets dropped by kernel

发送两次请求

,

皇冠足球app

www.huangguan.us是一个提供皇冠代理APP下载、皇冠会员APP下载、皇冠体育最新登录线路、新2皇冠网址的的体育平台。新皇冠体育官网是多年来值得广大客户信赖的平台,我们期待您的到来!

,
export SSLKEYLOGFILE=~/Downloads/ssl.key
$ curl https://baidu.com
<html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
<hr><center>bfe/1.0.8.18</center>
</body>
</html>
$ curl https://baidu.com
<html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
<hr><center>bfe/1.0.8.18</center>
</body>
</html>

使用 wireshark 剖析抓的包

  1. wireshark 打开抓的包

发现大量的 tls 协议包, 无法知道做了什么请求

  1. 使用 wireshark 打开 sslkey.log
      wireshark --> 首选项 > protocol > ssl