
Ruolo Ansible che simula uno scenario realistico di sfruttamento di CrushFTP CVE-2025-31161 con file di dati sensibili rotanti e pulizia automatica del difensore per la pratica di pentesting.
Ruolo complementare per ludus_crushftp_cve-2025-31161 che aggiunge un livello di scenario realistico sopra l'istanza vulnerabile di CrushFTP.
[!NOTE] Questo ruolo richiede che il ruolo principale
ludus_crushftp_cve-2025-31161venga applicato prima.
Processo aziendale simulato — Crea un account utente CrushFTP (svc_fileprocessor) con file di dati sensibili che ruotano ogni 2 minuti, dando all'attaccante qualcosa da esfiltrare dopo lo sfruttamento del bypass di autenticazione.
Simulazione del difensore — Un'attività pianificata viene eseguita ogni 5 minuti per rimuovere qualsiasi servizio Windows che corrisponda a exfil*, simulando una pulizia EDR o difensore. I penetration tester devono lavorare intorno a questo per mantenere la persistenza.
| Componente | Nome | Intervallo |
|---|---|---|
| Script di pulizia servizio | Invoke-ServiceCleanup.ps1 | Ogni 5 min |
| Script di rotazione dati | Invoke-DataRotation.ps1 | Ogni 2 min |
| Utente CrushFTP | svc_fileprocessor | — |
| Attività pianificata | Monitor servizio CrushFTP | Ogni 5 min |
| Attività pianificata | Elaborazione dati CrushFTP | Ogni 2 min |
Lo script di rotazione crea file denominati sensitive_data_<timestamp>.txt contenenti un'intestazione CONFIDENTIAL e l'hash SHA256 del nome del file. Vengono conservati al massimo 5 file; il più vecchio viene eliminato quando ne viene creato uno nuovo.
ludus_crushftp_cve-2025-31161 deve essere applicato prima alla stessa 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*"
Deve essere eseguito dopo 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
Dopo il deployment, un penetration tester dovrebbe:
crushadminsvc_fileprocessor e i suoi file di datisensitive_data_*.txt tramite l'interfaccia CrushFTPexfil_c2) — che viene pulito ogni 5 minutiMIT