如何检测服务器支持的秘钥算法列表-sslscan详解:安装、使用、原理、示例
如何检测服务器支持的秘钥算法列表-sslscan详解:安装、使用、原理、示例
一、安装sslscan
1、git下载sslscan源码
[[email protected] ~]# git clone https://github.com/rbsec/sslscan
2、进入目录
[[email protected] ~]# cd sslscan
3、编译安装
[[email protected] sslscan]# make static
4、查看是否编译成功
[[email protected] sslscan]#./sslscan -version
Version: 1.11.12-rbsec-1-gfab908e-static
OpenSSL 1.0.2-chacha (1.0.2g-dev)
二、使用sslscan
[[email protected] sslscan]# ./sslscan --tlsall www.baidu.com:443
OR
[[email protected] sslscan]# ./sslscan --tlsall 192.168.5.200 ----假如192.168.5.200是你的服务器IP
PS:上述两个命令的前提是能够ping通。
三、sslscan的原理
① sslscan通过创建多个https的连接来试探服务器支持的加密方式;
② 当使用https连接到服务器的时候,会交换双方所支持的加密方式,之后选择双发都能支持的方式进行通信;
如果https服务器配置不当,就会存在MITM攻击,攻击者就可以通过客户端支持的弱加密算法来欺骗服务器;
假如使用的是SSLV2的56位DES,当攻击者拦截并使用了这种加密流量过后,可能在很短时间之内就能够**加***。
四、sslscan的功能
① sslscan能够检测heartbleed,这是一个openssl的漏洞;
heartbleed漏洞存在于OpenSSL TSL中,它由一个缓冲区导致,允许从内存中读取数据;
实际上,Heartbleed 可以在任何未装补丁的支持 TLS 的 OpenSSL (1.0.1 到 1.0.1f 之间)服务器上利用;
它从服务器内存中读取 64 KB 的纯文本数据,这能够重复执行,服务器上不会留下任何踪迹或日志。
这意味着攻击者可以从服务器读取纯文本信息,包括服务器的的私钥或者加密方式,会话 Cookie 或 HTTPS 请求会包含用
户的密码或其它敏感信息。
五、sslscan的输出格式
- sslscan有相当完整的支持来检测SSL和TLS的所有版本和密码,包括漏洞(如心脏出血漏洞和贵宾犬)。
- 在输出中突出高亮的SSLv2和SSLv3的密码。
- 高亮显示的SSLv3(贵宾犬)上的CBC密码。
- 在输出中高亮显示3DES和RC4密码。
- 高亮显示PFS + GCM密码在输出中良好。
- 检查OpenSSL HeartBleed(CVE-2014-0160)。
- 标记已过期的证书。
- 使用OpenSSL> = 1.0.2标记弱DHE**。
- 试验性Windows&OS X支持。
- 支持扫描的PostgreSQL服务器。
- 启动TLS支持LDAP。
六、示例解析
第一部分告诉了我们服务器的一些配置信息,包含常见的配置:是否支持TLS Fallback SCSV,是否支持压缩,Heartbleed。
第二部分告诉了我们服务器支持的加密算法,以及服务器首选的加密算法(如果客户端支持,服务器会尝试使用prefered的算法进行通信);红色表示不安全的算法,黄色代表中等强度的算法。
第三部分告诉了我们证书签名的一些信息,这里用的是2048位的RSA进行签名。