tlsenum 是一个命令行 TLS 枚举工具,它尝试枚举服务器支持的 TLS 密码套件,并按优先级顺序列出它们。
它的工作原理是发送 TLS ClientHello 消息,并解析服务器返回的 ServerHello 响应。
tlsenum 假定服务器决定首选密码套件,而忽略客户端指示的偏好。虽然 TLS 规范并未严格保证这一点,但这似乎是相当常见的实现细节。
tlsenum 可用于 Python 2.7、3.3 或 3.4,并可通过 pip 安装。
$ pip install tlsenum
使用这个工具非常简单,以下是扫描 twitter.com 时该工具输出结果的示例。
[ayrx@division tlsenum]$ tlsenum twitter.com 443
TLS Versions supported by server: 3.0, 1.0, 1.1, 1.2
Deflate compression: no
Supported Cipher suites in order of priority:
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_RC4_128_SHA
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA
请查看 tlsenum -h 了解其他选项。