sslyze:一个快速而强大的SSL/TLS扫描工具!全参数详细教程!Kali Linux 教程!黑客教程!

简介

Sslyze是一个快速而强大的SSL/TLS扫描工具和Python库。

Sslyze可以通过连接到服务器来分析服务器的SSL/TLS配置,以确保其使用强加密设置(证书,密码套件,椭圆曲线等),并且不容易受到已知TLS的影响攻击(Heartble,机器人,OpenSSL CCS注入等)。 

Sslyze是可以分析SSL配置的Python工具通过连接到服务器的服务。它被设计为快速和全面,应帮助组织和测试人员确定影响其SSL服务器的错误配置。 

特点

  • 专注于速度和可靠性:Sslyze是一种经过战斗的工具,用于可靠地扫描数十万个每天的服务器。
  • 易于操作:Sslyze可以直接从CI/CD运行,以便不断检查服务器 Mozilla推荐的TLS配置。
  • 完全记录的 Python API 直接从任何 Python应用程序,例如部署到AWS Lambda的函数。
  • 支持扫描非HTTP服务器,包括SMTP,XMPP,LDAP,POP,IMAP,RDP,POSTGRES和FTP服务器。
  • 扫描的结果可以轻松地保存到JSON文件中以进行以后处理。

安装

源码安装

通过以下命令进行克隆项目,建议请先提前挂好代理。

git clone https://github.com/nabla-c0d3/sslyze.git

进入目录并查看

cd sslyze/
ls

创建python虚拟空间并激活。

python3 -m venv venv
source venv/bin/activate

开始安装

python3 setup.py install

输入以下命令,如果出现这个界面就说明安装成功了。

sslyze -h

docker 安装

同上克隆项目并进入。建议请先提前配置好国内镜像或代理。

git clone https://github.com/nabla-c0d3/sslyze.git
cd sslyze

运行以下命令开始安装

sudo docker build -t sslyze .

输入以下命令,如果出现这个界面就说明安装成了。

sudo docker run --rm sslyze --help

pip 包管理器安装

请先创建python虚拟空间并激活。

python3 -m venv venv
source venv/bin/activate

通过以下命令安装

pip3 install sslyze

运行以下命令,如果出现这个界面就说明安装成功了。

sslyze -h

apt 包管理器安装

Kali Linux 默认已经安装好 sslyze 工具了。也可以通过以下命令进行安装。

sudo apt install sslyze

使用

1. -h, --help

显示此帮助消息并退出

sslyze -h

位置参数

2. target

要扫描的服务器列表。

sslyze 35.215.150.145

信任存储选项

3. --update_trust_stores

更新 SSLyze 使用的默认信任存储。最新的存储将从 https://github.com/nablac0d3/trust_stores_observatory 下载。
此选项旨在单独使用,并将使提供给 SSLyze 的任何其他命令行选项都保持沉默。

sslyze --update_trust_stores

客户端证书选项

4. --cert CERTIFICATE_FILE

客户端证书链文件名。证书必须为 PEM 格式,并且必须从主体的客户端证书开始排序,然后是中间 CA 证书(如果适用)。

sslyze --cert client.pem 35.215.150.145

5. --key KEY_FILE

客户端私钥文件名。

sslyze --key client.key 35.215.150.145

6. --keyform KEY_FORMAT

客户端私钥格式。DER 或 PEM(默认)。

7. --pass PASSPHRASE

客户端私钥密码。

sslyze --cert client.pem --key client.key --keyform PEM --pass mypassword 35.215.150.145

输入和输出选项

8. --json_out JSON_FILE

将扫描结果作为 JSON 文档写入文件 JSON_FILE。如果 JSON_FILE 设置为“-”,则 JSON 输出将打印到 stdout。生成的 JSON 文件是 SSLyze 的 Python API 中描述的 ScanResult 对象的序列化版本:节点和属性将相同。有关更多详细信息,请参阅 https://nablac0d3.github.io/sslyze/documentation/available-scan-commands.html。

sslyze --json_out result.json 35.215.150.145

9. --targets_in TARGET_FILE

从文件 TARGET_FILE 读取要扫描的目标列表。它应该每行包含一个主机:端口。

sslyze --targets_in targets.txt 

10. --quiet

不向 stdout 输出任何内容;使用 --json_out 时很有用。

sslyze --quiet 35.215.140.70

 

连接选项

11. --slow_connection

大大减少 SSLyze 发起的并发连接数。如果您的主机和服务器之间的连接速度很慢,或者服务器无法处理许多并发连接,这将使扫描速度变慢但更可靠。如果您遇到大量超时或错误,请启用此选项。

sslyze --slow_connection 35.215.140.70:443

12. --https_tunnel PROXY_SETTINGS

