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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2022-20866 — Проверка RSA-ключей для CVE-2022-20866 | Kitploit
Инструменты/GitHubGitHub/ciscopsirt/cve-2022-20866
Инструменты шифрования/дешифрованияАнализ уязвимостейСетевая безопасностьКриптографияАппаратная Безопасность
GitHubciscopsirt/cve-2022-20866

CVE-2022-20866

Проверка RSA-ключей для CVE-2022-20866

Репозиторий
724 лет назадЕщё не проверено

Популярное

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

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

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

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

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

Проверка RSA-ключей для CVE-2022-20866

Уязвимость в обработке RSA-ключей на устройствах под управлением ПО Cisco Adaptive Security Appliance и Firepower Threat Defense может позволить неаутентифицированному удалённому злоумышленнику получить закрытый ключ RSA. Эта уязвимость вызвана логической ошибкой при хранении RSA-ключа в памяти на аппаратной платформе, выполняющей аппаратную криптографию. Злоумышленник может использовать её с помощью Lenstra-атаки по стороннему каналу на целевое устройство. Успешная эксплуатация может позволить злоумышленнику получить закрытый ключ RSA.

На уязвимом устройстве могут наблюдаться следующие условия:

  • RSA-ключ может быть повреждён и недействителен. Повреждённый RSA-ключ не работает, и TLS-соединение клиента с устройством Cisco ASA или FTD, использующим такой ключ, приведёт к сбою подписи TLS, что означает, что уязвимая версия ПО создаёт недействительную подпись RSA, которая не проходит проверку. Если злоумышленник получит закрытый ключ RSA, такой ключ может быть использован для имитации устройства Cisco ASA или FTD.
  • RSA-ключ может быть действительным, но иметь определённые характеристики, делающие его уязвимым для потенциальной утечки закрытого ключа RSA. Если злоумышленник получит закрытый ключ RSA, такой ключ может быть использован для имитации устройства Cisco ASA или FTD. Дополнительную информацию о выявлении таких RSA-ключей см. в разделе «Индикаторы компрометации» бюллетеня безопасности.

Этот инструмент позволяет проверить закрытый ключ RSA на устройствах Cisco ASA или FTD.

Бюллетень безопасности Cisco доступен по следующей ссылке: https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-asaftd-rsa-key-leak-Ms7UEfZz

Как использовать инструмент проверки RSA-ключей

Назначение инструмента key_check.py — анализ ключей, экспортированных из ASA или FTD, на предмет подверженности «Уязвимости утечки закрытого ключа RSA в Cisco (CVE-2022-20866)».

Системные требования

Инструмент key_check.py является инструментом, поддерживаемым сообществом, и работает в среде командной строки Linux со следующими зависимостями:

  • Python 3
  • Инструмент командной строки OpenSSL

Поддерживаемые платформы

Этот инструмент разработан как платформонезависимый и протестирован на следующих конфигурациях платформ:

  • MacOS Monterey 12.4, LibreSSL 2.8.3
  • MacOS Catalina 10.15.7, LibreSSL 2.8.3
  • Red Hat Enterprise Linux 7.6 (Maipo), OpenSSL 1.0.2k-fips
  • Red Hat Enterprise Linux 9, OpenSSL 3.0.1
  • Red Hat Enterprise Linux 8, OpenSSL 1.1.1k
  • Ubuntu 16.04, OpenSSL 1.0.2g
  • Ubuntu 18.04, OpenSSL 1.1.1
  • Ubuntu 20.04 LTS, OpenSSL 1.1.1f
  • Ubuntu 22.04 LTS, OpenSSL 3.0.2

Интерфейс командной строки инструмента

Синтаксис:

root@kitploit:~
    key_check.py [-h] --pkcs12 PKCS12 [--passwd PASSWD]

Параметры:

root@kitploit:~
    -h 
        отобразить справочную информацию
    --pkcs12 
        Имя файла, содержащего ключ для анализа в формате base64,
        закодированном в PKCS12. Этот файл экспортируется из устройства ASA
        или FTD с помощью процедуры, описанной ниже.
    --passwd 
        Пароль, необходимый для расшифровки PKCS12. Это то же значение,
        которое было введено в командной строке ASA или FTD при экспорте ключа.
        Если этот параметр не указан, инструмент запросит пароль.

Экспорт ключа на ASA

В этом разделе описывается, как экспортировать один ключ с устройства ASA. Эту процедуру необходимо будет выполнить для каждого ключа, который требуется проанализировать. Существует 2 сценария:

  1. Пара ключей используется в сертификате доверенной точки ASA.

Точки доверия позволяют управлять центрами сертификации (CA) и сертификатами. Точка доверия — это представление центра сертификации или пары идентификаторов. Точка доверия включает идентификатор центра сертификации, параметры конфигурации, специфичные для центра сертификации, и ассоциацию с одним зарегистрированным сертификатом идентификации. Если пара ключей используется в сертификате, настроенном на ASA, то пару ключей можно экспортировать, введя:

root@kitploit:~
# asa(config)# crypto ca export <tpname> pkcs12 test

где — имя точки доверия.

  1. Пара ключей не используется в сертификате доверенной точки ASA

Если ключ отсутствует в сертификате, настроенном на ASA, необходимо создать временную точку доверия и зарегистрировать её с самозаверяющим сертификатом.

Предположим, keyname — имя экспортируемой пары ключей. Предположим, temptp — имя для временной точки доверия.

root@kitploit:~
# asa(config)# crypto ca trustpoint temptp
# asa(config-ca-trustpoint)# keypair keyname
# asa(config-ca-trustpoint)# subject-name cn=temp
# asa(config-ca-trustpoint)# no serial-number
# asa(config-ca-trustpoint)# enroll self
# asa(config-ca-trustpoint)# crypto ca enroll temp noconfirm

Теперь сгенерируйте PKCS12:

root@kitploit:~
# asa(config)# crypto ca export xtp pkcs12 test 

Обе описанные выше процедуры (1, 2) выведут на консоль кодированный в base64 p12 с паролем "test". Поместите все строки вывода в текстовый файл. Этот файл будет использоваться в качестве входных данных для инструмента.

Экспорт ключа на FTD

На устройствах FTD процедура требует использования FMC следующим образом. Обратите внимание, что ключи не являются независимо управляемыми на FTD, поэтому все ключи должны иметь связанный сертификат.

  • Перейдите в раздел Devices / Certificates.
  • Нажмите значок экспорта для нужного сертификата под нужным устройством.
  • Выберите радиокнопку PKCS12.
  • Введите парольную фразу в оба поля и нажмите OK.
  • Загрузите файл PKCS12.

Входные данные инструмента

Ниже приведено визуальное подтверждение того, как должно выглядеть содержимое экспортированного файла PKCS12:

root@kitploit:~
-----BEGIN PKCS12-----
MIIJvwIBAzCCCXUGCSqGSIb3DQEHAaCCCWYEggliMIIJXjCCA78GCSqGSIb3DQEH
BqCCA7AwggOsAgEAMIIDpQYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQMwDgQIwsRZ

             <lines omitted>

geRPZxLUjt8nsc0bbrmEkXJ/27EbUm43UkioncY7JJwwQTAxMA0GCWCGSAFlAwQC
AQUABCAMZ7IR6nXHNbZ5zdtVAQX90VZyu2pvnJpiYgWWEf+WngQI9H/zlSTGKeAC
AggA
-----END PKCS12-----

Запуск скрипта

Использование инструмента показано в следующих примерах, демонстрирующих все возможные результаты.

  1. Нормальный действительный ключ
root@kitploit:~
linux>  ./key_check.py --passwd test --pkcs12 valid_normal.p12.b64

The RSA key is valid.
  1. Действительный ключ с характеристиками уязвимости
root@kitploit:~
linux> ./key_check.py --passwd test --pkcs12 valid_short.p12.b64

The RSA key is valid but is vulnerable to exposure if used in product versions that are affected by the Cisco Private Key Leak Vulnerability (CVE-2022-20866). If this was done, this key should no longer be used.

  1. Недействительный ключ без характеристик уязвимости
root@kitploit:~
linux> ./key_check.py --passwd test --pkcs12 inval_not_vulnerable.p12.b64

The RSA key is invalid due to the Cisco RSA Private Key Leak Vulnerability (CVE-2022-20866) but does not have known exposure characteristics. It is recommended that this key be replaced.

  1. Недействительный уязвимый ключ
root@kitploit:~
linux> ./key_check.py --passwd test --pkcs12 inval_vulnerable.p12.b64

The RSA key is invalid and vulnerable to exposure due to the Cisco RSA Private Key Leak Vulnerability (CVE-2022-20866). This key should no longer be used.

  1. Неверный пароль
root@kitploit:~
linux> ./key_check.py --passwd test2 --pkcs12 valid_normal.p12.b64

ERROR:  Mac verify error: invalid password?
  1. Неверный входной файл
root@kitploit:~
linux> ./key_check.py --passwd test --pkcs12 bad_file.txt

ERROR:  139710534743952:error:0D07207B:asn1 encoding routines:ASN1_get_object:header too long:asn1_lib.c:157:
  1. Действительный, но не RSA-ключ
root@kitploit:~
linux> ./key_check.py --passwd test --pkcs12 ecdsa.p12.b64

ERROR:  140300676220816:error:0607907F:digital envelope routines:EVP_PKEY_get1_RSA:expecting an rsa key:p_lib.c:287:
Скачать инструмент