rufflabs/ludus_crushftp_cve-2025-31161

GitHub: rufflabs/ludus_crushftp_cve-2025-31161

该 Ansible 角色用于在 Ludus 平台上自动化部署含 CVE-2025-31161 漏洞的 CrushFTP 实例,方便安全团队进行授权渗透测试。

Stars: 0 | Forks: 0

# Ansible Role: CrushFTP CVE-2025-31161 ([Ludus](https://ludus.cloud)) 一个 Ansible Role,用于在 Windows 上部署存在漏洞的 [CrushFTP 10.8.0](https://www.crushftp.com/) 实例,以便对 [CVE-2025-31161](https://nvd.nist.gov/vuln/detail/CVE-2025-31161)(身份验证绕过)进行授权的渗透测试。 存在漏洞的 CrushFTP 二进制文件托管在 [rufflabs/crushftp_cve-2025-31161](https://github.com/rufflabs/crushftp_cve-2025-31161),并在部署时自动下载。如果该仓库不可用,该 role 将回退到直接从 Docker Hub 拉取。 ## 要求 - 目标必须是启用了 WinRM 的 Windows 虚拟机。 - Ludus 主机在首次部署时需要对 GitHub 和 `api.adoptium.net` 的出站 HTTPS 访问权限(之后文件会被缓存)。 ## Role 变量 可用的变量如下所示,并附带默认值(参见 `defaults/main.yml`): ``` # 存在漏洞的 CrushFTP 构建的 GitHub Release URL ludus_crushftp_download_url: "https://github.com/rufflabs/crushftp_cve-2025-31161/releases/download/v10.8.0_4/CrushFTP10_10.8.0_4.zip" # 如果 GitHub 下载失败,则回退到 Docker Hub ludus_crushftp_fallback_to_docker: true # Windows 目标上的安装路径 ludus_crushftp_install_dir: "C:\\CrushFTP" # 管理员账户(CVE-2025-31161 的默认 exploit 目标) ludus_crushftp_admin_user: "crushadmin" ludus_crushftp_admin_password: "CrushAdmin123!" # Windows 服务设置 ludus_crushftp_service_name: "CrushFTP" ludus_crushftp_service_start_mode: auto # 网络端口 ludus_crushftp_http_port: 8080 ludus_crushftp_https_port: 443 # 创建 Windows Firewall 允许规则 ludus_crushftp_configure_firewall: true ``` ## 依赖 无。 ## Ludus 靶场配置示例 ``` ludus: - vm_name: "{{ range_id }}-crushftp" hostname: "{{ range_id }}-CRUSH" template: win2022-server-x64-template vlan: 20 ip_last_octet: 10 ram_gb: 4 cpus: 2 windows: sysprep: true roles: - rufflabs.ludus_crushftp_cve_2025_31161 role_vars: ludus_crushftp_admin_user: "crushadmin" ludus_crushftp_admin_password: "CrushAdmin123!" ``` ## Ludus 使用方法 ``` # 添加 role ludus ansible role add rufflabs.ludus_crushftp_cve_2025_31161 # 更新你的 range config ludus range config get > config.yml # 编辑 config.yml 以添加 role(参见上方示例) ludus range config set -f config.yml # 部署(如果 range 已经运行,则仅部署 role) ludus range deploy -t user-defined-roles ``` ## 独立 Playbook 示例 ``` - hosts: crushftp_hosts roles: - rufflabs.ludus_crushftp_cve_2025_31161 ``` ## 测试漏洞利用 部署完成后,从你的攻击虚拟机进行测试: ``` # Nuclei 检测 nuclei -u http://:8080 -t CVE-2025-2825.yaml # Immersive Labs PoC(创建后门管理员账户) python3 cve-2025-31161.py \ --target_host http://:8080 \ --target_user crushadmin \ --new_user backdoor \ --password backdoor123 ``` ## 工作原理 1. **下载** — 从 `rufflabs/crushftp_cve-2025-31161` GitHub Releases 获取 `CrushFTP10_10.8.0_4.zip`(如果不可用,则回退到 Docker Hub registry API)。下载 Adoptium JDK 21。两者都缓存在 Ludus 主机的 `/opt/ludus/resources/crushftp/` 目录中。 2. **安装** — 将缓存的文件复制到 Windows 目标,并解压 CrushFTP 和 JDK。 3. **配置** — 创建 `crushadmin` 账户,安装 Windows 服务,设置 `JAVA_HOME`,并开放防火墙端口。 ## 相关仓库 | 仓库 | 用途 | |------------|---------| | [rufflabs/crushftp_cve-2025-31161](https://github.com/rufflabs/crushftp_cve-2025-31161) | 将存在漏洞的 CrushFTP 二进制文件作为 GitHub Release 资产托管 | | [rufflabs/ludus_crushftp_cve-2025-31161](https://github.com/rufflabs/ludus_crushftp_cve-2025-31161) | 此 role —— 用于部署的 Ansible/Ludus 自动化 | ## 参考 - [NVD: CVE-2025-31161](https://nvd.nist.gov/vuln/detail/CVE-2025-31161) - [ProjectDiscovery 文章](https://projectdiscovery.io/blog/crushftp-authentication-bypass) - [Huntress 分析](https://www.huntress.com/blog/crushftp-cve-2025-31161-auth-bypass-and-post-exploitation) - [Exploit-DB PoC](https://www.exploit-db.com/exploits/52295) - [Immersive Labs PoC](https://github.com/Immersive-Labs-Sec/CVE-2025-31161) ## 许可证 MIT ## 作者信息 此 role 由 [rufflabs](https://github.com/rufflabs) 为 [Ludus](https://ludus.cloud/) 创建。
标签:Ansible, CISA项目, CrushFTP, 漏洞环境, 特权提升, 系统提示词, 自动化部署