Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
cipherscan — Очень простой способ узнать, какие наборы SSL-шифров поддерживаются целевым сервером. | Kitploit
Инструменты/GitHubGitHub/mozilla/cipherscan
Сканеры уязвимостейАудит конфигурацииСетевая безопасностьКриптография
GitHubmozilla/cipherscan

cipherscan

Очень простой способ узнать, какие наборы SSL-шифров поддерживаются целевым сервером.

Репозиторий
2.0k2651 год назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CipherScan

Build Status

cipherscan

Cipherscan проверяет порядок шифров SSL/TLS на заданной цели для всех основных версий SSL и TLS. Он также извлекает некоторую информацию о сертификатах, параметрах TLS, OCSP stapling и многое другое. Cipherscan является обёрткой над командной строкой openssl s_client.

Cipherscan предназначен для работы во всех разновидностях Unix. Он поставляется со своей собственной сборкой OpenSSL для Linux/64 и Darwin/64. На других платформах будет использоваться версия openssl, предоставленная операционной системой (которая может иметь ограниченную поддержку шифров), или ваша собственная версия, указанная через флаг командной строки -o.

Примеры

Базовый тест:

root@kitploit:~
$ ./cipherscan google.com
...................
Target: 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

Certificate: trusted, 2048 bit, sha1WithRSAEncryption signature
TLS ticket lifetime hint: 100800
OCSP stapling: not supported
Cipher ordering: server

Тестирование STARTTLS:

root@kitploit:~
darwin$ $ ./cipherscan --curves -starttls xmpp jabber.ccc.de:5222
................................
Target: 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

Certificate: UNTRUSTED, 2048 bit, sha1WithRSAEncryption signature
TLS ticket lifetime hint: None
OCSP stapling: not supported
Cipher ordering: client
Curves ordering: server
Curves fallback: False

Экспорт в JSON с помощью опции командной строки -j:

root@kitploit:~
$ ./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 с рекомендациями TLS из https://wiki.mozilla.org/Security/Server_Side_TLS и выводит уровень и рекомендации.

root@kitploit:~
$ ./analyze.py -t jve.linuxwall.info
jve.linuxwall.info:443 has intermediate tls

Changes needed to match the old level:
* consider enabling SSLv3
* add cipher DES-CBC3-SHA
* use a certificate with sha1WithRSAEncryption signature
* consider enabling OCSP Stapling

Changes needed to match the intermediate level:
* consider enabling OCSP Stapling

Changes needed to match the modern level:
* remove cipher AES128-GCM-SHA256
* remove cipher AES256-GCM-SHA384
* remove cipher AES128-SHA256
* remove cipher AES128-SHA
* remove cipher AES256-SHA256
* remove cipher AES256-SHA
* disable TLSv1
* consider enabling OCSP Stapling

В приведённом выше выводе analyze.py показывает, что цель jve.linuxwall.info соответствует промежуточному уровню конфигурации. Если администратор этого сайта хочет достичь современного уровня, необходимо исправить пункты, не пройденные в рамках современных тестов.

analyze.py не делает никаких предположений о том, какой уровень является хорошим. Операторы сайтов должны сами определить, какой уровень они хотят достичь, исходя из уровня совместимости, который они планируют поддерживать. Опять же, обратитесь к https://wiki.mozilla.org/Security/Server_Side_TLS для получения дополнительной информации.

Примечание о режиме Nagios: analyse.py может быть запущен как проверка nagios с помощью --nagios. Код возврата будет отражать состояние конфигурации:

  • 2 (critical) для плохого TLS
  • 1 (warning) если не соответствует желаемому уровню
  • 0 (ok) если соответствует. cipherscan может выполняться более 10 секунд. Чтобы избежать проблем с тайм-аутом, вы можете запускать его вне nagios, передавая данные через временный файл.

OpenSSL

Cipherscan использует пользовательскую сборку openssl для Linux 64 бит и Darwin 64 бит. OpenSSL собирается из пользовательской ветки, поддерживаемой Peter Mosmans, которая включает ряд патчей, не объединённых в основной репозиторий. Его можно найти здесь: https://github.com/PeterMosmans/openssl

Вы можете собрать его самостоятельно с помощью следующих команд:

root@kitploit:~
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]
Скачать инструмент