Ansible 역할로, 실제와 유사한 CrushFTP CVE-2025-31161 취약점 공격 시나리오를 시뮬레이션하며, 민감한 데이터 파일을 순환시키고 자동 방어자 정리(Defender Cleanup) 기능을 제공하여 침투 테스트 연습에 사용됩니다.
취약한 CrushFTP 인스턴스 위에 현실적인 시나리오 레이어를 추가하는 ludus_crushftp_cve-2025-31161의 동반 역할입니다.
[!NOTE] 이 역할은 기본
ludus_crushftp_cve-2025-31161역할이 먼저 적용되어야 합니다.
시뮬레이션된 비즈니스 프로세스 — 민감한 데이터 파일이 2분마다 교체되는 CrushFTP 사용자 계정(svc_fileprocessor)을 생성하여, 공격자가 인증 우회를 악용한 후에 유출할 가치가 있는 대상을 제공합니다.
방어자 시뮬레이션 — 5분마다 exfil* 패턴과 일치하는 Windows 서비스를 제거하는 예약 작업이 실행되어, EDR 또는 방어 도구의 정리를 시뮬레이션합니다. 침투 테스터는 지속성을 유지하기 위해 이를 우회해야 합니다.
| 구성 요소 | 이름 | 간격 |
|---|
| 서비스 정리 스크립트 | Invoke-ServiceCleanup.ps1 | 5분마다 |
| 데이터 교체 스크립트 | Invoke-DataRotation.ps1 | 2분마다 |
| CrushFTP 사용자 | svc_fileprocessor | — |
| 예약 작업 | CrushFTP Service Monitor | 5분마다 |
| 예약 작업 | CrushFTP Data Processing | 2분마다 |
교체 스크립트는 CONFIDENTIAL 헤더와 파일 이름의 SHA256 해시를 포함하는 sensitive_data_<timestamp>.txt 파일을 생성합니다. 최대 5개의 파일이 유지되며, 새 파일이 생성될 때 가장 오래된 파일이 삭제됩니다.
ludus_crushftp_cve-2025-31161 역할이 먼저 적용되어야 합니다.# CrushFTP 설치 디렉터리 (기본 역할과 일치해야 함)
ludus_crushftp_sim_install_dir: "C:\\CrushFTP"
# 시뮬레이션된 비즈니스 사용자
ludus_crushftp_sim_user: "svc_fileprocessor"
ludus_crushftp_sim_password: "Pr0c3ss!ng2024"
# 데이터 디렉터리 및 교체 설정
ludus_crushftp_sim_data_dir: "C:\\CrushFTP\\svc_fileprocessor_home"
ludus_crushftp_sim_max_files: 5
ludus_crushftp_sim_data_interval_minutes: 2
# 서비스 정리 설정
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