
Rol complementario para ludus_crushftp_cve-2025-31161 que añade una capa de escenario realista sobre la instancia vulnerable de CrushFTP.
[!NOTE] Este rol requiere que el rol principal
ludus_crushftp_cve-2025-31161se aplique primero.
Proceso de negocio simulado — Crea una cuenta de usuario de CrushFTP (svc_fileprocessor) con archivos de datos sensibles que rotan cada 2 minutos, dando al atacante algo que valga la pena exfiltrar tras explotar la omisión de autenticación.
Simulación de defensor — Una tarea programada se ejecuta cada 5 minutos y elimina cualquier servicio de Windows que coincida con exfil*, simulando una limpieza de EDR o defensor. Los pentesters deben trabajar alrededor de esto para mantener la persistencia.
| Componente | Nombre | Intervalo |
|---|---|---|
| Script de limpieza de servicios | Invoke-ServiceCleanup.ps1 | Cada 5 min |
| Script de rotación de datos | Invoke-DataRotation.ps1 | Cada 2 min |
| Usuario de CrushFTP | svc_fileprocessor | — |
| Tarea programada | CrushFTP Service Monitor | Cada 5 min |
| Tarea programada | CrushFTP Data Processing | Cada 2 min |
El script de rotación crea archivos llamados sensitive_data_<timestamp>.txt que contienen una cabecera CONFIDENTIAL y el hash SHA256 del nombre del archivo. Se mantienen un máximo de 5 archivos; el más antiguo se elimina cuando se crea uno nuevo.
ludus_crushftp_cve-2025-31161 debe aplicarse primero a la misma VM.# 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*"
Debe ejecutarse después de 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
Después del despliegue, un pentester debería:
crushadminsvc_fileprocessor y sus archivos de datossensitive_data_*.txt a través de la interfaz de CrushFTPexfil_c2) — que se limpia cada 5 minutosMIT