FreeFloat FTP Server 1.0의 CVE-2025-5548 취약점 분석 및 익스플로잇 연구소
취약점 분석 및 익스플로잇 연구실 · 익스플로잇 개발 · Windows x86
이 저장소는 Windows용 FreeFloat FTP Server 1.0에 존재하는 스택 기반 버퍼 오버플로우인 CVE-2025-5548 취약점의 분석 및 익스플로잇 과정을 완전히 문서화합니다.
목표는 단순히 취약점을 익스플로잇하는 것이 아니라 분석 연구소를 처음부터 구축하는 방법을 설명하는 것입니다: 어떤 도구가 필요한지, 왜 필요한지, 그리고 익스플로잇 과정에서 각 도구를 어떻게 사용하는지. 모든 환경은 수동으로 단계별로 구축되며, 자동화된 스크립트 없이 진행되므로 프로세스의 각 단계를 깊이 이해할 수 있습니다.
CVE-2025-5548은 FreeFloat FTP Server의 버퍼 오버플로우입니다.
| 필드 | 세부 정보 |
|---|---|
| CVE | CVE-2025-5548 |
| 게시됨 | 03/06/2025 |
| 심각도 | 치명적 |
| 유형 | Stack-based Buffer Overflow |
| 영향을 받는 구성 요소 | NOOP Command Handler |
| 영향을 받는 소프트웨어 | FreeFloat FTP Server 1.0 |
| 플랫폼 | Windows x86 |
| 공격 벡터 | 네트워크 (원격 접근) |
| EIP까지의 오프셋 | 246 바이트 |
| 배드 캐릭터 | \x00 \x0a \x0d |
| JMP ESP 주소 | 0x7C86467B (kernel32.dll) |
이 취약점은 FTP 서버가 NOOP 명령을 통해 특별히 조작된 입력을 수신할 때 발생합니다. 받은 버퍼의 크기를 검증하지 않음으로써 스택을 오버플로우하고, EIP 레지스터를 덮어쓰며, 실행 흐름을 공격자가 제어하는 임의의 코드로 리디렉션할 수 있습니다.
CVE-2025-5548-FreeFloat-FTP-Buffer-Overflow/
│
├── docs/
│ ├── 01_environment_setup.md ← Parte 1: Preparación del entorno
│ └── 02_exploitation.md ← Parte 2: Explotación de la vulnerabilidad
│
├── exploits/
│ ├── exploit01.py ← Verificación de conectividad
│ ├── exploit02.py ← Fuzzing del comando NOOP
│ ├── exploit03.py ← Envío del patrón cíclico
│ ├── exploit04.py ← Verificación del control del EIP
│ ├── exploit05.py ← Identificación de bad characters
│ └── exploit06.py ← Exploit final con JMP ESP
│
└── images/
└── *.png ← Capturas utilizadas en la documentación
연구소에 필요한 모든 도구의 수동 설치 및 구성, 각 도구가 필요한 이유에 대한 설명과 스크린샷 포함.
| 카테고리 | 도구 |
|---|---|
| 프로그래밍 언어 | Python, Java (JDK) |
| IDE 및 편집기 | Visual Studio Code, Notepad++, PyCharm |
| 분석 및 디버깅 | IDA Free, Immunity Debugger, Ghidra |
| 익스플로잇 | Mona (Immunity용 플러그인) |
| 취약한 애플리케이션 | VulnServer, FreeFloat FTP Server |
| 네트워크 및 유틸리티 | Nmap / Ncat, Git |
첫 번째 크래시부터 실행 흐름의 완전한 제어까지, 단계별로 문서화된 전체 익스플로잇 과정.
| 단계 | 설명 |
|---|---|
| 1 | 익스플로잇 환경 준비 |
| 2 | IDA를 사용한 바이너리 정적 분석 |
| 3 | NOOP 명령 퍼징 |
| 4 | Mona를 사용한 오프셋 계산 (246 바이트) |
| 5 | 배드 캐릭터 식별 (\x00, \x0a, \x0d) |
| 6 | JMP ESP를 통한 실행 흐름 리디렉션 |
graph LR
A["Entrada controlada: NOP + buffer"] --> B["Buffer Overflow"]
B --> C["Sobrescritura de EIP"]
C --> D["EIP → dirección JMP ESP"]
D --> E["JMP ESP"]
E --> F["ESP → buffer controlado"]
F --> G["NOP sled"]
G --> H["Shellcode"]Entrada controlada (NOOP + buffer)
↓
Buffer Overflow
↓
Sobrescritura de EIP
↓
EIP → dirección de JMP ESP
↓
JMP ESP
↓
ESP → buffer controlado
↓
NOP sled
↓
Shellcode
이 연구소는 단순히 익스플로잇을 실행하는 것에 초점을 맞추지 않고, 취약점 분석 및 익스플로잇의 전체 과정을 이해하는 데 중점을 둡니다.
이 저장소는 독점적으로 교육 목적을 가집니다. 모든 분석 및 익스플로잇은 통제되고 격리된 환경에서 취약한 소프트웨어에 대해 수행됩니다. 명시적 허가 없이 이러한 기술을 시스템에 사용하지 마십시오.