sslscan:快速 SSL/TLS 扫描器!全参数详细教程!Kali Linux教程!黑客渗透教程!

简介

sslscan 查询 SSL/TLS 服务(如 HTTPS)并报告协议版本、密码套件、密钥交换、签名算法和正在使用的证书。这有助于用户从安全角度了解哪些参数较弱。

SSLSCAN还可以将结果输出到XML文件中,以便于外部程序。

安装

源码安装

通过以下命令来进行克隆项目,建议请先提前挂好代理。不然可能会克隆不了。

bash 复制代码
git clone https://github.com/rbsec/sslscan.git

进入目录并查看

bash 复制代码
cd sslscan/
ls

安装

bash 复制代码
sudo make install

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

bash 复制代码
sslscan -h

docker 安装

同上先克隆源码。

bash 复制代码
git clone https://github.com/rbsec/sslscan.git

进入目录。

bash 复制代码
cd sslscan/
ls

用以下方式构建容器,建议请先提前给docker配置好国内镜像或挂好代理。

bash 复制代码
sudo make docker

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

bash 复制代码
sudo docker run --rm -ti sslscan:sslscan --help

APT 包管理器安装

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

bash 复制代码
sudo apt install sslscan

使用

1. --help

显示您正在阅读的帮助文本。显示选项摘要

bash 复制代码
sslscan --help

2. 常规使用

bash 复制代码
语法:sslscan [options] [host:port | host]

sslscan 13.107.21.200:443

3. --targets=<file>

包含要检查的主机列表的文件。主机可以配备端口 (host:port)

包含要检查的主机列表的文件。可以为主机提供端口(即主机:端口)。每行一个目标

bash 复制代码
sslscan --targets=targets.txt

4. --sni-name=<name>

SNI 的主机名。对 SNI 使用不同的主机名。

bash 复制代码
sslscan --sni-name=qq.com 112.60.14.252:443

5. --ipv4, -4

仅使用 IPv4。强制 IPv4 DNS 解析。默认为尝试 IPv4,如果失败则返回 IPv6。

bash 复制代码
sslscan --ipv4 112.60.14.252:443

6. --ipv6, -6

仅使用 IPv6。强制 IPv6 DNS 解析。默认为尝试 IPv4,如果失败则返回 IPv6。

bash 复制代码
sslscan --ipv6 112.60.14.252:443

7. --show-certificate

显示完整证书信息。显示证书信息。

bash 复制代码
sslscan --show-certificate 112.60.14.252:443

8. --show-client-cas

显示用于 TLS 客户端身份验证的受信任 CA

显示服务器允许进行客户端身份验证的 CA 列表。对于 IIS/Schannel 服务器,将为空白。

bash 复制代码
sslscan --show-client-cas 112.60.14.252:443

9. --no-check-certificate

不警告弱证书算法或密钥。不标记使用弱算法(MD5 和 SHA-1)或短(<2048 位)RSA 密钥签名的证书

bash 复制代码
sslscan --no-check-certificate 112.60.14.252:443

10. --ocsp

从服务器请求 OCSP 响应。显示 OCSP 状态

bash 复制代码
sslscan --ocsp 112.60.14.252:443

11. --pk=<file>

包含私钥的文件或 PKCS#12 文件,包含私钥/证书对

包含私钥的文件或包含私钥/证书对的 PKCS#12 文件(由 MSIE 和 Netscape 生成)

12. --pkpass=<password>

私钥或 PKCS#12 文件的密码

bash 复制代码
sslscan --pk=client.key --pkpass=mypassword 112.60.14.252:443

13. --certs=<file>

包含 PEM/ASN1 格式的客户端证书的文件

bash 复制代码
sslscan --pk=client.key --certs=client.crt 112.60.14.252:443

14. --ssl2

仅检查是否启用了 SSLv2

bash 复制代码
sslscan --ssl2 112.60.14.252:443

15. --ssl3

仅检查是否启用了 SSLv3

bash 复制代码
sslscan --ssl3 112.60.14.252:443

16. --tls10

仅检查 TLSv1.0 密码

