SSLv2早就被证实是存在漏洞不安全的,当前的浏览器都不支持SSLv2站点的访问。通过对站点SSLv2协议的检测来判断该站点是否是安全的,在新版的openssl中ssl握手协议中也移除了SSLv2部分的内容,如果要用openssl来实现ssl v2的检测,只能用老版本。当然也可以通过其他库来实现。查找了c/c++ 相关的ssl库,如mbedtls、wolfSSL发现都不支持SSLv2的检测,其中mbedtls老版本是server端支持v2检测,client端不支持。通过网上查找,找到python的库是可以支持的,其中测试可用的一个是sslyze
sslyze
sslyze提供的是一个命令行工具,支持SSL检测,支持的协议包括SSLv2,有能力的可以自行提炼其中的源码
Github地址:https://github.com/nabla-c0d3/sslyze
sslyze文档:https://nabla-c0d3.github.io/sslyze/documentation/index.html
Centos下安装:
#安装pip3
yum install -y python3-pip
#安装sslyze
pip3 install --upgrade sslyze
检测sslv2命令:
python3 -m sslyze --sslv2 域名/ip
检测输出文档命令
python3 -m sslyze --sslv2 域名/ip --json_out=/home/ results.json
检测结果输出到本地文件,格式为json,不同版本,输出的json格式可能会是不同的
testssl
另外还有一个是通过shell脚本检测sslv2
Github地址:https://github.com/drwetter/testssl.sh
下载下来后,执行utils目录下prototype.ssl2proto-check.bash脚本就可以直接检测
不过检测的结果只是该站点支不支持sslv2,协议套件相关的内容没有显示出来,有需要的可以研究一下
至于SSLv2的测试站点,公网上的站点目前没有找到,我是使用windows server2008,开启IIS测试站点进行测试的
go命令行方式调用sslyze进行检测
用go写了用命令行的方式调用sslyze检测SSL v2的程序,前端是程序运行的系统需安装好sslyze,执行命令行输出json格式的检测结果,并解析检测结果
下载地址:
https://download.csdn.net/download/a137748099/20336759?spm=1001.2014.3001.5503