
Ansible 역할: 취약한 CrushFTP 10.8.0 인스턴스를 Windows에 배포하여 CVE-2025-31161 인증 우회에 대한 공인된 침투 테스트를 수행합니다.
권한이 부여된 침투 테스트를 위해 Windows에 취약한 CrushFTP 10.8.0 인스턴스를 배포하는 Ansible 역할입니다. CVE-2025-31161 (인증 우회)에 대한 것입니다.
취약한 CrushFTP 바이너리는 rufflabs/crushftp_cve-2025-31161에 호스팅되어 있으며 배포 시 자동으로 다운로드됩니다. 해당 저장소를 사용할 수 없는 경우 역할은 Docker Hub에서 직접 가져오는 것으로 대체됩니다.
[!WARNING] 이 역할은 의도적으로 취약한 애플리케이션을 배포합니다. 격리된 실습 환경에서만 사용하세요. 신뢰할 수 없는 네트워크에 노출하지 마십시오.
api.adoptium.net에 대한 아웃바운드 HTTPS가 필요합니다 (그 이후 파일은 캐시됩니다).사용 가능한 변수는 기본값과 함께 아래에 나열되어 있습니다 (defaults/main.yml 참조):
# GitHub Release URL for the vulnerable CrushFTP build
ludus_crushftp_download_url: "https://github.com/rufflabs/crushftp_cve-2025-31161/releases/download/v10.8.0_4/CrushFTP10_10.8.0_4.zip"
# Fall back to Docker Hub if GitHub download fails
ludus_crushftp_fallback_to_docker: true
# Installation path on the Windows target
ludus_crushftp_install_dir: "C:\\CrushFTP"
# Admin account (default exploit target for CVE-2025-31161)
ludus_crushftp_admin_user: "crushadmin"
ludus_crushftp_admin_password: "CrushAdmin123!"
# Windows service settings
ludus_crushftp_service_name: "CrushFTP"
ludus_crushftp_service_start_mode: auto
# Network ports
ludus_crushftp_http_port: 8080
ludus_crushftp_https_port: 443
# Create Windows Firewall allow rules
ludus_crushftp_configure_firewall: true
없음.
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:
- rufflabs.ludus_crushftp_cve_2025_31161
role_vars:
ludus_crushftp_admin_user: "crushadmin"
ludus_crushftp_admin_password: "CrushAdmin123!"
# Add the role
ludus ansible role add rufflabs.ludus_crushftp_cve_2025_31161
# Update your range config
ludus range config get > config.yml
# Edit config.yml to add the role (see example above)
ludus range config set -f config.yml
# Deploy (role only, if range is already up)
ludus range deploy -t user-defined-roles
- hosts: crushftp_hosts
roles:
- rufflabs.ludus_crushftp_cve_2025_31161
배포 후 공격 VM에서 테스트하세요:
# Nuclei detection
nuclei -u http://<target-ip>:8080 -t CVE-2025-2825.yaml
# Immersive Labs PoC (creates a backdoor admin account)
python3 cve-2025-31161.py \
--target_host http://<target-ip>:8080 \
--target_user crushadmin \
--new_user backdoor \
--password backdoor123
rufflabs/crushftp_cve-2025-31161 GitHub 릴리스에서 CrushFTP10_10.8.0_4.zip을 가져옵니다 (사용할 수 없는 경우 Docker Hub 레지스트리 API로 대체). Adoptium JDK 21을 다운로드합니다. 두 파일 모두 Ludus 호스트의 /opt/ludus/resources/crushftp/에 캐시됩니다.crushadmin 계정을 생성하고, Windows 서비스를 설치하고, JAVA_HOME을 설정하고, 방화벽 포트를 엽니다.| 저장소 | 목적 |
|---|---|
| rufflabs/crushftp_cve-2025-31161 | 취약한 CrushFTP 바이너리를 GitHub 릴리스 자산으로 호스팅 |
| rufflabs/ludus_crushftp_cve-2025-31161 | 이 역할 — 배포를 위한 Ansible/Ludus 자동화 |
MIT