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
漏洞分析漏洞利用Web应用程序漏洞利用WAF绕过渗透测试学习与教育Payload 开发
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 利用套件

root@kitploit:~

⚡ 版本: 1.0 🛡️ CVE ID: CVE-2025-24813 (Apache Tomcat RCE) 🧬 Payload: ysoserial / Java 🌐 模式: 交互式 + 隐身 🔬 用途: 道德、研究、教育


🌌 概述

该工具被设计为一套未来主义风格的利用套件,专注于:

  • 🔍 针对 CVE-2025-24813 评估 Apache Tomcat
  • 🛠️ 自动化概念验证(PoC)测试过程
  • 🧠 执行带有高级规避技术的自定义 payload
  • 🧬 适应现代防御(WAF、检测、模拟流量)

🧪 为网络安全专业人士、研究人员、渗透测试人员和红队设计。


🧠 此脚本的功能是什么?

🛸 主要功能

✅ 直观的交互式界面

✅ 动态 payload(ysoserial 或编译后的 Java)

✅ 变色龙式反 WAF 请求头

✅ 自动规避 + payload 分片

✅ 后端执行指纹识别

✅ 每个目标详细日志记录

✅ 赛博朋克风格动态横幅(🔮 故障动画)

✅ 控制台实时反馈(使用 Rich & Colorama)


⚙️ 要求

使用以下命令安装所需依赖:

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

依赖项:

root@kitploit:~
requests
colorama
rich
validators

并确保你有:

  • ☕ Java 和 javac 在 PATH 中
  • 📦 ysoserial.jar(如果使用 ysoserial 类型 payload)

🧪 使用方法

运行脚本:

root@kitploit:~
python3 POC-Exploit_CVE_2025_24813.py

并完成配置:

🧬 选择 payload 类型 💣 指定命令 🌐 输入目标 URL 🔧 调整规避和 SSL 设置

🎯 视觉示例:

root@kitploit:~
🔗 [?] 输入目标 URL: https://victima.org
💣 [?] 要执行的命令: whoami
🧬 [?] Payload 类型: ysoserial
📂 [?] Ysoserial.jar 路径: ysoserial.jar
🔧 [?] Gadget: CommonsCollections6
🔐 [?] 验证 SSL?(是/否): 否

🚀 正在执行...
🧬 检测到 WAF... 更换策略
⚙️ 正在上传 payload...
💥 远程执行确认
✅ 结果: 'apache'

🌈 脚本视觉架构

root@kitploit:~
┌──────────────────────────────┐
│  交互模式                     │
├──────────────────────────────┤
│  URL 验证                     │
│  会话检测                     │
│  WAF 检测                     │
│  Payload 生成                 │
│  通过 PUT 进行规避上传         │
│  执行验证                     │
└──────────────────────────────┘
        ↘ 每个目标的日志

🧬 Payload 类型

  • ysoserial:基于知名的 ysoserial 工具,序列化易受攻击的 gadgets 以执行命令。
  • Java 自定义:编译自定义的 .java 文件,从服务器远程执行命令。

常用 Gadgets:

  • CommonsCollections6
  • Spring1
  • Jdk7u21

📁 项目结构

root@kitploit:~
POC-Exploit_CVE_2025_24813.py   # 主脚本
ysoserial.jar               # 如果使用 'ysoserial' 则需要
logs/                       # 每个目标的单独日志文件夹
payload.ser                 # 临时生成的 payload
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

脚本使用两种 payload 形式:

  1. Ysoserial → 生成反序列化 payload 的外部 Java 工具。
  2. 自行编译 Java → 当选择 "java" 选项而非 "ysoserial" 时。

因此你需要:

  • 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 上,默认 payload(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 目的: 本指南解释如何准备一个完全安全的环境来测试您拥有的脚本,而不影响真实系统。包括一个测试服务器(mock)、安全模式(DRY_RUN / SAFE_TEST),以及清晰的步骤来在实验室中运行该工具。


⚠️ 法律和道德声明(开始前请阅读)

  • 仅在您控制的环境下执行:本地虚拟机、容器或隔离网络。
  • 未经明确书面授权,请勿针对第三方系统运行此程序。
  • 本指南不提供利用真实服务器的步骤。它专为防御性和教育性测试而设计。

🔍 本教程包含的内容

  1. 以隔离方式准备 Python 环境。
  2. 创建一个模拟目标服务响应的测试服务器(mock)。
  3. 准备用于测试的 虚拟(无害)payload。
  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)— 安全代码

创建一个包含以下内容的 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 cookie 或包含 "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():
    # 如果 cookie 匹配且会话已“上传”,则返回 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
# mock 将监听 http://127.0.0.1:8000

📁 2) 准备一个虚拟 payload(无害)

对于测试,您不需要生成真实的 payload。创建一个简单的文件,供脚本上传:

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

此文件不包含可执行代码:仅用于验证上传逻辑并查看 mock 服务器的响应。


⚙️ 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 激活 — 创建 dummy payload(不可执行)", 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 激活 — 创建 dummy java payload(不可执行)", 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,则使用正常流程(mock 将接受),但不要执行脚本外的命令。

如何激活 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 或该模式未为您创建 payload,则创建 dummy payload:

    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 中不会执行)
    • Payload 类型: ysoserial(脚本在 SAFE_TEST=1 时将创建 dummy payload,而不是调用外部工具)
    • Ysoserial.jar 路径:(可以保留 ysoserial.jar — 在安全模式下不会使用)
    • 验证 SSL? 否(您的 mock 使用 HTTP)
  7. 观察控制台输出:您应该看到消息 Server is writable via PUT、Payload uploaded with status 409 和 Exploit succeeded! Server returned 500 after deserialization. — 这仅在 mock 中发生,表示脚本的逻辑流程正常工作。

  8. 检查 logs/ 下的日志文件 — 脚本会保存带有时间戳的条目。例如 logs/127_0_0_1_8000.log(根据清理后的目标名称命名)。


🔎 5) 测试中要检查的内容

  • 确保 check_writable_servlet 函数检测到对端点 /check.txt 的成功 PUT。
  • 确保上传 payload.ser 后,mock 返回 409,并且脚本随后使用 JSESSIONID cookie 发出 GET 请求。
  • 确保 mock 返回 500,并且脚本将其解释为逻辑验证成功。
  • 确保日志包含所有预期的条目,并且临时文件(如果有)已被删除。

🧪 6) 单元测试(推荐)

  • 使用 pytest 和 requests-mock 模拟 HTTP 响应。

  • 为以下内容创建测试:

    • validate_url — 有效/无效输入。
    • retry_request — 模拟异常和重试。
    • detect_waf — 模拟带有和不带有签名的 Server 请求头。
    • upload_and_verify_payload — 使用服务器 mock 验证流程。

使用 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

❌ 不要做的事情

  • 不要针对未经授权的第三方目标运行脚本。
  • 未经协调和负责任的披露,请勿公开分享功能性 payload 或 PoC。
  • 请勿分发可能在没有严格控制的情况下自动化攻击的工具。

下载工具