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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
POC-CVE-2025-24813-Apache-Tomcat-Remote-Code-Execution — 이 저장소는 교육 및 사이버보안 연구 목적으로 개발된 자동화된 익스플로잇으로, Apache Tomcat (CVE-2025-24813)의 잠재적인 원격 코드 실행(RCE) 취약점을 시연하기 위한 것입니다. | Kitploit
도구/GitHubGitHub/makavellik/poc-cve-2025-24813-apache-tomcat-remote-code-execution
Vulnerability AnalysisExploitationWeb Application ExploitationWAF BypassPenetration TestingLearning & EducationPayload Development
GitHubmakavellik/poc-cve-2025-24813-apache-tomcat-remote-code-execution

POC-CVE-2025-24813-Apache-Tomcat-Remote-Code-Execution

이 저장소는 교육 및 사이버보안 연구 목적으로 개발된 자동화된 익스플로잇으로, Apache Tomcat (CVE-2025-24813)의 잠재적인 원격 코드 실행(RCE) 취약점을 시연하기 위한 것입니다.

저장소 보기
271년 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Python License MIT Active Stealth Mode Simbiosis


⚠️🚀 CVE-2025-24813 — Apache Tomcat RCE Exploitation Suite

root@kitploit:~

⚡ 버전: 1.0 🛡️ CVE ID: CVE-2025-24813 (Apache Tomcat RCE) 🧬 페이로드: ysoserial / Java 🌐 모드: 대화형 + 스텔스 🔬 용도: 윤리적, 조사용, 교육용


🌌 개요

이 도구는 미래지향적 익스플로잇 제품군으로 설계되었으며, 다음에 중점을 둡니다:

  • 🔍 CVE-2025-24813에 대한 Apache Tomcat 평가
  • 🛠️ 개념 증명(PoC) 프로세스 자동화
  • 🧠 고급 우회 기능을 갖춘 맞춤형 페이로드 실행
  • 🧬 최신 방어(WAF, 탐지, 시뮬레이션 트래픽)에 적응

🧪 사이버보안 전문가, 연구원, 침투 테스터, 레드팀을 위해 설계되었습니다.


🧠 이 스크립트는 무엇을 합니까?

🛸 주요 기능

✅ 대화형이고 직관적인 인터페이스

✅ 동적 페이로드(ysoserial 또는 컴파일된 Java)

✅ 위장(WAF 우회) 헤더

✅ 자동 우회 + 페이로드 분할

✅ 백엔드 실행 핑거프린팅

✅ 대상별 상세 로깅

✅ 사이버펑크 스타일 동적 배너 (🔮 글리치 애니메이션)

✅ 콘솔 라이브 피드백 (Rich & Colorama 사용)


⚙️ 요구사항

다음 명령어로 필요한 패키지를 설치하세요:

root@kitploit:~
pip install -r requirements.txt

의존성:

root@kitploit:~
requests
colorama
rich
validators

그리고 다음이 준비되어 있어야 합니다:

  • ☕ PATH에 Java 및 javac
  • 📦 ysoserial 페이로드 사용 시 ysoserial.jar

🧪 사용 방법

스크립트 실행:

root@kitploit:~
python3 POC-Exploit_CVE_2025_24813.py

그리고 설정을 완료하세요:

🧬 페이로드 유형 선택 💣 실행할 명령어 지정 🌐 대상 URL 입력 🔧 우회 및 SSL 설정 조정

🎯 시각적 예시:

root@kitploit:~
🔗 [?] 대상 URL 입력: https://victima.org
💣 [?] 실행할 명령어: whoami
🧬 [?] 페이로드 유형: ysoserial
📂 [?] ysoserial.jar 경로: ysoserial.jar
🔧 [?] Gadget: CommonsCollections6
🔐 [?] SSL 확인? (예/아니오): 아니오

🚀 실행 중...
🧬 WAF 탐지됨... 전략 변경
⚙️ 페이로드 업로드 중...
💥 원격 실행 확인
✅ 결과: 'apache'

🌈 스크립트 시각적 구조

root@kitploit:~
┌──────────────────────────────┐
│  대화형 모드                  │
├──────────────────────────────┤
│  URL 검증                    │
│  세션 감지                   │
│  WAF 감지                    │
│  페이로드 생성                │
│  PUT을 통한 우회 업로드       │
│  실행 확인                   │
└──────────────────────────────┘
        ↘ 대상별 로그

🧬 페이로드 유형

  • ysoserial: 잘 알려진 ysoserial 도구 기반, 취약한 가젯을 직렬화하여 명령어를 실행합니다.
  • Java Custom: 맞춤형 .java를 컴파일하여 서버에서 원격 명령어를 실행합니다.

