Recherche en sécurité et reproduction de CVE-2025-5548 : un débordement de tampon basé sur la pile dans FreeFloat FTP Server 1.0. Comprend l'analyse binaire, la reproduction du crash et la configuration de l'environnement pour la recherche de vulnérabilités.
Recherche professionnelle et développement d'exploit pour un dépassement de tampon classique basé sur la pile dans le serveur FTP FreeFloat 1.0. Ce laboratoire démontre la transition entre le rétro-ingénierie binaire et un RCE pleinement fonctionnel.
Ce référentiel documente l'analyse et l'exploitation de la CVE-2025-5548. Bien que les systèmes modernes disposent de protections avancées, l'analyse de logiciels hérités comme FreeFloat FTP reste un pilier fondamental pour les chercheurs en vulnérabilités.
La recherche suit les principes abordés dans la présentation « The Path That Leads to Your First CVE », soulignant que le rétro-ingénierie d'anciennes applications de bureau constitue le point d'entrée le plus réaliste pour les débutants dans le domaine.
[Fuzzing] ──► [Contrôle EIP] ──► [Analyse des caractères interdits] ──► [Gadget JMP ESP] ──► [RCE]
NOOP pour déclencher une corruption mémoire.\x00\x0a\x0d) qui cassent la charge utile.JMP ESP pour rediriger l'exécution vers un shellcode Metasploit personnalisé.| Composant | OS / Version | Rôle |
|---|---|---|
| Serveur cible | Windows 10/11 (VM) | FreeFloat FTP Server 1.0 |
| Machine attaquante | Kali Linux / Windows | Distribution de l'exploit (Python 3) |
| Débogueur | Immunity Debugger | Analyse dynamique et Mona.py |
| Désassembleur | IDA Pro 8.4 | Analyse statique et rétro-ingénierie |
Remarque : Tous les tests ont été réalisés dans un segment réseau isolé de type host-only.
| Catégorie | Outils |
|---|---|
| Rétro-ingénierie | IDA Pro, Immunity Debugger |
| Exploitation | Python 3 (Socket), Mona.py, Metasploit (msfvenom) |
| Méthodologie | Dépassement de tampon basé sur la pile |
| Référence | TheMalwareGuardian - CVE-2025-5548 |
| Répertoire | Contenu | Statut |
|---|---|---|
| 01-Environment | Instructions de configuration du laboratoire et du débogueur. | ✅ Prêt |
| 02-Exploitation | Méthodologie principale : développement pas à pas de l'exploit. | ✅ Prêt |
| Exploits | Suite complète de scripts Python (du fuzzing au shellcode). | ✅ Prêt |
| 03-Images | Documentation des crashes, offsets et gadgets. | ✅ Prêt |
La vulnérabilité existe parce que le serveur traite les commandes à l'aide de fonctions C non sûres (comme strcpy) sans validation appropriée de la longueur.
// Représentation simplifiée du gestionnaire vulnérable
char buffer[256];
strcpy(buffer, user_input); // Aucune vérification des limites
Lorsqu'une chaîne longue est envoyée via la commande NOOP, elle fait déborder le tampon local de la pile, écrasant finalement l'adresse de retour sauvegardée. En contrôlant cette adresse, nous pouvons rediriger le processeur pour exécuter nos propres instructions.
Un merci tout particulier à TheMalwareGuardian pour ses recherches sur les vulnérabilités héritées et son approche pédagogique de la recherche de vulnérabilités.