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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
PNGboomer-CVE-2026-77622 — Sliver HTTP(S) C2 PNG 폭탄 DoS 익스플로잇 — GHSA-663m-7x7m-g4fw (CVE-2026-77622) | Kitploit
도구/GitHubGitHub/squ1shification/pngboomer-cve-2026-77622
Vulnerability AnalysisExploitationPenetration TestingCommand and ControlRed Teaming
GitHubsqu1shification/pngboomer-cve-2026-77622

PNGboomer-CVE-2026-77622

Sliver HTTP(S) C2 PNG 폭탄 DoS 익스플로잇 — GHSA-663m-7x7m-g4fw (CVE-2026-77622)

저장소 보기

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
1181개월 전아직 검토되지 않음
공유

PNGboomer — CVE-2026-77622

Sliver C2의 HTTP(S) 리스너에 대한 서비스 거부(DoS) 익스플로잇입니다. 세션별 PNG 인코딩 nonce를 무차별 대입(brute-force)하여 서버 메모리를 고갈시키는 압축 해제 폭탄(decompression bomb)을 전달합니다.

GHSA-663m-7x7m-g4fw로 공개되었습니다.

요약

Sliver의 HTTP(S) C2 채널은 메시지를 PNG 이미지 내부에 래핑합니다. 각 세션에는 [1, 65537) 범위의 무작위 nonce가 할당되며, 서버는 ?n= 쿼리 매개변수가 세션의 nonce와 일치하는 요청의 PNG 데이터만 디코딩합니다. 이는 인증 검사가 아닌 라우팅 메커니즘입니다 — 키 공간(keyspace)은 16비트입니다.

서버는 Go의 image.Decode()로 PNG를 디코딩하며, 이는 메모리에 width × height × bytes_per_pixel을 할당합니다. 선언된 크기가 32767×32767 RGBA인 PNG 파일은 전송 시 약 3KB로 압축되지만 메모리에서는 4GB 이상으로 압축 해제됩니다. 서버는 디코딩된 크기에 제한을 두지 않습니다.

익스플로잇은 세 단계로 작동합니다:

  1. 보정(Calibrate) — 일치하지 않는 nonce와 적당히 큰 프로브 PNG를 보내 기준 응답 시간을 측정합니다.
  2. 스캔(Scan) — 전체 nonce 범위에 걸쳐 프로브 PNG를 전송합니다. 일치하는 nonce는 PNG 디코딩을 트리거하며, 이는 거부된 요청보다 측정 가능할 정도로 오래 걸립니다. 후보는 여러 번의 재프로브로 검증됩니다.
  3. 종료(Kill) — 발견된 nonce로 압축 해제 폭탄 PNG를 전송합니다. 서버는 수 기가바이트를 할당하고 OOM 킬러에 의해 종료되거나 호스트를 스왑(swap) 상태로 몰아넣어 응답 불능 상태가 됩니다.

영향을 받는 버전

GHSA-663m-7x7m-g4fw에 언급된 수정 이전의 Sliver C2 버전. HTTP 또는 HTTPS 리스너를 실행하는 모든 Sliver 서버가 노출됩니다.

빌드

go build -o pngboomer

외부 종속성 없음. 표준 라이브러리만 사용합니다.

사용법

./pngboomer -url http://target:8080/ [options]

옵션

플래그기본값설명
-urlhttp://127.0.0.1:8080/Sliver HTTP C2 기본 URL
-workers8스캔 동시성
-probe-w2000프로브 PNG 너비
-probe-h2000프로브 PNG 높이
-probe-color2프로브 색상 유형 (2=RGB, 6=RGBA)
-kill-w32767종료 PNG 너비
-kill-h32767종료 PNG 높이
-kill-color6종료 색상 유형 (2=RGB, 6=RGBA)
-threshold-ms50nonce 감지를 위한 최소 응답 시간 기준
-outlier-mult15.0적응형 임계값 = 기준 p99 × 이 값
-calibrate16보정 샘플 수
-verify3후보 nonce당 재프로브 횟수
-max-nonce65537nonce 범위 상한 (Sliver 모듈러스)
-probe-timeout5s프로브당 HTTP 타임아웃
-kill-timeout180s종료 요청 HTTP 타임아웃
-target-cap-mb10240선언된 대상 메모리 상한 (안전 검사)
-nonce0스캔 건너뛰고 이 nonce를 직접 사용
-scan-onlyfalsenonce를 찾아 출력만 하고 종료 요청은 보내지 않음
-no-confirmfalse종료 후 대상 사망 여부 TCP 폴링 건너뜀
-no-colorfalseANSI 색상 출력 비활성화
-silentfalse발견된 nonce만 stdout에 출력

예시

로컬 Docker 대상에 대한 기본 스캔 및 종료:

./pngboomer -url http://127.0.0.1:8080/ -target-cap-mb 10240

스캔만 수행 (종료 없이 nonce 찾기):

./pngboomer -url https://c2.target.com/ -scan-only

nonce를 이미 알고 있을 때 스캔 건너뛰기:

./pngboomer -url http://target:8080/ -nonce 41337

안전

종료 폭탄은 대상에서 수 기가바이트의 PNG 디코딩을 유발합니다. 테스트 시 Sliver 서버를 --memory=<N>g로 Docker 컨테이너 안에서 실행하고 -target-cap-mb N을 전달하여 도구가 대상 메모리를 초과하는 위험한 작업자/프로브 조합을 거부하도록 하십시오.

Nonce 스캔 작동 방식

프로브 PNG는 잘못된 nonce에 대한 서버의 빠른 경로 거부보다 디코딩에 측정 가능할 정도로 오래 걸릴 만큼 큽니다. 스캔은 nonce 범위를 섞은 다음 작업자 고루틴(goroutine)에 분산합니다. 각 작업자는 후보 nonce로 프로브 PNG를 전송하고 응답 시간을 측정합니다.

응답이 적응형 임계값(-threshold-ms와 baseline_p99 × outlier-mult 중 더 높은 값)을 초과하면 후보를 -verify 횟수만큼 재프로브합니다. 재프로브의 과반수가 임계값을 초과하면 nonce가 확인됩니다. 그렇지 않으면 후보는 블랙리스트에 추가되고 스캔이 계속됩니다. 스캔이 포기하기 전까지 최대 8개의 오탐 "블립(blip)"이 허용됩니다.

공개

GitHub의 비공개 자문 프로세스를 통해 Bishop Fox에 보고되었습니다. CalebKingan이 패치를 작성했습니다.

도구 다운로드