일반적인 가젯:

  • CommonsCollections6
  • Spring1
  • Jdk7u21

📁 프로젝트 구조

root@kitploit:~
POC-Exploit_CVE_2025_24813.py   # 메인 스크립트
ysoserial.jar               # 'ysoserial' 사용 시 필요
logs/                       # 대상별 개별 로그 폴더
payload.ser                 # 임시로 생성된 페이로드
Exploit.java / .class       # Java 임시 파일

👨‍⚖️ 책임감 있고 윤리적인 사용

이 도구는 법적 및 교육 목적으로만 제작되었습니다.

✅ 허용:

  • 승인된 보안 감사
  • 개인 랩 및 테스트 환경
  • 학술 연구

🚫 금지:

  • 동의 없는 타사 시스템 사용
  • 불법 또는 무단 활동
  • 악의적 목적의 배포

⚖️ 책임 부인

저자와 기여자는 오용에 대해 책임을 지지 않습니다. 귀하는 귀하의 행동에 책임이 있습니다.


🧠 크레딧

  • 👤 저자: [ByMakaveli]
  • 🔬 연구: 최신 Java 우회 및 익스플로잇 기술 기반
  • 🧰 사용 도구: ysoserial, Java, Rich, Colorama, requests

🛰️ 참조 CVE

📄 CVE-2025-24813: Apache Tomcat 원격 코드 실행 🔗 CVE MITRE에서 세부 정보 보기


📜 라이선스

root@kitploit:~
MIT License

Copyright (c) 2025

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files...

자세한 내용은 LICENSE 파일을 참조하세요.


💎 시각적 영감

이 README와 스크립트는 몰입감 있고 시각적이며 우아한 경험을 위해 설계되었으며, 새로운 시대의 미래지향적 사이버보안과 목적에 부합합니다.

✨ 단순한 익스플로잇이 아닙니다... 우회와 디지털 통제의 기술적 교향곡입니다.



🔧 필요한 의존성

1. Python

  • 권장 버전: Python 3.8+

  • 설치해야 할 Python 라이브러리:

    root@kitploit:~
    pip install requests colorama
    

2. Java

스크립트는 두 가지 페이로드 방식을 사용합니다:

  1. Ysoserial → 역직렬화 페이로드를 생성하는 외부 Java 도구
  2. 자체 Java 컴파일 → "ysoserial" 대신 "java" 옵션을 선택할 때

따라서 다음이 필요합니다:

  • Java JDK (코드를 컴파일해야 하므로 JRE만으로는 부족) 다음 명령어로 확인하세요:

    root@kitploit:~
    java -version
    javac -version
    

    두 명령어 모두 작동하면 준비된 것입니다.


3. Ysoserial

  • .jar 다운로드 👉 https://github.com/frohoff/ysoserial

  • 스크립트와 같은 디렉토리에 저장하거나 요청 시 전체 경로를 입력하세요. 예시:

    root@kitploit:~
    java -jar ysoserial.jar CommonsCollections6 "calc.exe" > test.ser
    

4. 운영체제

  • Windows에서 기본 페이로드(calc.exe)는 계산기를 엽니다.
  • Linux/Mac에서는 명령어를 gnome-calculator 또는 xcalc 등으로 변경할 수 있습니다.

⚙️ 설치 요약

  1. Python 3.8+ 설치

  2. 라이브러리 설치:

    root@kitploit:~
    pip install requests colorama etc
    
  3. Java JDK 8+ 설치

    root@kitploit:~
    java -version
    javac -version
    
  4. 스크립트 폴더에 ysoserial.jar 다운로드


👉 이 모든 준비가 완료되면 안전한 실습 모드(통제된 환경에서만 테스트)로 스크립트를 실행할 수 있습니다.


🛡️ README — 안전한 단계별 튜토리얼

버전: 1.0 목적: 이 가이드는 실제 시스템에 영향을 주지 않고 스크립트를 테스트할 수 있는 완전히 안전한 환경을 준비하는 방법을 설명합니다. 테스트 서버(모의), 안전 모드(DRY_RUN / SAFE_TEST), 랩에서 도구를 실행하기 위한 명확한 단계를 포함합니다.


⚠️ 법적 및 윤리적 고지 (시작 전에 읽으세요)

  • 오직 통제된 환경(로컬 가상 머신, 컨테이너, 격리된 네트워크)에서만 실행하세요.
  • 명시적인 서면 승인 없이 타사 시스템에 대해 실행하지 마십시오.
  • 이 가이드는 실제 서버를 익스플로잇하는 방법을 제공하지 않습니다. 방어 및 교육 목적의 테스트를 위해 고안되었습니다.