bash 复制代码
sslscan --tls10 112.60.14.252:443

17. --tls11

仅检查 TLSv1.1 密码

bash 复制代码
sslscan --tls11 112.60.14.252:443

18. --tls12

仅检查 TLSv1.2 密码

bash 复制代码
sslscan --tls12 112.60.14.252:443

19. --tls13

仅检查 TLSv1.3 密码

bash 复制代码
sslscan --tls13 112.60.14.252:443

20. --tlsall

仅检查 TLS 密码(所有版本)(版本 1.0、1.1、1.2 和 1.3)

bash 复制代码
sslscan --tlsall 112.60.14.252:443

21. --show-ciphers

显示支持的客户端密码。显示 sslscan 支持的完整密码列表

bash 复制代码
sslscan --show-ciphers 154.12.92.33:443

22. --show-cipher-ids

显示密码 ID。打印十六进制密码 ID。

bash 复制代码
sslscan --show-cipher-ids 154.12.92.33:443

23. --show-times

显示握手时间(以毫秒为单位)

显示每次握手所用的时间(以毫秒为单位)。请注意,每个密码只发出一个请求,并且 ClientHello 的大小不是恒定的,因此不应将其用于适当的基准测试或性能测试。

您可能还想使用 --no-cipher-details 使输出更清晰一些。

bash 复制代码
sslscan --show-times 154.12.92.33:443

24. --no-cipher-details

禁用 EC 曲线名称和 EDH/RSA 密钥长度输出。隐藏 NIST EC 曲线名称和 EDH/RSA 密钥长度。

bash 复制代码
sslscan --no-cipher-details 154.12.92.33:443

25. --no-ciphersuites

不检查支持的密码套件。不扫描支持的密码套件。

bash 复制代码
sslscan --no-ciphersuites 154.12.92.33:443

26. --no-compression

不检查 TLS 压缩 (CRIME)

bash 复制代码
sslscan --no-compression 154.12.92.33:443

27. --no-fallback

不检查 TLS Fallback SCSV。不检查 TLS 后备信令密码套件值(后备)。

bash 复制代码
sslscan --no-fallback 154.12.92.33:443

28. --no-groups

不枚举密钥交换组

bash 复制代码
sslscan --no-groups 154.12.92.33:443

29. --no-heartbleed

不检查 OpenSSL Heartbleed (CVE-2014-0160)

心脏出血(英语:Heartbleed),也简称为心血漏洞,是一个出现在加密程序库OpenSSL的安全漏洞,该程序库广泛用于实现互联网的传输层安全(TLS)协议。它于2012年被引入了软件中,2014年4月首次向公众披露。只要使用的是存在缺陷的OpenSSL实例,无论是服务器还是客户端,都可能因此而受到攻击。此问题的原因是在实现TLS的心跳扩展时没有对输入进行适当验证(缺少边界检查),因此漏洞的名称来源于"心跳"(heartbeat)。该程序错误属于缓冲区过滤,即可以读取的数据比应该允许读取的还多。HeartBleed主要存在与OpenSSL的1.0.1版本到1.0.1f版本。利用该漏洞,攻击者可以远程读取服务器内存中64K的数据,获取内存中的敏感信息。

bash 复制代码
sslscan --no-heartbleed 154.12.92.33:443

30. --no-renegotiation

不检查 TLS 重新协商

bash 复制代码
sslscan --no-renegotiation 154.12.92.33:443

31. --show-sigs

枚举签名算法

bash 复制代码
sslscan --show-sigs 154.12.92.33:443

32. --starttls-ftp

FTP 的 STARTTLS 设置

bash 复制代码
sslscan --starttls-ftp 154.12.92.33:443

33. --starttls-imap

IMAP 的 STARTTLS 设置

bash 复制代码
sslscan --starttls-imap 154.12.92.33:443

34. --starttls-irc

IRC 的 STARTTLS 设置

bash 复制代码
sslscan --starttls-irc 154.12.92.33:443

35. --starttls-ldap

LDAP 的 STARTTLS 设置

