sslscan 版本 2 现已发布。这包括对后端扫描代码的重大重写,这意味着许多检查不再依赖于 OpenSSL 的版本。这使得无论系统编译时使用的 OpenSSL 版本如何,都可以支持旧协议(SSLv2 和 SSLv3)以及 TLSv1.3。
这主要归功于 jtesta 的工作,他负责了大部分后端重写。
其他关键变化包括:
--http 选项,因为它已损坏且最初使用率很低。在版本 2.0.0-beta4 中,对 XML 输出进行了一项可能带来破坏性变更的修改。以前,可能会返回多个 <certificate> 元素(默认返回一个,如果使用了 --show-certificate 则返回第二个)。
关键变化是:
<certificates>,它将包含 <certificate> 元素。<certificate> 元素有一个新的 type 属性,其值可以是:
short 用于默认输出。full 用于使用 --show-certificate 时。<certificate> 元素中的 <signature-algorithm> 元素不再包含 "Signature Algorithm:" 前缀,也不再包含空格和换行。如果您正在使用 XML 输出,那么您可能需要修改解析器。
这是 rbsec ([email protected]) 对 ioerror 版本的 sslscan 的一个分支(ioerror 版本的原始 README 包含在下文)。关键变更如下:
--show-certificate 显示)。--failed 显示)。--ipv6 强制)。--no-compression 禁用)。--no-ciphersuites。--no-colour。--no-heartbleed 禁用)的检查。--rdp 扫描 RDP 服务器(感谢 skettler)。--sleep 选项以在请求之间暂停。--no-preferred)。--show-client-cas)。建议忽略系统 OpenSSL 安装,并静态链接您自己的版本。虽然这会导致 sslscan 二进制文件占用更多资源(文件大小、内存消耗等),但这允许进行一些额外的检查,例如 TLS 压缩。请注意,从 sslscan 2.2.0 版本开始,sslscan 所需的最低 OpenSSL 版本是 3.5.0 (LTS),因此如果您的发行版带有旧版本,则无法针对它进行构建,您必须进行静态构建。
要编译自己的 OpenSSL 版本,您可能需要安装 OpenSSL 构建依赖项。以下命令可用于在 Debian 上执行此操作。
apt install git zlib1g-dev make gcc
然后运行
make static
这将克隆 OpenSSL 仓库,并在编译 sslscan 之前配置/编译/测试 OpenSSL。
请注意: 默认情况下,OpenSSL 使用 gcc 编译,没有进一步的自定义。要使用 clang 编译,请使用以下命令安装构建依赖项。
apt install git zlib1g-dev make clang
然后运行
make static CC=clang
您可以通过检查 sslscan --version 列出的版本是否带有 -static 后缀,来验证您是否拥有静态链接的 OpenSSL 版本。
确保您的本地 Docker 安装功能正常,然后使用以下命令构建容器:
make docker
或手动使用:
docker build -t sslscan:sslscan .
然后您可以使用以下命令运行 sslscan:
docker run --rm -ti sslscan:sslscan --help
感谢 jtesta 的补丁,sslscan 现在可以在 Windows 上编译。这可以通过本地编译或从 Linux 交叉编译来完成。请参阅 INSTALL 文件中的说明。
请注意,sslscan 最初是为 Linux 编写的,并且尚未在 Windows 上广泛测试。因此,Windows 版本应被视为实验性版本。
预构建的交叉编译 Windows 二进制文件可在 GitHub Releases 页面 上找到。
有实验性的支持在 macOS(原名 OS X)上进行静态构建,但这应被视为不受支持。您可能需要安装从源码编译 OpenSSL 所需的任何依赖项。完成后,只需运行:
make static
这是 sslscan.c 的一个分支,以便更好地支持 STARTTLS。
sslscan 的原始主页是:
http://www.titania.co.uk
sslscan 最初由以下人员编写:
Ian Ventura-Whiting
此分支的当前主页(直到上游合并完成的补丁)是:
http://www.github.com/ioerror/sslscan
大部分 TLS 之前的协议设置灵感来自 OpenSSL 的 s_client.c 程序。此分支的目标是在 STARTTLS 设置完善后最终与原始项目合并。
部分 OpenSSL 设置代码来自 Tor Project 的 Tor 程序。因此,遵守 BSD 许可证可能是合适的,声明为: Copyright (c) 2007-2010, The Tor Project, Inc.
--no-cipher-details)。--cipher-details)。--starttls-ldap)。--sni-name)(感谢 Ken)。--iana-names)。--show-certificates)。