Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
cipherscan — 一种非常简单的方法,用于找出目标支持的SSL加密套件。 | Kitploit
工具/GitHubGitHub/mozilla/cipherscan
漏洞扫描器配置审计网络安全密码学
GitHubmozilla/cipherscan

cipherscan

一种非常简单的方法,用于找出目标支持的SSL加密套件。

查看仓库
2.0k265171年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
CipherScan
==========

[![构建状态](https://travis-ci.org/mozilla/cipherscan.svg?branch=master)](https://travis-ci.org/mozilla/cipherscan)

![cipherscan](https://assets.kitploit.com/production/public/readmes/1427/4438ffbc9a46add751bfb281c7f03dd6e442c5029995e8407d07def3799d0aac.png)

CipherScan 测试给定目标上所有主要 SSL 和 TLS 版本的密码套件排序。它还提取一些证书信息、TLS 选项、OCSP 装订等。CipherScan 是 `openssl s_client` 命令行的封装。

CipherScan 旨在运行于所有类 Unix 系统。它自带针对 Linux/64 和 Darwin/64 的 OpenSSL 构建。在其他平台上,它将使用操作系统提供的 openssl 版本(可能支持的密码有限),或通过 `-o` 命令行标志提供您自己的版本。

示例
--------

基本测试:
```bash
$ ./cipherscan google.com
...................
目标: google.com:443

prio  ciphersuite                  protocols                    pfs                 curves
1     ECDHE-RSA-CHACHA20-POLY1305  TLSv1.2                      ECDH,P-256,256bits  prime256v1
2     ECDHE-RSA-AES128-GCM-SHA256  TLSv1.2                      ECDH,P-256,256bits  prime256v1
3     ECDHE-RSA-AES128-SHA         TLSv1.1,TLSv1.2              ECDH,P-256,256bits  prime256v1
4     ECDHE-RSA-RC4-SHA            SSLv3,TLSv1,TLSv1.1,TLSv1.2  ECDH,P-256,256bits  prime256v1
5     AES128-GCM-SHA256            TLSv1.2                      None                None
6     AES128-SHA256                TLSv1.2                      None                None
7     AES128-SHA                   TLSv1.1,TLSv1.2              None                None
8     RC4-SHA                      SSLv3,TLSv1,TLSv1.1,TLSv1.2  None                None
9     RC4-MD5                      SSLv3,TLSv1,TLSv1.1,TLSv1.2  None                None
10    ECDHE-RSA-AES256-GCM-SHA384  TLSv1.2                      ECDH,P-256,256bits  prime256v1
11    ECDHE-RSA-AES256-SHA384      TLSv1.2                      ECDH,P-256,256bits  prime256v1
12    ECDHE-RSA-AES256-SHA         SSLv3,TLSv1,TLSv1.1,TLSv1.2  ECDH,P-256,256bits  prime256v1
13    AES256-GCM-SHA384            TLSv1.2                      None                None
14    AES256-SHA256                TLSv1.2                      None                None
15    AES256-SHA                   SSLv3,TLSv1,TLSv1.1,TLSv1.2  None                None
16    ECDHE-RSA-AES128-SHA256      TLSv1.2                      ECDH,P-256,256bits  prime256v1
17    ECDHE-RSA-DES-CBC3-SHA       SSLv3,TLSv1,TLSv1.1,TLSv1.2  ECDH,P-256,256bits  prime256v1
18    DES-CBC3-SHA                 SSLv3,TLSv1,TLSv1.1,TLSv1.2  None                None

证书: trusted, 2048 bit, sha1WithRSAEncryption signature
TLS ticket lifetime hint: 100800
OCSP stapling: not supported
密码顺序: server
```

测试 STARTTLS:
```
darwin$ $ ./cipherscan --curves -starttls xmpp jabber.ccc.de:5222
................................
目标: jabber.ccc.de:5222

prio  ciphersuite                  protocols              pfs                 curves
1     ECDHE-RSA-AES256-GCM-SHA384  TLSv1.2                ECDH,P-256,256bits  prime256v1
2     ECDHE-RSA-AES256-SHA384      TLSv1.2                ECDH,P-256,256bits  prime256v1
3     ECDHE-RSA-AES256-SHA         TLSv1,TLSv1.1,TLSv1.2  ECDH,P-256,256bits  prime256v1
4     DHE-RSA-AES256-GCM-SHA384    TLSv1.2                DH,1024bits         None
5     DHE-RSA-AES256-SHA256        TLSv1.2                DH,1024bits         None
6     DHE-RSA-AES256-SHA           TLSv1,TLSv1.1,TLSv1.2  DH,1024bits         None
7     DHE-RSA-CAMELLIA256-SHA      TLSv1,TLSv1.1,TLSv1.2  DH,1024bits         None
8     AES256-GCM-SHA384            TLSv1.2                None                None
9     AES256-SHA256                TLSv1.2                None                None
10    AES256-SHA                   TLSv1,TLSv1.1,TLSv1.2  None                None
11    CAMELLIA256-SHA              TLSv1,TLSv1.1,TLSv1.2  None                None
12    ECDHE-RSA-AES128-GCM-SHA256  TLSv1.2                ECDH,P-256,256bits  prime256v1
13    ECDHE-RSA-AES128-SHA256      TLSv1.2                ECDH,P-256,256bits  prime256v1
14    ECDHE-RSA-AES128-SHA         TLSv1,TLSv1.1,TLSv1.2  ECDH,P-256,256bits  prime256v1
15    DHE-RSA-AES128-GCM-SHA256    TLSv1.2                DH,1024bits         None
16    DHE-RSA-AES128-SHA256        TLSv1.2                DH,1024bits         None
17    DHE-RSA-AES128-SHA           TLSv1,TLSv1.1,TLSv1.2  DH,1024bits         None
18    DHE-RSA-SEED-SHA             TLSv1,TLSv1.1,TLSv1.2  DH,1024bits         None
19    DHE-RSA-CAMELLIA128-SHA      TLSv1,TLSv1.1,TLSv1.2  DH,1024bits         None
20    AES128-GCM-SHA256            TLSv1.2                None                None
21    AES128-SHA256                TLSv1.2                None                None
22    AES128-SHA                   TLSv1,TLSv1.1,TLSv1.2  None                None
23    SEED-SHA                     TLSv1,TLSv1.1,TLSv1.2  None                None
24    CAMELLIA128-SHA              TLSv1,TLSv1.1,TLSv1.2  None                None

证书: UNTRUSTED, 2048 bit, sha1WithRSAEncryption signature
TLS ticket lifetime hint: None
OCSP stapling: not supported
密码顺序: client
曲线顺序: server
曲线回退: False
```

使用 `-j` 命令行选项导出为 JSON:
```javascript
$ ./cipherscan --curves -j www.ebay.com | j
{
    "curves_fallback": "False",
    "serverside": "True",
    "target": "www.ebay.com:443",
    "utctimestamp": "2015-04-03T14:54:31.0Z",
    "ciphersuite": [
        {
            "cipher": "AES256-SHA",
            "ocsp_stapling": "False",
            "pfs": "None",
            "protocols": [
                "TLSv1",
                "TLSv1.1",
                "TLSv1.2"
            ],
            "pubkey": [
                "2048"
            ],
            "sigalg": [
                "sha1WithRSAEncryption"
            ],
            "ticket_hint": "None",
            "trusted": "True"
        },
        {
            "cipher": "ECDHE-RSA-DES-CBC3-SHA",
            "curves": [
                "prime256v1",
                "secp384r1",
                "secp224r1",
                "secp521r1"
            ],
            "curves_ordering": "server",
            "ocsp_stapling": "False",
            "pfs": "ECDH,P-256,256bits",
            "protocols": [
                "TLSv1",
                "TLSv1.1",
                "TLSv1.2"
            ],
            "pubkey": [
                "2048"
            ],
            "sigalg": [
                "sha1WithRSAEncryption"
            ],
            "ticket_hint": "None",
            "trusted": "True"
        }
    ]
}
```

分析配置
------------------------
开发 CipherScan 的初衷是帮助运维人员在其端点上配置良好的 TLS。为进一步支持这一点,脚本 `analyze.py` 将 CipherScan 的结果与 https://wiki.mozilla.org/Security/Server_Side_TLS 中的 TLS 指南进行比较,并输出一个等级和建议。

```bash
$ ./analyze.py -t jve.linuxwall.info
jve.linuxwall.info:443 has intermediate tls

需要更改以匹配旧等级:
* 考虑启用 SSLv3
* 添加密码 DES-CBC3-SHA
* 使用带有 sha1WithRSAEncryption 签名的证书
* 考虑启用 OCSP 装订

需要更改以匹配中级等级:
* 考虑启用 OCSP 装订

需要更改以匹配现代等级:
* 移除密码 AES128-GCM-SHA256
* 移除密码 AES256-GCM-SHA384
* 移除密码 AES128-SHA256
* 移除密码 AES128-SHA
* 移除密码 AES256-SHA256
* 移除密码 AES256-SHA
* 禁用 TLSv1
* 考虑启用 OCSP 装订
```

在上面的输出中,`analyze.py` 表明目标 `jve.linuxwall.info` 符合中级配置。如果该站点的管理员希望达到现代等级,则应纠正现代测试中失败的项目。

`analyze.py` 不对什么是好的等级做任何假设。站点运维人员应根据他们想要支持的兼容性级别,知道他们想要匹配的等级。再次,请参考 https://wiki.mozilla.org/Security/Server_Side_TLS 了解更多信息。

关于 Nagios 模式的说明:
`analyse.py` 可以使用 `--nagios` 作为 nagios 检查运行。退出代码将代表配置的状态:
* 2(严重)表示 TLS 配置差
* 1(警告)表示不匹配所需等级
* 0(正常)表示匹配。
cipherscan 可能需要超过 10 秒才能完成。为了缓解任何超时问题,您可能希望在 nagios 之外运行它,通过一些临时文件传递数据。

OpenSSL
-------

CipherScan 使用针对 Linux 64 位和 Darwin 64 位的自定义 openssl 发行版。OpenSSL 是从 Peter Mosmans 维护的自定义分支构建的,该分支包含许多未合并到上游的补丁。可以在此处找到:
https://github.com/PeterMosmans/openssl

您可以使用以下命令自行构建:
```
git clone https://github.com/PeterMosmans/openssl.git --depth 1 -b 1.0.2-chacha
cd openssl
./Configure zlib no-shared experimental-jpake enable-md2 enable-rc5 \
enable-rfc3779 enable-gost enable-static-engine linux-x86_64
make depend
make
make report
```

静态链接的二进制文件将是 `apps/openssl`。

贡献者
------------

* Julien Vehent <[email protected]> (原始作者)
* Hubert Kario <[email protected]> (共同维护者)
* Pepi Zawodsky <[email protected]>
* Michael Zeltner <[email protected]>
* Peter Mosmans <[email protected]>
* Vincent Riquer <[email protected]>
* Christian Stadelmann
* Simon Deziel <[email protected]>
* Aaron Zauner <[email protected]>
* Mike <[email protected]>
* Phil Cohen <[email protected]>
* Samuel Kleiner <[email protected]>
* Richard Soderberg <https://twitter.com/floatingatoll>
* Adam Crosby <[email protected]>
下载工具