用于 ludus_crushftp_cve-2025-31161 的配套角色,在有漏洞的 CrushFTP 实例之上增加一层真实的场景模拟。
[!NOTE] 此角色需要先应用主角色
ludus_crushftp_cve-2025-31161。
模拟业务流程 — 创建一个 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_<timestamp>.txt 的文件,其中包含 CONFIDENTIAL 头部以及文件名的 SHA256 哈希。最多保留 5 个文件;当创建新文件时,最旧的文件会被删除。
ludus_crushftp_cve-2025-31161。# CrushFTP install dir (must match main role)
ludus_crushftp_sim_install_dir: "C:\\CrushFTP"
# Simulated business user
ludus_crushftp_sim_user: "svc_fileprocessor"
ludus_crushftp_sim_password: "Pr0c3ss!ng2024"
# Data directory and rotation settings
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 settings
ludus_crushftp_sim_cleanup_interval_minutes: 5
ludus_crushftp_sim_exfil_pattern: "exfil*"
必须在 ludus_crushftp_cve-2025-31161 之后运行。
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 ansible role add -d ./ludus_crushftp_cve-2025-31161_sim
ludus range deploy -t user-defined-roles
部署后,渗透测试人员通常会:
crushadmin 身份绕过身份验证svc_fileprocessor 账户及其数据文件sensitive_data_*.txt 文件exfil_c2 的服务)——该服务每 5 分钟会被清理一次MIT