bash 复制代码
sslscan --starttls-ldap 154.12.92.33:443

36. --starttls-mysql

MYSQL 的 STARTTLS 设置

bash 复制代码
sslscan --starttls-mysql 154.12.92.33:443

37. --starttls-pop3

POP3 的 STARTTLS 设置

bash 复制代码
sslscan --starttls-pop3 154.12.92.33:443

38. --starttls-psql

为 PostgreSQL 设置 STARTTLS

bash 复制代码
sslscan --starttls-psql 154.12.92.33:443

39. --starttls-smtp

为 SMTP 设置 STARTTLS

bash 复制代码
sslscan --starttls-smtp 154.12.92.33:443

40. --starttls-xmpp

为 XMPP 设置 STARTTLS

bash 复制代码
sslscan --starttls-xmpp 154.12.92.33:443

41. --xmpp-server

使用服务器到服务器的 XMPP 握手。执行服务器到服务器的 XMPP 连接。如果 --starttls-xmpp 失败,请尝试此操作。

bash 复制代码
sslscan --xmpp-server 154.12.92.33:443

42. --rdp

在开始扫描前发送 RDP 前导码

bash 复制代码
sslscan --rdp 154.12.92.33:443

43. --bugs

启用 SSL 实施错误解决方法

bash 复制代码
sslscan --bugs 154.12.92.33:443

44. --no-colour

禁用彩色输出

bash 复制代码
sslscan --no-colour 154.12.92.33:443

45. --sleep=<msec>

在连接请求之间暂停。默认为禁用

连接之间暂停。对 STARTTLS SMTP 服务很有用,或任何其他执行速率限制的服务。默认值为禁用。

bash 复制代码
sslscan --sleep=100 154.12.92.33:443

46. --timeout=<sec>

设置套接字超时。默认为 3 秒

设置套接字超时。对于无法响应其不理解的密码的主机很有用。默认值为 3 秒。

bash 复制代码
sslscan --timeout=3 154.12.92.33:443

47. --connect-timeout=<sec>

设置连接超时。默认为 75 秒

设置初始连接超时。对于响应初始 connect() 较慢的主机很有用。默认值为 75 秒。

bash 复制代码
sslscan --connect-timeout=75 154.12.92.33:443

48. --verbose

显示详细输出

bash 复制代码
sslscan --verbose 154.12.92.33:443

49. --version

显示程序版本

bash 复制代码
sslscan --version

50. --xml=<file>

将结果输出到 XML 文件。使用 - 作为 STDOUT。

bash 复制代码
sslscan --xml=result.xml 154.12.92.33:443

示例

扫描本地 HTTPS 服务器

bash 复制代码
sslscan localhost
sslscan 127.0.0.1
sslscan 127.0.0.1:443
sslscan [::1]
sslscan [::1]:443

总结

sslscan 是一个强大的 SSL/TLS 扫描工具,能够检测服务器的加密协议、支持的加密套件及潜在的安全漏洞。通过其灵活的参数配置,可以轻松进行深度的 SSL/TLS 安全分析,帮助提高系统的安全性。

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

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

相关推荐
2401_8273645613 分钟前
在windows访问Ubuntu共享文件夹--samba方法
linux·ubuntu
黑客笔记1 小时前
Weevely代码分析
web安全·网络安全
doubt。1 小时前
6.攻防世界php_rce
网络·安全·web安全·网络安全
aaaweiaaaaaa1 小时前
upload labs靶场
计算机网络·web安全·网络安全·状态模式
柴郡猫^O^1 小时前
OSCP - Proving Grounds - Jordak
安全·网络安全·安全性测试
泪不是Web妳而流2 小时前
【深入探索】Linux基础及配置
linux·经验分享·学习方法
马船长4 小时前
bat脚本实现自动化漏洞挖掘
运维·网络安全·自动化
稚辉君.MCA_P8_Java5 小时前
ElasticSearch view
大数据·linux·elasticsearch·搜索引擎·全文检索
枫叶落雨2225 小时前
15JavaWeb——Maven高级篇
linux·python·maven