通过 HTTP CONNECT 代理将所有流量通过隧道传输到目标服务器。HTTP_TUNNEL 应为代理的 URL:“http://USER:PW@HOST:PORT/”。对于需要身份验证的代理,仅支持基本身份验证。

sslyze --https_tunnel https://192.168.174.129:10809 35.215.140.70:443

 

13. --starttls PROTOCOL

连接到目标服务器时执行 StartTLS 握手。StartTLS 应为以下之一:auto、smtp、xmpp、xmpp_server、pop3、imap、ftp、ldap、rdp、postgres。'auto' 选项将导致 SSLyze 从提供的端口号推断出每个目标服务器的协议(ftp、imap 等)。

sslyze --starttls auto 35.215.140.70:443

14. --xmpp_to HOSTNAME

STARTTLS XMPP 的可选设置。XMPP_TO 应为要放入 XMPP 流的“to”属性中的主机名。默认为服务器的主机名。

sslyze --xmpp_to xmpp.example.com 35.215.140.70:443

15. --sni SERVER_NAME_INDICATION

使用服务器名称指示指定要连接的主机名。仅影响 TLS 1.0+ 连接。

sslyze --sni www.baidu.com 35.215.140.70:443

扫描命令

16. --tlsv1

测试服务器是否支持 TLS 1.0。

sslyze --tlsv1 172.247.44.143

17. --heartbleed

测试服务器是否存在 OpenSSL Heartbleed 漏洞。

sslyze --heartbleed 172.247.44.143

18. --fallback

测试服务器是否支持 TLS_FALLBACK_SCSV 机制,以防止降级攻击。

sslyze --fallback 172.247.44.143

 

19. --certinfo

检索并分析服务器的证书以验证其有效性。

sslyze --certinfo 172.247.44.143

20. --certinfo_ca_file CERTINFO_CA_FILE

与 --certinfo 一起使用。包含 PEM 格式的根证书的文件路径,将用于验证服务器证书的有效性。

sslyze --certinfo --certinfo_ca_file ca.pem 172.247.44.143

21. --tlsv1_2

测试服务器是否支持 TLS 1.2。

sslyze --tlsv1_2 172.247.44.143

22. --http_headers

测试服务器是否存在与安全相关的 HTTP 标头。

sslyze --http_headers 172.247.44.143

 

23. --compression

测试服务器是否支持 TLS 压缩,可利用该压缩执行 CRIME 攻击。

sslyze --compression 172.247.44.143

24. --early_data

测试服务器是否支持 TLS 1.3 早期数据。

sslyze --early_data 172.247.44.143

25. --tlsv1_1

测试服务器是否支持 TLS 1.1。

sslyze --tlsv1_1 172.247.44.143

26. --openssl_ccs

测试服务器是否存在 OpenSSL CCS 注入漏洞 (CVE-2014-0224)。

sslyze --openssl_ccs 172.247.44.143

 

27. --reneg

测试服务器是否支持不安全的 TLS 重新协商和客户端发起的重新协商。

sslyze --reneg 172.247.44.143

 

28. --elliptic_curves

测试服务器是否支持椭圆曲线。

sslyze --elliptic_curves 172.247.44.143

 

29. --sslv3

测试服务器是否支持 SSL 3.0。

sslyze --sslv3 172.247.44.143

30. --resum

测试服务器是否支持使用会话 ID 和 TLS 票证的 TLS 1.2 会话恢复。

sslyze --resum 172.247.44.143

 

31. --resum_attempts RESUM_ATTEMPTS

与 --resum 一起使用。SSLyze 应尝试的会话恢复次数(包括会话 ID 和 TLS 票证)。默认值为 5,但可以使用更高的值(例如 100)来更准确地衡量服务器会话恢复成功或失败的频率。

sslyze --resum --resum_attempts 20 172.247.44.143

32. --tlsv1_3

测试服务器是否支持 TLS 1.3。

sslyze --tlsv1_3 172.247.44.143

33. --sslv2

测试服务器是否支持 SSL 2.0。

sslyze --sslv2 172.247.44.143

34. --robot

测试服务器是否存在 ROBOT 漏洞。

sslyze --robot 172.247.44.143

总结

SSLyze 是一款强大的 SSL/TLS 扫描工具,可用于检测协议支持情况、证书信息、安全漏洞等。通过合理使用其多种参数,安全人员可以快速评估服务器的 TLS 安全性,从而提升整体防护能力,确保数据传输的安全性。

在此特别强调,本教程仅在合法授权的情况下进行测试和研究,请勿用于其他用途。未经授权使用此类工具可能会侵犯他人隐私,触犯相关法律,任何因此引发的法律或利益纠纷与本人无关。

欢迎各位大佬,小白来找我交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值