一、问题背景
现网应用需要分析经过公网F5进入的https流量,网上搜索出来的结果都是通过wireshark 设置SSLKEYLOGFILE ,并在SSL协议中设置Pre-Master-Securet log file,可以对抓到的SSL https包进行解密。不过这里跟公司里的情况又有点不一样,由于https解密需要用到私钥。一般情况的话我们解析回联网上的包是没有私钥的,不过我这里私钥可以从F5上导出。理论上来说,有私钥,通过tcpdump进行抓包后,通过这个私钥文件,应该很容易通过wireshark 配置好私钥就可以解析出需要的信息。不过发现真正测试的时候并不好用。
二、ssldump解密
网上查询发现在Linux平台下有个ssldump 工具可以进行ssl https协议的抓包和解析,由于f5本身是基于红帽系统的,也可以安装软件。通过ssh登录f5后台,发现系统自带有ssldump工具。通过man查看该工具的用法如下:
<img src="https://www.361way.com/wp-content/uploads/2017/07/man-ssldump.png" title="man-ssldump" alt="man-ssldump" width="635" height="144" />
其还有一个 -r 参数,可以对已经抓过的包,进行解析。
<img src="https://www.361way.com/wp-content/uploads/2017/07/ssl-handshake.png" alt="" width="649" height="229" />
中间这部分运行完后,会将https包的内容解析出来,在下面通过分隔线打印出来。这里只截取了部分内容:
<img src="https://www.361way.com/wp-content/uploads/2017/07/ssl-post.png" title="ssl-post" alt="ssl-post" width="443" height="233" />
三、其他
由于F5是比较核心和昂贵的设备,不想占其资源,涉及到ssl解包的操作想在一台linux上进行,尝试在LINUX上安装ssldump工具。不过安装和使用过程中发现一些问题。
1、ssldump在linux上的安装
使用epel 源可以直接安装,不过安装完后,运行的过程中会有如下报错:
# ssldump -Ad -k CLIENT_SD_CA.key -r https2.pcap
Problem loading private key
ERROR: Couldn't create network handler
网上有人给出的结果是和openssl 包的版本兼容不对 。
换用源码包安装,遇到第一个提示:
configure: error: Couldn't find PCAP library: needed for ssldump
该提示缺少libpcap包,下载该包,编译安装即可解决。再次编译,又遇到如下错误:
<br />
In file included from ./base/network.h:96:0,
from ./base/network.c:51:
./base/tcpconn.h:53:6: error: unknown type name ‘tcp_seq’
tcp_seq s_seq;
^
./base/tcpconn.h:59:6: error: unknown type name ‘tcp_seq’
tcp_seq seq;
^
./base/tcpconn.h:60:6: error: unknown type name ‘tcp_seq’
tcp_seq ack;
^
make: *** [network.o] Error 1
由于对C代码并不很懂,所以也懒得再去看源代码了。再次尝试epel 源安装的ssldump ,发现可以正常执行了。不过使用和f5上一样的命令执行时,发现只能打印ssl 三次握手的加密信息,后面的解密内容打印不出。
2、SSL数据包
<img src="https://www.361way.com/wp-content/uploads/2017/07/ssldump.png" alt="" width="792" height="124" />
上面是通过wireshark打开时的TLS https交互的信息,可以看出,上面会对信息进行分类,真正的数据在Application data 里,而上面的哪些包是三次握手的过程。提出这点就是在分析包或解码包时,对于不需要的信息,可以直接跳过,只选中需要的内容进行操作尝试 。
<br />
2019-09-21后记,后来有人咨询该问题。通过后面进一步研究。已解决ssldump https解包在所有平台上的测试。上面只出现握手包,不出现解密 http请求内容的问题已得到解决,新的内容已更新到:
<a href="https://www.361way.com/ssldump-https/6207.html" target="_blank" rel="noopener">https://www.361way.com/ssldump-https/6207.html</a> (需付费)
<br />
您好,我也在研究F5 bigip的https流量解析,看到网上的教程,去服务器里面找key,但是找了好多个都不行,可以请教一下,您的key和流量都是怎么得到的吗
具体已邮件沟通。
怎么看你需要付费的内容?
捐赠88元可查看
怎么看付费的
捐赠88元,邮件截图发下,我把密码发你下。