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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-94300 — CVE-2026-94300(BIND 9.20.29의 GSS-TSIG use-after-free)에 대한 자체 포함형 PoC 및 분석으로, 디버거 보조를 통한 정보 유출에서 코드 실행으로 이어지는 체인 모델을 포함합니다. | Kitploit
도구/GitHubGitHub/ibonok/cve-2026-94300
Memory ForensicsVulnerability AnalysisExploitationDebuggersPapers & ResearchDNS AnalysisBinary Exploitation
GitHubibonok/cve-2026-94300

CVE-2026-94300

CVE-2026-94300(BIND 9.20.29의 GSS-TSIG use-after-free)에 대한 자체 포함형 PoC 및 분석으로, 디버거 보조를 통한 정보 유출에서 코드 실행으로 이어지는 체인 모델을 포함합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-94300 — PoC: 유출(docker logs) → 모델-RCE

참고: 이 분석과 PoC는 상당 부분 AI 지원("AI patchwork")으로 작성되었습니다. 모든 코드, diff, 측정 주장은 의존하기 전에 인용된 출처와 대조하여 검증해야 합니다.

CVE-2026-94300(GSS-TSIG가 적용된 BIND 9.20.29, krb5 1.20.1, jemalloc 5.3.0)의 익스플로잇 체인을 위한 자체 포함 PoC 폴더입니다.

여기서 입증된 것: 유출된 주소 집합(여기서는 gdb에서 얻음)만으로 측정된 프리미티브로부터 named 프로세스 내 코드 실행을 구축하기에 충분합니다. 이 익스플로잇은 docker logs에서 유출 정보를 소비하며, 주소 리터럴을 포함하지 않습니다.

여기서 명시적으로 모델인 것(그리고 보고서에 그렇게 명시된 것):

가정이유
gdb에서의 유출이 CVE에는 정보 유출 프리미티브가 없으며, 실제 유출은 다른 버그에서 비롯되어야 함
ASLR 비활성화(setarch -R)유출이 없으면 힙/코드 주소가 없음
gdb를 통해 주입된 객체 내용 제어해제된 8바이트 슬롯의 재점유는 여기서 검토한 수단으로는 실제 경로에서 성공하지 못함(470만 회 시도, 0회 적중) — 문서화된 장애물이며, 불가능성 증명은 아님

원격 RCE가 입증된 것도 아니고 지속성도 없습니다. 명령은 익스플로잇의 --cmd를 통해 주어집니다: host/exploit.py가 Docker 제어 채널(docker exec, 운영자가 이미 가진 것과 동일한 권한)을 통해 컨테이너로 전달하며, 익스플로잇 자체는 유출된 주소와 캡처된 패킷만 전송합니다. 페이로드는 추가로 RCE-PROOF 줄을 기록하고(검증용) named를 종료합니다.

아키텍처

sequenceDiagram
    participant R as Researcher (host)
    participant V as Container: named 9.20.29 + gdb
    participant L as docker logs
    R->>V: docker run -p 127.0.0.1:15353:53/udp
    V->>V: TKEY capture (no send), gdb breaks on dns_db_currentversion
    V->>L: LEAK: db=…, methods=…, heap=…, wire_b64=… (sha256)
    V->>V: model armed, waits for host replay
    R->>L: read docker logs + validate (11 checks)
    R->>V: docker exec: --cmd to /tmp/rce-payload-cmd
    R->>V: UDP replay of the leaked signed packet to 15353
    V->>V: krb5_k_free_key → free(db) → reclaim → fake dns_db_t
    V->>V: dns_db_currentversion → jmp *methods+0x30 → payload
    R->>V: docker exec cat /tmp/rce-proof

파일

경로용도
docker/Dockerfile피해자 이미지: ISC tarball의 BIND 9.20.29 + gdb + KDC + 랩 드라이버
etc/krb5.conf, kdc.conf, named.conf, zone (이미지에 의해 /etc로 복사됨)
host/exploit.py호스트 익스플로잇: docker logs를 읽고, 검증하고, UDP로 재전송하고, 마커를 확인
lab/rce_victim.sh컨테이너 내 드라이버: gdb 하의 named, 전송 없이 캡처, 유출, 대기
lab/rce_model.pygdb 모델: 브레이크포인트, 유출 블록, 무장(arming), 디스패치 관찰
lab/rce_leak.py유출 단계: 주소 + wire_b64 → stdout/파일
lab/rce_exploit.py컨테이너 내 익스플로잇 단계: 유출로부터 가짜 객체를 구성하고, 재점유(reclaim), 디스패치
lab/rce_shim.c고정 페이지 shim: 가짜 테이블, 가짜 dns_db_t 템플릿, 페이로드
lab/replay-lab.pyTKEY 캡처 (--no-send)
lab/gss_context_lab.py캡처를 위한 GSS 컨텍스트 헬퍼
lab/start.sh, lab/named.replay.confKDC/keytab/zone 부트스트랩, named 구성
RACE.md공유 GSS-TSIG 컨텍스트에 대한 레이스 설명: 공유, 접근, 트리거, 측정, 범위 설정
VERIFY.md소스 diff 9.20.29 → 9.20.30에 대한 세 가지 주장 검증 (GSS-TSIG 잠금, 파괴적 keyring 덤프, RCE 범위 설정)
EXPLOIT.md코드 증거와 Mermaid를 포함한 익스플로잇 설명
USAGE.md빌드, 실행, 예상 출력, 문제 해결
ANAYLSE.md공개 준비된 공개 추가 문서 (영향 조정 DoS 대 잠재적 RCE, 영향받는 버전, 완화, 탐지) — 익스플로잇 프리미티브 없음
ANALYZE.md공개 추가 문서의 영어 버전