🔍 이 튜토리얼의 내용

  1. 격리된 Python 환경 준비
  2. 대상 서비스의 응답을 시뮬레이션하는 테스트 서버(모의) 생성
  3. 테스트용 더미(무해한) 페이로드 준비
  4. 스크립트에 안전 모드(SAFE_TEST) 추가 (외부 도구나 위험한 작업을 실행하지 않음)
  5. 단계별 실행 및 결과 확인(로그)
  6. 자동화된 테스트 및 모범 사례

🧾 요구사항

  • Python 3.8+ 설치
  • pip 사용 가능
  • 권장: virtualenv 또는 venv

의존성 설치:

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate   # Linux / macOS
.\.venv\Scripts\activate  # Windows (PowerShell/Command Prompt)

pip install -U pip
pip install requests colorama flask

참고: flask는 로컬 모의 서버(mock)에서만 사용됩니다.


🧪 1) 테스트 서버 (모의) — 안전한 코드

mock_server.py 파일을 만들고 다음 내용을 입력하세요. 이 서버는 스크립트가 예상하는 엔드포인트를 시뮬레이션하고 제어된 상태(200, 409, 500)를 반환하여 실제 서버를 건드리지 않고 스크립트 로직을 검증할 수 있게 합니다.

root@kitploit:~
# mock_server.py — 안전한 테스트 서버
from flask import Flask, request, make_response, jsonify

app = Flask(__name__)
uploads = {}

@app.route('/index.jsp', methods=['GET'])
def index():
    # JSESSIONID 쿠키 또는 "Session ID" 텍스트를 반환할 수 있는 페이지 시뮬레이션
    resp = make_response('Index page — Session ID: testsession')
    resp.set_cookie('JSESSIONID', 'testsession')
    return resp

@app.route('/check.txt', methods=['PUT'])
def check_put():
    # 쓰기 가능한 리소스 시뮬레이션
    return ('OK', 200)

@app.route('/uploads/../sessions/<session_id>.session', methods=['PUT'])
def upload_session(session_id):
    # 업로드가 수락되었지만 409 반환 (스크립트가 예상하는 동작)
    uploads[session_id] = True
    return ('Conflict - uploaded', 409)

@app.route('/', methods=['GET'])
def root():
    # 쿠키가 일치하고 세션이 "업로드"되었다면 역직렬화 실패를 시뮬레이션하기 위해 500 반환
    session = request.cookies.get('JSESSIONID')
    if session and uploads.get(session):
        return ('Internal Server Error', 500)
    return ('Hello from mock server', 200)

if __name__ == '__main__':
    app.run(host='127.0.0.1', port=8000, debug=True)

실행 방법:

root@kitploit:~
python mock_server.py
# 모의 서버는 http://127.0.0.1:8000 에서 수신 대기합니다.

📁 2) 더미 (무해한) 페이로드 준비

테스트를 위해 실제 페이로드를 생성할 필요는 없습니다. 스크립트가 업로드할 수 있는 간단한 파일을 만드세요:

root@kitploit:~
echo "DUMMY_PAYLOAD" > payload.ser

이 파일은 실행 가능한 코드를 포함하지 않습니다: 업로드 로직을 검증하고 모의 서버의 응답을 확인하는 용도로만 사용됩니다.


⚙️ 3) 원본 스크립트에 안전 모드(SAFE_TEST) 추가

스크립트가 외부 유틸리티(Java/ysoserial)를 호출하거나 위험한 작업을 실행하지 않도록 하려면, 메인 스크립트 시작 부분(모든 생성/subprocess 호출 전)에 다음 블록을 추가하세요:

root@kitploit:~
import os
SAFE_TEST = os.environ.get('SAFE_TEST', '0') == '1'

그런 다음 생성/업로드 함수를 수정(또는 래핑)하여 SAFE_TEST가 True일 때 안전하게 동작하도록 합니다.

generate_ysoserial_payload 및 generate_java_payload에 대한 최소한의 변경 예시:

root@kitploit:~
def generate_ysoserial_payload(command, ysoserial_path, gadget, payload_file, target_url):
    if SAFE_TEST:
        log_info("SAFE_TEST 활성화 — 더미 페이로드 생성 (실행 불가)", target_url)
        with open(payload_file, 'wb') as f:
            f.write(b"DUMMY_PAYLOAD")
        return payload_file
    # --- SAFE_TEST == False인 경우에만 원래 동작 ---


