Introduction
Dans ce laboratoire, nous allons étudier les tests d'intrusion sur les applications web, un aspect crucial de la sécurité informatique. Les applications web étant largement utilisées dans divers domaines, leur sécurité est devenue une priorité absolue. Ce laboratoire vise à fournir une expérience pratique dans l'identification et l'exploitation de vulnérabilités au sein d'une application web vulnérable hébergée sur une machine cible. L'objectif est de comprendre les vulnérabilités courantes des applications web ainsi que les techniques utilisées pour les exploiter.
Configuration de l'environnement
Dans cette étape, nous allons configurer l'environnement de laboratoire et nous familiariser avec les outils et le système cible.
Tout d'abord, nous devons obtenir l'ID de l'image Kali Linux, qui peut être affiché en double-cliquant sur le terminal xfce sur le bureau et en exécutant la commande suivante :
docker images
Nous devons démarrer le conteneur Kali Linux, qui servira de machine d'attaque. Ouvrez un terminal et exécutez la commande suivante :
docker run -ti --network host image-id bash
Cette commande lancera un nouveau conteneur Kali Linux et vous permettra d'interagir avec son shell.
Ensuite, dans un nouveau terminal, nous devons démarrer la machine cible, un système vulnérable appelé Metasploitable2. Exécutez la commande suivante pour démarrer la machine virtuelle :
sudo virsh start Metasploitable2
Attendez que la machine cible démarre, cela peut prendre de 1 à 3 minutes.
Une fois la machine virtuelle en cours d'exécution, vérifiez que vous pouvez envoyer une requête ping à la machine cible depuis le conteneur Kali Linux :
ping 192.168.122.102
Reconnaissance et collecte d'informations
Dans cette étape, nous effectuerons une phase de reconnaissance et collecterons des informations sur le système cible en utilisant diverses techniques.
Tout d'abord, nous scannons la machine cible à l'aide de l'outil nmap depuis le conteneur Kali Linux pour identifier les ports ouverts et les services en cours d'exécution :
nmap -sV -sC -oN nmap_scan.txt 192.168.122.102
Cette commande effectue un scan de connexion TCP (-sC) pour déterminer quels ports sont ouverts, ainsi qu'un scan de version (-sV) pour identifier le service et la version tournant sur chaque port ouvert. Le résultat sera enregistré dans un fichier nommé nmap_scan.txt (-oN).
Le scan peut prendre un certain temps. Une fois terminé, examinez le fichier nmap_scan.txt pour identifier les vecteurs d'attaque potentiels en fonction des ports et services ouverts à l'aide de la commande cat :
cat nmap_scan.txt
Ensuite, nous effectuerons une énumération des répertoires et des fichiers sur le serveur web cible à l'aide de l'outil gobuster :
gobuster dir -u http://192.168.122.102 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 30 -o gobuster_scan.txt
Cette commande effectue une attaque par force brute sur les répertoires et fichiers du serveur web cible en utilisant la liste de mots fournie (-w). L'option -t spécifie le nombre de threads simultanés, et l'option -o enregistre le résultat dans un fichier nommé gobuster_scan.txt.
Analysez le fichier gobuster_scan.txt pour identifier tout répertoire ou fichier intéressant susceptible de fournir des informations supplémentaires ou des vecteurs d'attaque.
Exploitation des vulnérabilités
Dans cette étape, nous tenterons d'exploiter les vulnérabilités identifiées lors de l'étape précédente.
Sur la base des informations recueillies lors des scans nmap et gobuster, identifiez les vulnérabilités potentielles du système cible. Metasploitable2 inclut l'application de formation vulnérable Mutillidae ; dans cette étape, nous testerons une page réelle de cette application au lieu d'utiliser une URL générique.
Une vulnérabilité courante dans les applications web est l'injection SQL. La page user-info.php de Mutillidae accepte le paramètre username dans la chaîne de requête, ce qui nous donne une cible concrète pour sqlmap à l'intérieur du conteneur Kali Linux.
sqlmap -u "http://192.168.122.102/mutillidae/index.php?page=user-info.php&username=admin&password=admin&user-info-php-submit-button=View+Account+Details" -p username --batch --risk=3 --level=5 --random-agent --dbs
Cette commande teste un point de terminaison Mutillidae réel sur la machine virtuelle cible. L'option -u fournit l'URL vulnérable complète, -p username indique à sqlmap quel paramètre cibler, --batch exécute l'outil de manière non interactive, --risk=3 et --level=5 permettent des tests plus approfondis, --random-agent fait varier la chaîne user-agent, et --dbs demande à sqlmap d'énumérer les noms des bases de données si l'exploitation réussit.
Selon la vulnérabilité que vous tentez d'exploiter, vous devrez peut-être utiliser différents outils ou techniques. Reportez-vous à la documentation et aux ressources spécifiques à la vulnérabilité et à l'outil concernés.
Post-exploitation et élévation de privilèges
Dans cette étape, nous utiliserons l'exposition de service découverte lors de la reconnaissance pour confirmer l'accès au shell sur le système cible et capturer des preuves de base de post-exploitation.
Le scan nmap de Metasploitable2 montre généralement que le port TCP 1524 est ouvert. Sur cette machine virtuelle, ce service fournit un shell root ; nous pouvons donc nous y connecter directement depuis le conteneur Kali Linux sans supposer qu'un reverse shell séparé existe déjà.
Exécutez la commande suivante dans le conteneur Kali Linux :
printf 'id\nuname -a\nexit\n' | nc 192.168.122.102 1524
Cela envoie trois commandes au service shell exposé sur la machine virtuelle cible. La commande id confirme le compte sous lequel le service vous connecte, uname -a enregistre les informations du noyau, et exit ferme proprement le shell après l'affichage du résultat dans votre terminal.
Si la connexion fonctionne, vous devriez voir un résultat incluant uid=0(root) et les détails du noyau de Metasploitable2. Ce résultat suffit à démontrer un accès shell réussi lors de la phase de post-exploitation.
Dans une évaluation réelle, vous documenteriez ce service exposé comme une découverte critique, car il accorde un accès privilégié immédiat sans nécessiter de chaîne d'exploitation supplémentaire.
Résumé
Dans ce laboratoire, nous avons étudié les tests d'intrusion sur les applications web et acquis une expérience pratique dans l'identification et l'exploitation de vulnérabilités sur une machine cible. Nous avons couvert la reconnaissance, l'énumération d'applications web, les tests d'injection SQL avec sqlmap et la validation de base de la post-exploitation.
Le laboratoire a fourni un environnement contrôlé pour pratiquer des scénarios réels et développer des compétences en sécurité des applications web. En suivant ces étapes, nous avons appris à configurer l'environnement, à effectuer la reconnaissance et la collecte d'informations, à tester un point de terminaison Mutillidae réel pour l'injection SQL, et à confirmer l'accès shell via un service exposé sur le système cible.
Ce laboratoire nous a dotés de connaissances pratiques et d'une expérience en tests d'intrusion web, essentielles pour sécuriser les applications et identifier les vulnérabilités potentielles avant qu'elles ne soient exploitées par des acteurs malveillants.



