
Laboratorio de análisis y explotación de la vulnerabilidad CVE-2025-5548 en FreeFloat FTP Server 1.0
Vulnerability analysis and exploitation lab · Exploit Development · Windows x86
This repository fully documents the analysis and exploitation process of the CVE-2025-5548 vulnerability, a stack-based buffer overflow present in FreeFloat FTP Server 1.0 for Windows.
The goal is not only to exploit the vulnerability, but to explain how to build an analysis lab from scratch: what tools are needed, why they are needed, and how each one is used throughout the exploitation process. The entire environment is set up manually and step by step, without automated scripts, allowing a deep understanding of each phase of the process.
CVE-2025-5548 is a buffer overflow in FreeFloat FTP Server.
The vulnerability occurs when the FTP server receives a specially crafted input via the NOOP command. By not validating the size of the received buffer, it is possible to overflow the stack, overwrite the EIP register, and redirect the execution flow to arbitrary code controlled by the attacker.
CVE-2025-5548-FreeFloat-FTP-Buffer-Overflow/
│
├── docs/
│ ├── 01_environment_setup.md ← Part 1: Environment setup
│ └── 02_exploitation.md ← Part 2: Exploitation of the vulnerability
│
├── exploits/
│ ├── exploit01.py ← Connectivity verification
│ ├── exploit02.py ← Fuzzing the NOOP command
│ ├── exploit03.py ← Sending the cyclic pattern
│ ├── exploit04.py ← Verification of EIP control
│ ├── exploit05.py ← Identification of bad characters
│ └── exploit06.py ← Final exploit with JMP ESP
│
└── images/
└── *.png ← Screenshots used in documentation
Manual installation and configuration of all necessary tools for the lab, with screenshots and an explanation of why each one is needed.
📄 View documentation → docs/01_environment_setup.md
Complete exploitation process documented phase by phase, from the first crash to full control of the execution flow.
📄 View documentation → docs/02_exploitation.md
graph LR
A["Controlled input: NOP + buffer"] --> B["Buffer Overflow"]
B --> C["EIP overwriting"]
C --> D["EIP → JMP ESP address"]
D --> E["JMP ESP"]
E --> F["ESP → controlled buffer"]
F --> G["NOP sled"]
G --> H["Shellcode"]
Controlled input (NOOP + buffer)
↓
Buffer Overflow
↓
EIP overwriting
↓
EIP → JMP ESP address
↓
JMP ESP
↓
ESP → controlled buffer
↓
NOP sled
↓
Shellcode
This lab does not focus solely on running an exploit, but on understanding the complete process of vulnerability analysis and exploitation.
This repository is for educational purposes only. All analysis and exploitation are performed on vulnerable software in a controlled and isolated environment. Do not use these techniques against systems without explicit authorization.
| Field | Detail |
|---|
| CVE | CVE-2025-5548 |
| Published | 03/06/2025 |
| Severity | Critical |
| Type | Stack-based Buffer Overflow |
| Affected Component | NOOP Command Handler |
| Affected Software | FreeFloat FTP Server 1.0 |
| Platform | Windows x86 |
| Attack Vector | Network (remote access) |
| Offset to EIP | 246 bytes |
| Bad characters | \x00 \x0a \x0d |
| JMP ESP Address | 0x7C86467B (kernel32.dll) |
| Category | Tools |
|---|
| Languages | Python, Java (JDK) |
| IDEs and editors | Visual Studio Code, Notepad++, PyCharm |
| Analysis and debugging | IDA Free, Immunity Debugger, Ghidra |
| Exploitation | Mona (plugin for Immunity) |
| Vulnerable applications | VulnServer, FreeFloat FTP Server |
| Network and utilities | Nmap / Ncat, Git |
| Phase | Description |
|---|
| 1 | Preparation of the exploitation environment |
| 2 | Static analysis of the binary with IDA |
| 3 | Fuzzing the NOOP command |
| 4 | Offset calculation with Mona (246 bytes) |
| 5 | Identification of bad characters (\x00, \x0a, \x0d) |
| 6 | Redirection of execution flow via JMP ESP |