def generate_java_payload(command, payload_file, target_url):
    if SAFE_TEST:
        log_info("SAFE_TEST 활성화 — 더미 Java 페이로드 생성 (실행 불가)", target_url)
        with open(payload_file, 'wb') as f:
            f.write(b"DUMMY_JAVA_PAYLOAD")
        return payload_file
    # --- SAFE_TEST == False인 경우에만 원래 동작 ---

그리고 upload_and_verify_payload에서 SAFE_TEST가 True이면 일반 흐름을 사용(모의 서버가 수락함)하지만 스크립트 외부에서 명령어를 실행하지 마세요.

SAFE_TEST 활성화 방법:

  • Linux/macOS:

    root@kitploit:~
    export SAFE_TEST=1
    
  • Windows (PowerShell):

    root@kitploit:~
    $env:SAFE_TEST = "1"
    

▶️ 4) 단계별 실행 (안전 모드)

  1. 가상 환경을 시작하고 의존성이 설치되었는지 확인하세요 (요구사항 섹션 참조).

  2. mock_server.py 실행:

    root@kitploit:~
    python mock_server.py
    
  3. SAFE_TEST를 사용하지 않거나 SAFE_TEST가 페이로드를 자동으로 생성하지 않는 경우 더미 페이로드 생성:

    root@kitploit:~
    echo "DUMMY_PAYLOAD" > payload.ser
    
  4. 터미널에서 안전 모드 활성화:

    root@kitploit:~
    export SAFE_TEST=1   # Linux/macOS
    # 또는 PowerShell: $env:SAFE_TEST = "1"
    
  5. 메인 스크립트 실행:

    root@kitploit:~
    python3 tu_script.py
    
  6. 프롬프트에 응답 (실험실 값을 사용):

    • 대상 URL 입력: http://127.0.0.1:8000
    • 실행할 명령어 입력: 기본값 유지 (SAFE_TEST에서는 실행되지 않음)
    • 페이로드 유형: ysoserial (SAFE_TEST=1이면 외부 도구 대신 더미 페이로드 생성)
    • ysoserial.jar 경로: (기본값 ysoserial.jar 그대로 가능 — 안전 모드에서는 사용되지 않음)
    • SSL 확인? 아니오 (모의 서버는 HTTP 사용)
  7. 콘솔 출력 확인: Server is writable via PUT, Payload uploaded with status 409, Exploit succeeded! Server returned 500 after deserialization.와 같은 메시지가 표시되어야 합니다. — 모의 서버에서만 발생하며, 스크립트의 로직 흐름이 작동함을 의미합니다.

  8. logs/ 폴더의 로그를 확인하세요. 스크립트는 타임스탬프가 포함된 항목을 저장합니다. 예: logs/127_0_0_1_8000.log (대상 이름에 따라 다름).


🔎 5) 테스트에서 확인할 사항

  • check_writable_servlet 함수가 /check.txt 엔드포인트로 PUT 성공을 감지하는지
  • payload.ser를 업로드할 때 모의 서버가 409를 반환하고 스크립트가 JSESSIONID 쿠키로 GET 요청을 보내는지
  • 모의 서버가 500을 반환하고 스크립트가 이를 논리적 성공으로 해석하는지
  • 로그에 예상된 모든 항목이 포함되고 임시 파일(있는 경우)이 삭제되는지

🧪 6) 단위 테스트 (권장)

  • pytest 및 requests-mock을 사용하여 HTTP 응답을 시뮬레이션하세요.

  • 다음에 대한 테스트를 만드세요:

    • validate_url — 유효/무효 입력
    • retry_request — 예외 및 재시도 시뮬레이션
    • detect_waf — 서버 헤더 시그니처 유/무 시뮬레이션
    • upload_and_verify_payload — 모의 서버를 사용하여 흐름 검증

requests-mock을 사용한 간단한 예시 (틀):

root@kitploit:~
# test_script.py
import requests
import requests_mock
from tu_script import validate_url, retry_request

def test_validate_url():
    assert validate_url('http://127.0.0.1:8000')
    assert not validate_url('notaurl')

def test_retry_request_success():
    # requests_mock을 사용하여 GET을 시뮬레이션하고 retry_request 테스트
    pass

저자:ByMakavali

❌ 하지 말아야 할 것

  • 승인되지 않은 외부 대상에 대해 스크립트를 실행하지 마십시오.
  • 조정 및 책임 있는 공개 없이 기능적인 페이로드나 PoC를 공개적으로 공유하지 마십시오.
  • 엄격한 통제 없이 공격을 자동화할 수 있는 도구를 배포하지 마십시오.

도구 다운로드