rufflabs/ludus_crushftp_cve-2025-31161_sim

GitHub: rufflabs/ludus_crushftp_cve-2025-31161_sim

为 CrushFTP CVE-2025-31161 漏洞靶场添加业务数据轮换与防御者清理机制的 Ansible 角色,使渗透测试演练更加贴近实战。

Stars: 0 | Forks: 0

# Ansible Role: CrushFTP CVE-2025-31161 模拟环境 ([Ludus](https://ludus.cloud)) [ludus_crushftp_cve-2025-31161](https://github.com/rufflabs/ludus_crushftp_cve-2025-31161) 的配套角色,在存在漏洞的 CrushFTP 实例之上添加了一层真实的业务场景。 ## 功能说明 **模拟业务流程** — 创建一个 CrushFTP 用户账户(`svc_fileprocessor`),其中包含每 2 分钟轮换一次的敏感数据文件,为攻击者在利用身份验证绕过漏洞后提供值得窃取的数据。 **防御者模拟** — 一个计划任务每 5 分钟运行一次,会删除任何匹配 `exfil*` 的 Windows 服务,模拟 EDR 或防御者的清理操作。渗透测试人员必须想办法绕过这一机制以维持持久化。 | 组件 | 名称 | 周期 | |-----------|------|----------| | 服务清理脚本 | `Invoke-ServiceCleanup.ps1` | 每 5 分钟 | | 数据轮换脚本 | `Invoke-DataRotation.ps1` | 每 2 分钟 | | CrushFTP 用户 | `svc_fileprocessor` | — | | 计划任务 | `CrushFTP Service Monitor` | 每 5 分钟 | | 计划任务 | `CrushFTP Data Processing` | 每 2 分钟 | ### 数据文件 轮换脚本会创建名为 `sensitive_data_.txt` 的文件,其中包含 `CONFIDENTIAL` 标头以及该文件名的 SHA256 哈希值。最多保留 5 个文件;当创建新文件时,会删除最旧的文件。 ## 要求 - 必须首先将主 `ludus_crushftp_cve-2025-31161` 角色应用于同一个 VM。 - 在执行此角色之前,必须已安装 CrushFTP 并且服务正在运行。 ## 角色变量 ``` # CrushFTP install dir(必须与 main role 匹配) ludus_crushftp_sim_install_dir: "C:\\CrushFTP" # 模拟业务用户 ludus_crushftp_sim_user: "svc_fileprocessor" ludus_crushftp_sim_password: "Pr0c3ss!ng2024" # Data directory 和 rotation 设置 ludus_crushftp_sim_data_dir: "C:\\CrushFTP\\svc_fileprocessor_home" ludus_crushftp_sim_max_files: 5 ludus_crushftp_sim_data_interval_minutes: 2 # Service cleanup 设置 ludus_crushftp_sim_cleanup_interval_minutes: 5 ludus_crushftp_sim_exfil_pattern: "exfil*" ``` ## 依赖关系 必须在 `ludus_crushftp_cve-2025-31161` 之后运行。 ## 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: - ludus_crushftp_cve-2025-31161 - ludus_crushftp_cve-2025-31161_sim role_vars: ludus_crushftp_admin_password: "CrushAdmin123!" ludus_crushftp_sim_password: "Pr0c3ss!ng2024" ``` ## Ludus 使用方法 ``` ludus ansible role add -d ./ludus_crushftp_cve-2025-31161_sim ludus range deploy -t user-defined-roles ``` ## 测试场景 部署完成后,渗透测试人员需要: 1. 利用 CVE-2025-31161 以 `crushadmin` 的身份绕过身份验证 2. 发现 `svc_fileprocessor` 账户及其数据文件 3. 通过 CrushFTP 界面窃取 `sensitive_data_*.txt` 文件 4. 尝试安装持久化机制(例如,名为 `exfil_c2` 的服务)—— 该机制每 5 分钟会被清理一次 5. 需要找到能够在清理中存活下来的持久化方法,或者以快于轮换周期的速度完成数据窃取 ## 许可证 MIT ## 作者信息 此角色由 [rufflabs](https://github.com/rufflabs) 为 [Ludus](https://ludus.cloud/) 创建。
标签:AI合规, Ansible, 漏洞环境, 系统提示词, 自动化配置