(이 파일은 README.md이며, 다른 PoC 문서들도 RACE.md, VERIFY.md, EXPLOIT.md, USAGE.md로 존재합니다.)

사전 요구 사항

빌드 시점에 Docker + 인터넷만 필요합니다. 이미지는 공식 ISC tarball (https://downloads.isc.org/isc/bind9/9.20.29/bind-9.20.29.tar.xz, SHA-256 고정)로부터 BIND 9.20.29 자체를 --with-gssapi=yes로 빌드하고, gdb, MIT Kerberos KDC 및 랩 드라이버를 설치합니다. 배포판 BIND도, 미리 빌드된 베이스 이미지도 필요하지 않습니다.

이미지에는 일회용 KDC 아이덴티티 [email protected] (비밀번호 attacker, realm EXAMPLE.TEST, KDC는 컨테이너 내부의 127.0.0.1:88에서만)가 포함되어 있습니다 — 오직 이 랩 전용이며, 다른 서버에 대한 GSS-TSIG 테스트용이 아닙니다. keytab을 컨테이너 밖으로 꺼내지 마십시오.

빠른 시작

cd poc/CVE-2026-94300-poc
docker build -f docker/Dockerfile -t cve-2026-94300-victim .

# Terminal 1: container
docker run --rm --name cve-2026-94300-victim \
    -p 127.0.0.1:15353:53/udp \
    --security-opt seccomp=unconfined \
    cve-2026-94300-victim            # prints the LEAK block to stdout

# Terminal 2: exploit from the host, target + command as arguments
python3 host/exploit.py --ip 127.0.0.1 --port 15353 --cmd 'id > /tmp/bla'
docker exec cve-2026-94300-victim cat /tmp/bla      # uid=0(root) …

예상 (발췌):

LEAK: db=0x7ffff6901c00
LEAK: db_methods=0x7ffff7c497c0
LEAK: payload=0x7ffff7fbe37b
LEAK: wire_len=3907
HOST-EXPLOIT-VALIDATE OK checks=11
HOST-EXPLOIT-REPLAY target=127.0.0.1:15353 bytes=3907
RCE-DISPATCH-INDIRECT target=0x7ffff7fbe37b (rce_payload) match=YES
RCE-PAYLOAD-EXECUTED RCE-PROOF pid=… uid=0 euid=0 db=0x7ffff6901c00
HOST-EXPLOIT-VERDICT payload_executed=YES marker=YES

분류

권고 문구: ISC는 CVE-2026-94300을 원격, High, CVSS 8.1(AC:H)로 평가하며 잠재적 코드 실행 가능성이 있다고 본다. 공개적으로/재현 가능하게 입증된 것은 공유 GSS-TSIG 컨텍스트에서의 자격 증명 없는, 재생 트리거 메모리 손상(use-after-free/double-free)으로, DoS에서 힙 손상에 이르는 부류이다. 코드 실행으로 이어지는 경로는 지금까지 디버거 보조 모델 가정(ASLR 비활성화, 주소/객체 내용 주입) 하에서만 제시되었으며, 입증된 원격 RCE는 존재하지 않는다.

입증된 것: 대상 프로세스에서 누출이 주어지면 RCE가 뒤따른다. 입증되지 않은 것: 누출도 없고 gdb도 없는 원격 공격 — 이를 위해서는 정보 누출 프리미티브와 달성된 재할당 단계가 빠져 있다. 이는 문서화된 장애물 집합이며, 불가능성 증명이 아니다. ISC는 코드 실행 부류를 잠재적 위험으로 다룬다. 코드 기반(동기화 버그, 파괴적 덤프, 패치가 고치는 것과 고치지 않는 것)은 두 트리의 diff에 대해 VERIFY.md에서 검증되었고, 레이스가 기술적으로 어떻게 작동하는지는 RACE.md에 있다. 익스플로잇 세부 사항과 코드 증거: EXPLOIT.md, 실행 및 옵션: USAGE.md. 공개 준비 완료된 공개: ANALYZE.md.

도구 다운로드