Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/ciscopsirt/cve-2022-20866
加密/解密工具漏洞分析网络安全密码学硬件安全
GitHubciscopsirt/cve-2022-20866

CVE-2022-20866

用于 CVE-2022-20866 的 RSA 密钥检查器

查看仓库
7244年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

RSA密钥检查工具(用于CVE-2022-20866)

运行Cisco自适应安全设备(ASA)软件和Firepower威胁防御(FTD)软件的设备在处理RSA密钥时存在漏洞,此漏洞可能允许未经身份验证的远程攻击者检索RSA私钥。该漏洞是由于在硬件加密平台上将RSA密钥存储于内存时出现逻辑错误所致。攻击者可通过针对目标设备实施Lenstra侧信道攻击来利用此漏洞。成功利用后,攻击者可获取RSA私钥。

受漏洞影响的设备可能出现以下情况:

  • RSA密钥可能格式错误且无效。格式错误的RSA密钥无法正常工作,若TLS客户端连接到使用此类错误RSA密钥的Cisco ASA或FTD设备,将导致TLS签名失败,即易受攻击的软件版本生成了无效的RSA签名,从而验证失败。若攻击者获取了该RSA私钥,则可用于冒充Cisco ASA或FTD设备。
  • RSA密钥可能有效,但具有特定特征,使其容易导致RSA私钥潜在泄露。若攻击者获取了该RSA私钥,则可用于冒充Cisco ASA或FTD设备。有关此类RSA密钥检测的更多信息,请参阅安全公告中的入侵指标部分。

该工具允许您检查Cisco ASA或FTD设备中的私RSA密钥。

Cisco安全公告可通过以下链接获取: https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-asaftd-rsa-key-leak-Ms7UEfZz

如何使用RSA密钥检查工具

key_check.py工具的目的是分析从ASA或FTD导出的密钥,检查其是否容易受到"Cisco RSA私钥泄露漏洞(CVE-2022-20866)"的影响。

系统要求

key_check.py是一个社区支持的工具,运行于Linux shell环境,并具有以下依赖项:

  • 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 CLI上导出密钥时输入的密码相同。
        若未指定此选项,工具将提示输入密码。

在ASA上导出密钥

本节描述如何从ASA设备导出一个密钥。每个待分析的密钥都需要执行此流程。有两种情况:

  1. 该密钥对用于ASA信任点证书

信任点允许您管理和跟踪证书颁发机构(CA)和证书。信任点是CA或身份对的表示。信任点包含CA的身份、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无法独立管理密钥,因此所有密钥都应有关联的证书。

  • 转到设备/证书
  • 在所需设备下,点击所需证书的导出图标。
  • 选择PKCS12单选按钮。
  • 在两个框中输入密码短语,然后按"确定"。
  • 下载PKCS12文件。

工具输入

以下内容用于可视化验证导出的PKCS12文件的内容,其格式应如下所示:

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

             <省略行>

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:
下载工具