由于近期又有人咨询https解密的问题,而且其要求必须使用源码包编译,所以也就测试了下。由于ssldump是一个N年前的项目了,当前使用的内核和各种包和当年都不同了。当前ssldump的rtfm站点已经打不开了该项目,托管的网站还能打开,现在的ssldump大多是各个OS厂商或应用大厂在维护自己的一套。比如F5、kail等。另外在安装完后,对于解密也是一种考验。

一、rhel7下编译后不能用

这里使用的是epel里的src包ssldump-0.9-0.9.b3.el7.src.rpm 包,解包后,里面且补丁包,打补丁包的方法如下:

1patch  -p0 

打完补丁包后,直接编译会被找不到libpcap相关的内容。需要单补编译安装libpcap,在使用源码编译安装后,发现编译仍然不通过,因为rhel7下默认使用的 x86_64位编译。

1./configure --host=i686-pc-linux-gnu  --with-pcap-inc=/usr/local/include  --with-openssl-inc=/usr/include/ --with-openssl-lib=/lib64/ --with-openssl

修改编译方式,按上面的参数可以成功编译出二进制文件,也可以执行,但不能解https包。后面通过网上查询,在F5的站点:https://support.f5.com/csp/article/K10209,具体内容如下

resumed-tls-handshake
resumed-tls-handshake

上在的意思大致可以和wpa2的破解做对比。wpa2破解时,需要一个完整的握手包。这里也一样,由于有cache的原因,导致同样的客户端在在次请求的时候,忽略了某些步骤,导致生成的包不包含完整的握手包。这部分可以详细原理可以参看最后链接部分的rfc5077和ssldump TROUBLESHOOTING部分。

但通过禁用DHE相关加密,并清缓存的方式发现还是不行。

二、正确的编译

可用的源码打包:https://blog.361way.com/files/ssldump.tar.gz,使用该包里的源码安装时,不需要额外再使用源码包安装libpcap包,只需要通过yum源安装如下四个包即可:`

1yum -y install libpcap libpcap-devel openssl openssl-devel
2./configure --with-openssl-lib=/lib64
3make && make install

按些方式配置后,就可以生成ssldump可执行文件。如果只是简单的测试,而不想在浏览器端禁用dhe相关加密,也可以在服务器端进行禁用。这里以apache 和nginx 为例,配置如下:

1# for apache配置
2SSLProtocol ALL -SSLv2 -SSLv3
3SSLHonorCipherOrder On
4SSLCipherSuite "AES256-SHA"
5# for nginx配置
6ssl_ciphers "RSA+AES256:!MD5";
7ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
8ssl_prefer_server_ciphers on; 

同样,如果担心上面提到的使用同一 session_id的情况,也可以在配置中禁用:

1# apache配置中注释如下部分
2SSLSessionCache         shmcb:/run/httpd/sslcache(512000)
3SSLSessionCacheTimeout  300
4# nginx 配置如下:
5ssl_session_cache none;
6ssl_session_tickets off;
7#ssl_session_cache    shared:SSL:1m;
8#ssl_session_timeout  5m; 

三、解密测试

查看编译后的版本情况:

1# /usr/local/sbin/ssldump -v
2ssldump 0.9b3
3Copyright (C) 1998-2001 RTFM, Inc.
4All rights reserved.
5Compiled with OpenSSL: decryption enabled

使用如下命令进行解密获取的流量包:

1# ssldump -Aed -nr /var/tmp/www-ssl-client.cap -k /config/ssl/ssl.key/www-ssl.key

结果如下:

如果只是想单纯的测试下解密功能,而不想搭建 https环境,也可以可以使用wireshark上的示例包

参考链接如下:

https://pkg.kali.org/pkg/ssldump

https://salsa.debian.org/pkg-security-team/ssldump/tree/debian/master

https://src.fedoraproject.org/rpms/ssldump/releases

http://ssldump.sourceforge.net/TROUBLESHOOTING

https://tools.ietf.org/html/rfc5077