Introduction
Dans cet atelier, vous allez apprendre à utiliser Nikto, un scanner de serveurs Web open-source, pour détecter des vulnérabilités potentielles. Vous installerez Nikto, scannerez un serveur Web de test, enregistrerez les résultats et analyserez les conclusions pour identifier les faiblesses de sécurité. Cette pratique concrète vous apportera les compétences fondamentales pour l'évaluation de la sécurité Web.
Installer et vérifier Nikto
Avant de pouvoir rechercher des vulnérabilités, vous devez installer l'outil Nikto. Cette étape vous guidera dans la mise à jour de la liste des paquets de votre système et l'installation de Nikto à l'aide du gestionnaire de paquets apt. Toutes les commandes seront exécutées dans le terminal. Votre répertoire de travail par défaut est /home/labex/project.
Tout d'abord, mettez à jour la liste des paquets pour vous assurer d'obtenir la version la plus récente des logiciels disponibles dans les dépôts.
sudo apt update
Ensuite, installez Nikto. L'option -y confirme automatiquement l'installation, vous évitant ainsi d'avoir à taper manuellement 'Y'.
sudo apt install -y nikto
Une fois l'installation terminée, il est recommandé de vérifier que l'outil a été correctement installé. Vous pouvez le faire en consultant sa version.
nikto -Version
Vous devriez voir un affichage indiquant le numéro de version de Nikto, semblable à celui-ci. La version exacte peut varier.
---------------------------------------------------------------------------
- Nikto v2.5.0
---------------------------------------------------------------------------
Nikto étant correctement installé, vous êtes maintenant prêt à procéder au scan d'un serveur Web.
Effectuer un scan de base
Maintenant que Nikto est installé, votre prochaine étape consiste à lancer un scan de base contre un serveur Web cible. Pour cet atelier, un serveur Web de test est déjà en cours d'exécution dans votre environnement. Avant de scanner, vous devez toujours confirmer que la cible est en ligne et accessible.
Tout d'abord, vérifiez que le serveur Web cible fonctionne. Nous utiliserons curl avec l'option -I pour récupérer uniquement les en-têtes HTTP du serveur. La cible pour cet atelier est http://localhost:8000.
curl -I http://localhost:8000
Une réponse réussie inclura la ligne HTTP/1.0 200 OK, ce qui indique que le serveur est actif et prêt à accepter des requêtes.
HTTP/1.0 200 OK
Server: SimpleHTTP/0.6 Python/3.10.12
Date: ...
Content-type: text/html
Content-Length: 71
À présent, lancez votre premier scan Nikto. Utilisez l'option -h (ou -host) pour spécifier votre cible.
nikto -h http://localhost:8000
Nikto commencera à scanner la cible. Vous verrez les résultats s'afficher en temps réel dans votre terminal au fur et à mesure qu'il effectue divers tests. Le scan débutera par des informations sur la cible, puis listera toutes les vulnérabilités potentielles détectées.
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP: 127.0.0.1
+ Target Hostname: localhost
+ Target Port: 8000
+ Start Time: ...
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.12
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type.
...
+ 1 host(s) tested
Vous venez d'effectuer un scan de base de serveur Web. Dans l'étape suivante, vous apprendrez comment enregistrer ces résultats pour une analyse ultérieure.
Enregistrer les résultats du scan dans un fichier
Lancer un scan et visualiser la sortie dans le terminal est utile pour une vérification rapide, mais pour des évaluations professionnelles, vous devez impérativement sauvegarder les résultats. Un rapport enregistré sert de trace des découvertes et peut être partagé avec d'autres personnes pour correction.
Nikto vous permet d'enregistrer les résultats du scan dans différents formats. Dans cette étape, vous allez enregistrer le rapport sous forme de fichier texte brut. Utilisez l'option -o (ou -output) pour spécifier un fichier de sortie.
Lancez à nouveau le scan, en dirigeant cette fois la sortie vers un fichier nommé nikto_report.txt.
nikto -h http://localhost:8000 -o nikto_report.txt
Le scan s'exécutera comme précédemment, mais cette fois, en plus d'afficher les résultats à l'écran, il les enregistrera dans le fichier spécifié dans votre répertoire actuel (/home/labex/project).
Une fois le scan terminé, vérifiez que le fichier de rapport a bien été créé à l'aide de la commande ls -l, qui liste les fichiers et leurs détails.
ls -l nikto_report.txt
Vous devriez voir votre nouveau fichier de rapport listé, avec une taille supérieure à zéro.
-rw-rw-r-- 1 labex labex 1234 ... nikto_report.txt
Pour confirmer rapidement le contenu du fichier, vous pouvez visualiser les 20 premières lignes à l'aide de la commande head.
head -n 20 nikto_report.txt
Cela affichera le début du rapport, qui comprend le résumé du scan et les premières découvertes. Vous disposez désormais d'une trace permanente de votre scan.
Analyser le rapport de scan
Une fois les résultats du scan enregistrés, la dernière étape consiste à analyser le rapport pour comprendre les vulnérabilités identifiées. Cela implique de lire le rapport et de le filtrer pour mettre en évidence les informations les plus importantes.
Tout d'abord, vous pouvez consulter l'intégralité du rapport à l'aide de la commande cat. C'est utile pour obtenir une vue d'ensemble complète de toutes les informations recueillies par Nikto.
cat nikto_report.txt
Un rapport complet peut être long, il est donc souvent plus efficace de le filtrer. Nikto utilise le symbole + au début d'une ligne pour indiquer une découverte intéressante ou une vulnérabilité potentielle. Vous pouvez utiliser la commande grep pour n'afficher que ces lignes.
grep '+' nikto_report.txt
Cette commande filtrera le rapport et vous montrera une liste concise de tous les éléments signalés par Nikto.
+ Target Host: localhost
+ Target Port: 8000
+ GET /: The anti-clickjacking X-Frame-Options header is not present.
+ HEAD /: SimpleHTTP/0.6 appears to be outdated (current is at least 1.2)
Lors de l'examen de ces résultats, portez une attention particulière aux descriptions indiquant des erreurs de configuration (comme des en-têtes de sécurité manquants) ou la présence de fichiers sensibles. Chaque découverte constitue un point de départ pour une investigation plus approfondie.
Résumé
Dans cet atelier, vous avez installé Nikto avec succès et effectué un scan de vulnérabilités sur un serveur Web cible. Vous avez appris à exécuter un scan, à enregistrer les résultats dans un fichier de rapport et à analyser ces résultats pour identifier des problèmes de sécurité potentiels. Ces compétences fondamentales, incluant l'installation d'outils de sécurité, l'exécution de scans et l'interprétation de rapports, sont essentielles pour toute personne débutant en cybersécurité et en tests d'intrusion.



