Laboratoire structuré pour l'exploitation contrôlée de CVE-2025-5548 (FreeFloat FTP Server). Comprend la configuration de l'environnement, le fuzzing, le contrôle de l'EIP, la détection des badchars, la redirection JMP ESP, et la livraison finale du shellcode via des scripts Python.
Dépôt de laboratoire orienté vers l'exploitation contrôlée du CVE-2025-5548 sur FreeFloat FTP Server, sous environnement Windows et dans une VM isolée.
Le projet est divisé en deux blocs :
Environment/ : préparation de l'environnement (outils, IDE, débogueur, désassembleur et applications vulnérables).Exploit/ : méthodologie pratique et scripts pour une chaîne complète d'exploitation du vecteur FTP (MKD) associé au scénario du CVE.Construire, valider et documenter une chaîne d'exploitation reproductible qui couvre :
JMP ESP.M6/
├── README.md
├── Environment/
│ ├── 01-requirements/
│ │ └── requirements.md
│ ├── 02-programming-environment/
│ │ ├── git.md
│ │ ├── java-jdk.md
│ │ ├── netcat.md
│ │ └── python3.md
│ ├── 03-ides/
│ │ ├── notepad++.md
│ │ ├── pycharm.md
│ │ └── vscode.md
│ ├── 04-debuggers/
│ │ └── immunity-debugger.md
│ ├── 05-disassemblers/
│ │ ├── ghidra.md
│ │ └── ida-free.md
│ ├── 06-exploit-development/
│ │ └── mona-immunity.md
│ ├── 07-vulnerable-applications/
│ │ ├── freefloatftpserver.md
│ │ └── vulnserver.md
│ └── images/
│ └── README.md
└── Exploit/
├── metodologia-analisis.md
├── Scripts/
│ ├── 01_check_connection.py
│ ├── 02_fuzz_trun.py
│ ├── 03_send_pattern.py
│ ├── 04_verify_eip_control.py
│ ├── 05_send_badchars.py
│ ├── 06_test_jmp_esp.py
│ └── 07_final_payload.py
└── images/
| Bloc | Ressource |
|---|---|
| Prérequis | requirements.md |
| Programmation | git.md, java-jdk.md, netcat.md, python3.md |
| IDE | notepad++.md, pycharm.md, vscode.md |
| Débogueur | immunity-debugger.md |
| Désassembleurs | ghidra.md, ida-free.md |
| Outils d'exploitation | mona-immunity.md |
| Applications vulnérables | freefloatftpserver.md, vulnserver.md |
Méthodologie complète : metodologia-analisis.md
Scripts actuels :
01_check_connection.py : valide la connectivité et la bannière du service.02_fuzz_trun.py : fuzzing incrémental de la commande MKD.03_send_pattern.py : envoi d'un motif cyclique généré par Mona.04_verify_eip_control.py : validation du contrôle de l'EIP (BBBB).05_send_badchars.py : envoi de bytearray.bin pour détecter les badchars.06_test_jmp_esp.py : test de retour avec adresse JMP ESP.07_final_payload.py : envoi du payload final avec shellcode.127.0.0.1:21.Ce laboratoire est conçu pour l'apprentissage technique, la validation de contrôles et les tests autorisés dans votre propre environnement. Il ne doit pas être utilisé sur des systèmes sans autorisation explicite.
Depuis la racine du dépôt :
cd Exploit
python .\Scripts\01_check_connection.py
python .\Scripts\02_fuzz_trun.py
python .\Scripts\03_send_pattern.py
python .\Scripts\04_verify_eip_control.py
python .\Scripts\05_send_badchars.py
python .\Scripts\06_test_jmp_esp.py
python .\Scripts\07_final_payload.py
Note : pour 03_send_pattern.py et 05_send_badchars.py, vous devez avoir configuré Mona et les fichiers dans C:\mona\.