Laboratoire d'analyse et d'exploitation de la vulnérabilité CVE-2025-5548 dans FreeFloat FTP Server 1.0
Laboratoire d'analyse et d'exploitation de vulnérabilités · Exploit Development · Windows x86
Ce dépôt documente de manière complète le processus d'analyse et d'exploitation de la vulnérabilité CVE-2025-5548, un stack-based buffer overflow présent dans FreeFloat FTP Server 1.0 pour Windows.
L'objectif n'est pas seulement d'exploiter la vulnérabilité, mais d'expliquer comment construire un laboratoire d'analyse à partir de zéro : quels outils sont nécessaires, pourquoi ils le sont, et comment chacun est utilisé tout au long du processus d'exploitation. Tout l'environnement est monté , sans scripts automatisés, ce qui permet de comprendre en profondeur chaque phase du processus.
CVE-2025-5548 est un buffer overflow dans FreeFloat FTP Server.
| Champ | Détail |
|---|---|
| CVE | CVE-2025-5548 |
| Publié | 03/06/2025 |
| Sévérité | Critique |
| Type | Stack-based Buffer Overflow |
| Composant affecté | Gestionnaire de commande NOOP |
| Logiciel affecté | FreeFloat FTP Server 1.0 |
| Plateforme | Windows x86 |
| Vecteur d'attaque | Réseau (accès distant) |
| Offset jusqu'à EIP | 246 octets |
| Bad characters | \x00 \x0a \x0d |
| Adresse JMP ESP | 0x7C86467B (kernel32.dll) |
La vulnérabilité se produit lorsque le serveur FTP reçoit une entrée spécialement conçue via la commande NOOP. En ne validant pas la taille du tampon reçu, il est possible de déborder la pile, d'écraser le registre EIP et de rediriger le flux d'exécution vers du code arbitraire contrôlé par l'attaquant.
CVE-2025-5548-FreeFloat-FTP-Buffer-Overflow/
│
├── docs/
│ ├── 01_environment_setup.md ← Partie 1 : Préparation de l'environnement
│ └── 02_exploitation.md ← Partie 2 : Exploitation de la vulnérabilité
│
├── exploits/
│ ├── exploit01.py ← Vérification de la connectivité
│ ├── exploit02.py ← Fuzzing de la commande NOOP
│ ├── exploit03.py ← Envoi du motif cyclique
│ ├── exploit04.py ← Vérification du contrôle de l'EIP
│ ├── exploit05.py ← Identification des bad characters
│ └── exploit06.py ← Exploit final avec JMP ESP
│
└── images/
└── *.png ← Captures d'écran utilisées dans la documentation
Installation et configuration manuelle de tous les outils nécessaires au laboratoire, avec captures d'écran et explication de pourquoi chacun est requis.
| Catégorie | Outils |
|---|---|
| Langages | Python, Java (JDK) |
| IDE et éditeurs | Visual Studio Code, Notepad++, PyCharm |
| Analyse et débogage | IDA Free, Immunity Debugger, Ghidra |
| Exploitation | Mona (plugin pour Immunity) |
| Applications vulnérables | VulnServer, FreeFloat FTP Server |
| Réseau et utilitaires | Nmap / Ncat, Git |
Processus complet d'exploitation documenté phase par phase, du premier crash jusqu'au contrôle total du flux d'exécution.
| Phase | Description |
|---|---|
| 1 | Préparation de l'environnement d'exploitation |
| 2 | Analyse statique du binaire avec IDA |
| 3 | Fuzzing de la commande NOOP |
| 4 | Calcul de l'offset avec Mona (246 octets) |
| 5 | Identification des bad characters (\x00, \x0a, \x0d) |
| 6 | Redirection du flux d'exécution via JMP ESP |
graph LR
A["Entrée contrôlée : NOP + buffer"] --> B["Buffer Overflow"]
B --> C["Écriture de l'EIP"]
C --> D["EIP → adresse JMP ESP"]
D --> E["JMP ESP"]
E --> F["ESP → buffer contrôlé"]
F --> G["NOP sled"]
G --> H["Shellcode"]Entrée contrôlée (NOOP + buffer)
↓
Buffer Overflow
↓
Écriture de l'EIP
↓
EIP → adresse de JMP ESP
↓
JMP ESP
↓
ESP → buffer contrôlé
↓
NOP sled
↓
Shellcode
Ce laboratoire ne se concentre pas uniquement sur l'exécution d'un exploit, mais sur la compréhension du processus complet d'analyse et d'exploitation des vulnérabilités.
Ce dépôt a des fins exclusivement éducatives. Toute l'analyse et l'exploitation sont réalisées sur un logiciel vulnérable dans un environnement contrôlé et isolé. N'utilisez pas ces techniques contre des systèmes sans autorisation expresse.