
Exploit Python interactif sans dépendance pour la backdoor de vsftpd 2.3.4 (CVE-2011-2523).
Un petit exploit Python 3 sans dépendance pour la backdoor vsftpd 2.3.4 (CVE-2011-2523). Il déclenche la backdoor via FTP et vous place dans un shell root interactif sur le listener créé.
Écrit comme un remplaçant moderne des anciens scripts d'exploit qui dépendaient de telnetlib — retiré de la bibliothèque standard en Python 3.13. Cette version n'utilise que la bibliothèque standard et lit le shell avec select plutôt qu'un sleep fixe, afin que la sortie ne soit pas tronquée.
⚠️ Réservé à un usage autorisé. Ce script cible un service vulnérable connu et est destiné à l'éducation à la sécurité et aux environnements de laboratoire tels que Metasploitable 2. Ne l'utilisez que contre des systèmes que vous possédez ou pour lesquels vous disposez d'une autorisation écrite explicite de test.
vsftpd 2.3.4 a été distribué avec une backdoor malveillante : tout nom d'utilisateur FTP contenant la séquence :) amène le démon à lier un shell root sur TCP/6200. Le script :
vsftpd 2.3.4.USER <name>:) / PASS <anything> pour déclencher la backdoor.id; uname -a.python3 vsftpd_backdoor.py <target-ip> [-p FTP_PORT] [-s SHELL_PORT] [--skip-verify]
Exemples :
# Default: FTP on 21, backdoor shell on 6200, verify banner first
python3 vsftpd_backdoor.py 192.168.243.114
# Non-standard FTP port, skip the banner check
python3 vsftpd_backdoor.py 192.168.243.114 -p 2121 --skip-verify
Saisissez des commandes à l'invite vsftpd# ; tapez exit (ou Ctrl-C) pour quitter.
La backdoor est à usage unique par déclenchement : la première connexion au port 6200 reçoit le shell, et ce shell conserve le port tant qu'il reste ouvert. Aucune seconde connexion n'est jamais acceptée.
Conséquences pratiques :
nc et Metasploit simultanément contre la même cible — ils se disputeront l'unique emplacement de shell et vous obtiendrez des échecs déroutants (« pas de nouveau shell », connexion refusée, etc.).exit afin que le processus distant se termine et libère le port 6200. Tuer le client de manière non propre peut orpheliner le processus et laisser le port bloqué.Si le port 6200 est déjà lié (port ouvert mais aucun shell utilisable), réinitialisez la cible :
# On the target console
sudo netstat -tlnp | grep 6200
sudo kill -9 <pid>
Ou redémarrez simplement la VM pour obtenir une backdoor non déclenchée et garantie propre.
Distribué sous la licence MIT. Voir LICENSE pour plus d'informations.