Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2022-20866 — CVE-2022-20866용 RSA 키 검사기 | Kitploit
도구/GitHubGitHub/ciscopsirt/cve-2022-20866
Encryption/Decryption ToolsVulnerability AnalysisNetwork SecurityCryptographyHardware Security
GitHubciscopsirt/cve-2022-20866

CVE-2022-20866

CVE-2022-20866용 RSA 키 검사기

저장소 보기
724년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2022-20866용 RSA 키 검사기

Cisco Adaptive Security Appliance Software 및 Firepower Threat Defense Software를 실행하는 장치에서 RSA 키 처리의 취약점으로 인해 인증되지 않은 원격 공격자가 RSA 개인 키를 검색할 수 있습니다. 이 취약점은 하드웨어 기반 암호화를 수행하는 하드웨어 플랫폼의 메모리에 RSA 키가 저장될 때 로직 오류로 인해 발생합니다. 공격자는 대상 장치에 대해 Lenstra 부채널 공격을 사용하여 이 취약점을 악용할 수 있습니다. 악용에 성공하면 공격자가 RSA 개인 키를 검색할 수 있습니다.

취약한 장치에서 다음과 같은 조건이 관찰될 수 있습니다.

  • RSA 키가 잘못된 형식으로 생성되어 유효하지 않을 수 있습니다. 잘못된 형식의 RSA 키는 기능하지 않으며, 잘못된 RSA 키를 사용하는 Cisco ASA 또는 FTD 장치에 대한 TLS 클라이언트 연결은 TLS 서명 실패를 초래합니다. 즉, 취약한 소프트웨어 릴리스가 잘못된 RSA 서명을 생성하여 검증에 실패합니다. 공격자가 RSA 개인 키를 획득하면 해당 키를 사용하여 Cisco ASA 또는 FTD 장치를 가장할 수 있습니다.
  • RSA 키가 유효하지만 RSA 개인 키의 잠재적 유출에 취약하게 만드는 특정 특성을 가질 수 있습니다. 공격자가 RSA 개인 키를 획득하면 해당 키를 사용하여 Cisco ASA 또는 FTD 장치를 가장할 수 있습니다. 이러한 유형의 RSA 키 탐지에 대한 자세한 내용은 보안 권고의 손상 지표(Indicators of Compromise) 섹션을 참조하십시오.

이 도구를 사용하면 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 셸 환경에서 실행되며 다음과 같은 종속성이 있습니다:

  • 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 또는 ID 쌍을 나타냅니다. 트러스트포인트에는 CA ID, CA별 구성 매개변수 및 등록된 하나의 ID 인증서와의 연결이 포함됩니다. 키 쌍이 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)는 비밀번호 "test"를 사용하여 base64로 인코딩된 p12를 콘솔에 출력합니다. 모든 출력 줄을 텍스트 파일에 저장합니다. 이 파일이 도구의 입력으로 사용됩니다.

FTD에서 키 내보내기

FTD 장치에서는 절차를 위해 FMC를 다음과 같이 사용해야 합니다. FTD에서는 키를 독립적으로 관리할 수 없으므로 모든 키에는 연결된 인증서가 있어야 합니다.

  • 장치 / 인증서로 이동합니다.
  • 원하는 장치 아래에서 원하는 인증서에 대한 내보내기 아이콘을 클릭합니다.
  • PKCS12 라디오 버튼을 선택합니다.
  • 두 상자에 암호를 입력하고 확인을 누릅니다.
  • 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

RSA 키는 유효하지만 Cisco 개인 키 유출 취약점(CVE-2022-20866)의 영향을 받는 제품 버전에서 사용될 경우 노출에 취약합니다. 이 키가 해당 방식으로 사용된 경우 더 이상 이 키를 사용해서는 안 됩니다.

  1. 취약점 특성이 없는 무효 키
root@kitploit:~
linux> ./key_check.py --passwd test --pkcs12 inval_not_vulnerable.p12.b64

RSA 키는 Cisco RSA 개인 키 유출 취약점(CVE-2022-20866)으로 인해 유효하지 않지만 알려진 노출 특성은 없습니다. 이 키를 교체하는 것이 좋습니다.

  1. 무효 취약 키
root@kitploit:~
linux> ./key_check.py --passwd test --pkcs12 inval_vulnerable.p12.b64

RSA 키가 유효하지 않으며 Cisco RSA 개인 키 유출 취약점(CVE-2022-20866)으로 인해 노출에 취약합니다. 이 키는 더 이상 사용해서는 안 됩니다.

  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:
도구 다운로드