Introduction
Bienvenue dans ce laboratoire sur l'analyse de serveur web avec Nikto.
Nikto est un scanner de vulnérabilités de serveurs web open-source largement utilisé. Il effectue des tests complets sur les serveurs web pour une multitude d'éléments, notamment plus de 6 700 fichiers et programmes potentiellement dangereux, vérifie les versions obsolètes de plus de 1 250 serveurs et identifie les problèmes spécifiques aux versions. Bien que Nikto ne soit pas conçu pour être furtif (il est assez « bruyant » et facilement détecté par les systèmes de détection d'intrusion), il est incroyablement rapide et efficace pour les audits de sécurité de base.
Nikto est mieux compris comme un auditeur rapide en largeur. Il vous aide à identifier rapidement les problèmes évidents des serveurs web, mais il ne remplace pas une vérification manuelle minutieuse. Son caractère bruyant est le compromis nécessaire pour cette exhaustivité.
Dans ce laboratoire, vous apprendrez à utiliser Nikto pour scanner un serveur web local, à ajuster vos scans pour vous concentrer sur des vulnérabilités spécifiques, à enregistrer vos résultats dans des rapports structurés et à analyser les découvertes pour améliorer la sécurité du serveur.
Exécuter un scan Nikto de base
Dans cette étape, vous apprendrez à effectuer un scan de vulnérabilités de base sur un serveur web cible à l'aide de Nikto.
Pour ce laboratoire, un serveur web Apache local a déjà été installé et démarré dans votre environnement. Ce serveur servira de cible. Nikto s'utilise via la ligne de commande, et son utilisation la plus fondamentale ne nécessite que l'indicateur -h (host) suivi de l'adresse IP ou du nom de domaine de la cible.
Pour lancer un scan de base sur votre serveur web local, exécutez la commande suivante dans votre terminal :
nikto -h http://localhost
À ce stade, l'objectif est d'établir une base de référence des faiblesses et des erreurs de configuration visibles, et non de prouver l'exploitabilité de chaque élément signalé.
Une fois la commande exécutée, Nikto commencera à sonder le serveur web. Vous verrez des résultats s'afficher à l'écran au fur et à mesure que Nikto découvre des informations.
- Nikto v2.1.5
---------------------------------------------------------------------------
+ Target IP: 127.0.0.1
+ Target Hostname: localhost
+ Target Port: 80
+ Start Time: 2026-10-25 10:00:00 (GMT0)
---------------------------------------------------------------------------
+ Server: Apache/2.4.52 (Ubuntu)
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-XSS-Protection header is not defined.
+ The X-Content-Type-Options header is not set.
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ /admin.txt: This might be interesting...
+ /info.php: Output from the phpinfo() function was found.
+ 8000 requests: 0 error(s) and 6 item(s) reported on remote host
+ End Time: 2026-10-25 10:00:15 (GMT0) (15 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
La sortie fournit une mine d'informations. Elle identifie la version du logiciel serveur (Apache/2.4.52), signale les en-têtes de sécurité manquants (comme X-Frame-Options) et met en évidence des fichiers potentiellement sensibles laissés sur le serveur, tels que /admin.txt et /info.php.
Ignorer les faux positifs (Ajustement)
Dans cette étape, vous apprendrez à ajuster vos scans Nikto.
Comme Nikto vérifie des milliers de problèmes potentiels, un scan par défaut peut parfois prendre beaucoup de temps et produire beaucoup de « bruit » ou de faux positifs. Pour rendre vos scans plus rapides et plus ciblés, Nikto propose l'indicateur -Tuning.
C'est un bon rappel que la qualité des résultats d'un scanner dépend de son périmètre. Réduire les catégories de test améliore souvent l'utilité des résultats.
L'indicateur -Tuning vous permet de spécifier exactement quelles catégories de tests vous souhaitez exécuter. Chaque catégorie est représentée par un chiffre ou une lettre. Par exemple :
1- Fichier intéressant / Vu dans les logs2- Mauvaise configuration / Fichier par défaut3- Divulgation d'informations4- Injection (XSS/Script/HTML)9- Injection SQL
Si vous souhaitez uniquement vérifier les mauvaises configurations (2) et la divulgation d'informations (3), vous pouvez combiner ces chiffres.
Exécutez la commande suivante pour effectuer un scan ajusté qui ne recherche que les mauvaises configurations et la divulgation d'informations :
nikto -h http://localhost -Tuning 23
Vous remarquerez que ce scan se termine beaucoup plus rapidement que le scan de base car il ignore des centaines de tests non pertinents, tels que les injections SQL ou les tests de déni de service.
- Nikto v2.1.5
---------------------------------------------------------------------------
+ Target IP: 127.0.0.1
+ Target Hostname: localhost
+ Target Port: 80
+ Start Time: 2026-10-25 10:05:00 (GMT0)
---------------------------------------------------------------------------
+ Server: Apache/2.4.52 (Ubuntu)
+ /admin.txt: This might be interesting...
+ /info.php: Output from the phpinfo() function was found.
+ 1500 requests: 0 error(s) and 3 item(s) reported on remote host
+ End Time: 2026-10-25 10:05:03 (GMT0) (3 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
En utilisant l'indicateur -Tuning, vous pouvez adapter Nikto à vos besoins d'audit spécifiques, ce qui permet de gagner du temps et de réduire l'encombrement des rapports.
Enregistrer la sortie dans un rapport
Dans cette étape, vous apprendrez à enregistrer les résultats de votre scan Nikto dans un fichier de rapport structuré.
Lors de la réalisation d'audits de sécurité professionnels, il est essentiel de conserver des traces de vos découvertes. Lire les résultats directement depuis le terminal est utile pour des vérifications rapides, mais partager les conclusions avec une équipe nécessite un document approprié. Nikto prend en charge l'enregistrement de la sortie dans plusieurs formats, notamment HTML, CSV, XML et texte brut.
Pour enregistrer un rapport, vous devez utiliser deux indicateurs :
-o(ou-output) : Spécifie le chemin et le nom du fichier où le rapport sera enregistré.-Format: Spécifie le format du rapport (par exemple,htm,csv,xml,txt).
Lançons un scan et enregistrons la sortie sous forme de fichier HTML dans votre répertoire de projet. Exécutez la commande suivante :
nikto -h http://localhost -Format htm -o /home/labex/project/report.html
Pendant que le scan s'exécute, vous verrez toujours la sortie standard dans votre terminal. Une fois le scan terminé, Nikto générera le fichier HTML au chemin que vous avez spécifié.
Vous pouvez vérifier que le fichier a été créé avec succès en listant le contenu de votre répertoire actuel :
ls -l /home/labex/project/report.html
-rw-r--r-- 1 root root 4521 Oct 25 10:10 /home/labex/project/report.html
Ce rapport HTML pourra être téléchargé et ouvert dans n'importe quel navigateur web standard, offrant une vue tabulaire claire de toutes les vulnérabilités découvertes.
Analyser le rapport de vulnérabilité Nikto
Dans cette dernière étape, vous apprendrez à analyser rapidement le rapport généré à l'aide d'outils en ligne de commande.
Bien que les rapports HTML soient parfaits pour une consultation dans un navigateur, vous vous retrouverez souvent à travailler uniquement dans un environnement de terminal sans interface graphique. Dans ce cas, vous pouvez utiliser des outils de traitement de texte Linux standard comme grep pour extraire des informations spécifiques de vos rapports.
Recherchons dans le rapport HTML que nous avons généré à l'étape précédente si Nikto a bien documenté la divulgation d'informations sur le statut du serveur Apache.
Utilisez la commande grep pour rechercher le mot « server-status » dans votre rapport :
grep "server-status" /home/labex/project/report.html
<td>/server-status: This reveals Apache information. Comment out appropriate line in httpd.conf or restrict access to allowed hosts.</td>
Ensuite, vérifions si le rapport a capturé l'en-tête de sécurité X-Frame-Options manquant. Cet en-tête est crucial pour prévenir les attaques par clickjacking.
grep "X-Frame-Options" /home/labex/project/report.html
<td>The anti-clickjacking X-Frame-Options header is not present.</td>
En combinant les capacités de rapport de Nikto avec les utilitaires en ligne de commande Linux, vous pouvez analyser rapidement de grands scans de vulnérabilités, extraire les conclusions critiques et commencer le processus de sécurisation de votre serveur web.
Résumé
Félicitations ! Vous avez terminé avec succès le laboratoire sur l'analyse de serveur web avec Nikto.
Dans ce laboratoire, vous avez appris à :
- Exécuter un scan de vulnérabilités de base sur un serveur web cible à l'aide de Nikto.
- Utiliser l'indicateur
-Tuningpour concentrer vos scans sur des catégories spécifiques de vulnérabilités, réduisant ainsi les faux positifs et le temps de scan. - Exporter vos résultats de scan dans un rapport HTML structuré pour la documentation et le partage.
- Analyser le rapport généré à l'aide d'outils en ligne de commande comme
greppour identifier rapidement les failles de sécurité critiques.
Ces compétences constituent une base solide pour mener des évaluations de sécurité initiales et rapides de l'infrastructure web.



