Investigación de seguridad y reproducción de CVE-2025-5548: Un desbordamiento de búfer basado en pila en FreeFloat FTP Server 1.0. Incluye análisis binario, replicación de fallos y configuración del entorno para la investigación de vulnerabilidades.
Investigación profesional y desarrollo de exploits para un desbordamiento de búfer clásico basado en pila en FreeFloat FTP Server 1.0. Este laboratorio demuestra la transición desde la ingeniería inversa binaria hasta un RCE completamente funcional.
Este repositorio documenta el análisis y la explotación de CVE-2025-5548. Aunque los sistemas modernos cuentan con protecciones avanzadas, el análisis de software heredado como FreeFloat FTP sigue siendo un pilar fundamental para los investigadores de vulnerabilidades.
La investigación sigue los principios discutidos en la charla "El Camino que Conduce a tu Primer CVE", enfatizando que la ingeniería inversa de aplicaciones de escritorio antiguas es el punto de entrada más realista para principiantes en el campo.
[Fuzzing] ──► [EIP Control] ──► [Bad Char Analysis] ──► [JMP ESP Gadget] ──► [RCE]
NOOP para provocar una corrupción de memoria.\x00\x0a\x0d) que rompen el payload.JMP ESP para redirigir la ejecución a un shellcode personalizado de Metasploit.| Componente | SO / Versión | Rol |
|---|---|---|
| Servidor objetivo | Windows 10/11 (VM) | FreeFloat FTP Server 1.0 |
| Máquina atacante | Kali Linux / Windows | Entrega de exploit (Python 3) |
| Depurador | Immunity Debugger | Análisis dinámico y Mona.py |
| Desensamblador | IDA Pro 8.4 | Análisis estático e ingeniería inversa |
Nota: Todas las pruebas se realizaron en un segmento de red aislado solo host.
| Categoría | Herramientas |
|---|---|
| Ingeniería inversa | IDA Pro, Immunity Debugger |
| Explotación | Python 3 (Socket), Mona.py, Metasploit (msfvenom) |
| Metodología | Stack-based Buffer Overflow |
| Referencia | TheMalwareGuardian - CVE-2025-5548 |
| Directorio | Contenido | Estado |
|---|---|---|
| 01-Environment | Instrucciones de configuración para el laboratorio y el depurador. | ✅ Listo |
| 02-Exploitation | Metodología principal: Desarrollo de exploits paso a paso. | ✅ Listo |
| Exploits | Conjunto completo de scripts de Python (desde Fuzzing hasta Shellcode). | ✅ Listo |
| 03-Images | Documentación de crashes, offsets y gadgets. | ✅ Listo |
La vulnerabilidad existe porque el servidor procesa comandos utilizando funciones C inseguras (como strcpy) sin una validación de longitud adecuada.
// Simplified representation of the vulnerable handler
char buffer[256];
strcpy(buffer, user_input); // No bounds checking
Cuando se envía una cadena larga a través del comando NOOP, desborda el búfer local de la pila, sobrescribiendo eventualmente la dirección de retorno guardada. Al controlar esta dirección, podemos redirigir la CPU para ejecutar nuestras propias instrucciones.
Agradecimientos especiales a TheMalwareGuardian por su investigación sobre vulnerabilidades heredadas y su enfoque educativo en la investigación de vulnerabilidades.