Introduction
Bienvenue dans ce laboratoire sur l'énumération de serveurs web et l'accès basique aux fichiers. Dans cet exercice, vous apprendrez les techniques fondamentales de reconnaissance web utilisées pour découvrir et interagir avec les services web.
Dans ce laboratoire, vous simulerez un scénario de reconnaissance web basique. Vous commencerez par effectuer une reconnaissance sur un système cible afin de confirmer sa présence en ligne et d'identifier les services en cours d'exécution. En utilisant l'outil nmap, vous découvrirez un serveur web et énumérerez sa version. Vous utiliserez ensuite la commande curl pour accéder à un fichier drapeau (flag) qui a été placé sur le serveur web.
Une fois terminé, vous comprendrez comment :
- Vérifier la connectivité réseau à l'aide de
ping. - Utiliser
nmappour scanner les services web et effectuer une énumération. - Comprendre les techniques de reconnaissance web basiques.
- Utiliser
curlpour accéder à des fichiers sur un serveur web et récupérer un drapeau (flag).
Commençons.
Vérifier la Connectivité à la Cible avec Ping
Dans cette étape, vous commencerez par confirmer que le système cible est accessible depuis votre machine. La commande ping est un utilitaire standard pour tester la connectivité réseau. Elle envoie des paquets ICMP Echo Request à un hôte et attend les réponses. C'est la première et la plus basique des étapes dans toute tâche de reconnaissance réseau.
Votre environnement comprend un système cible accessible avec le nom d'hôte target.
Exécutez la commande suivante dans le terminal pour envoyer quatre paquets à la target :
ping -c 4 target
Vous devriez voir une sortie confirmant que quatre paquets ont été envoyés et quatre ont été reçus, indiquant une connexion stable. L'adresse IP peut différer, mais le résultat devrait montrer une perte de paquets de 0 %.
PING target (172.17.0.2) 56(84) bytes of data.
64 bytes from target (172.17.0.2): icmp_seq=1 ttl=64 time=0.105 ms
64 bytes from target (172.17.0.2): icmp_seq=2 ttl=64 time=0.069 ms
64 bytes from target (172.17.0.2): icmp_seq=3 ttl=64 time=0.068 ms
64 bytes from target (172.17.0.2): icmp_seq=4 ttl=64 time=0.067 ms
--- target ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3075ms
rtt min/avg/max/mdev = 0.067/0.077/0.105/0.016 ms
La connectivité étant confirmée, vous êtes prêt à passer au scan de la cible.
Scanner les Ports Ouverts avec Nmap
Dans cette étape, vous utiliserez nmap pour scanner la cible à la recherche de ports ouverts et identifier les services qui y tournent. Nmap est un outil puissant pour l'exploration réseau et l'audit de sécurité. Ce scan vous aidera à trouver des points d'entrée potentiels, tels qu'un serveur web.
Nous allons effectuer un scan ciblé sur le port 80, le port standard pour le trafic HTTP. Nous utiliserons également des scripts pour collecter plus d'informations sur le service.
Exécutez la commande nmap suivante dans votre terminal :
nmap -sV -p 80 --script http-enum target
Analysons cette commande :
-sV: Active la détection de version, qui tente de déterminer la version du service exécuté sur le port.-p 80: Spécifie que nous voulons uniquement scanner le port 80.--script http-enum: Exécute un script qui énumère les répertoires et les fichiers sur le serveur web.target: Le nom d'hôte de notre machine cible.
La sortie ressemblera à ceci :
Starting Nmap 7.80 ( https://nmap.org ) at 2025-09-18 09:40 CST
Nmap scan report for target (172.17.0.2)
Host is up (0.00018s latency).
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.41 ((Unix))
|_http-server-header: Apache/2.4.41 (Unix)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.32 seconds
Les résultats du scan confirment que le port 80/tcp est ouvert et exécute Apache httpd 2.4.41. Ce serveur web héberge des fichiers auxquels nous pouvons accéder à l'étape suivante.
Se Connecter à la Cible via HTTP
Dans cette étape, vous interagirez avec le serveur web en utilisant curl pour accéder aux fichiers. curl est un outil en ligne de commande pour transférer des données avec des URL.
Tout d'abord, effectuons une requête standard à la page principale du serveur web pour voir à quoi elle ressemble.
curl http://target
Le serveur devrait répondre avec le contenu de la page par défaut d'Apache.
<html>
<body>
<h1>It works!</h1>
</body>
</html>
Maintenant, accédons au fichier flag qui a été placé dans le répertoire racine du serveur web. Bien que le fichier soit directement accessible dans cette configuration, démontrons comment vous y accéderiez typiquement :
curl http://target/flag.txt
Cette commande récupérera le fichier flag directement depuis la racine du document du serveur web.
Explorer le Système Cible et Localiser le Flag
Dans cette dernière étape, vous récupérerez et visualiserez le drapeau (flag). La sortie de la commande curl précédente devrait avoir affiché le drapeau directement dans votre terminal.
La sortie attendue de la commande est le contenu du fichier flag :
labex{p4th_tr4v3rs4l_w1zardry}
Si la sortie est longue ou si vous souhaitez l'enregistrer pour plus tard, vous pouvez rediriger la sortie de la commande curl vers un fichier. C'est une pratique courante lorsque l'on traite des fichiers plus volumineux.
Exécutez à nouveau la commande, mais cette fois, enregistrez le résultat dans un fichier nommé flag.txt :
curl http://target/flag.txt > flag.txt
Maintenant, vous pouvez afficher le contenu du fichier téléchargé en utilisant la commande cat :
cat flag.txt
Le terminal affichera le drapeau :
labex{p4th_tr4v3rs4l_w1zardry}
Félicitations ! Vous avez identifié avec succès un serveur web, accédé au fichier flag et capturé le drapeau. Copiez la valeur du drapeau pour terminer le laboratoire.
Résumé
Dans ce laboratoire, vous avez mené à bien un exercice de reconnaissance web de base. Vous avez appris et pratiqué les compétences suivantes :
- Reconnaissance : Vous avez utilisé
pingpour vérifier que la cible était en ligne et accessible. - Énumération : Vous avez utilisé
nmapavec la détection de version (-sV) et le scripting (--script http-enum) pour identifier un port HTTP ouvert et la version spécifique du serveur web Apache. - Accès aux fichiers : Vous avez utilisé
curlpour accéder aux fichiers sur le serveur web. - Récupération du drapeau : Vous avez réussi à récupérer le fichier flag depuis le serveur web.
Cet exercice démontre des techniques de reconnaissance web de base qui sont fondamentales pour comprendre le fonctionnement des serveurs web et comment interagir avec eux par programmation. Ces compétences sont essentielles pour le développement web, l'administration système et les tests de sécurité.



