Introduction
Nikto est un scanner de serveurs web open-source populaire qui effectue des tests complets sur les serveurs web pour plusieurs éléments, notamment plus de 6700 fichiers/programmes potentiellement dangereux, des vérifications de versions obsolètes pour plus de 1250 serveurs, et des problèmes spécifiques à la version sur plus de 270 serveurs.
Bien qu'un scan par défaut soit complet, il peut également être long et générer beaucoup de sorties. Pour des évaluations plus ciblées, Nikto propose l'option -Tuning. Cette fonctionnalité vous permet de spécifier les types de tests à exécuter, rendant vos scans plus rapides et plus ciblés.
Dans ce laboratoire, vous apprendrez à utiliser l'option -Tuning pour contrôler le comportement des scans de Nikto. Vous pratiquerez l'exécution de scans avec différents niveaux de réglage pour trouver des vulnérabilités spécifiques et comparer les résultats.
Comprendre le but de l'option -Tuning
Dans cette étape, vous découvrirez l'option -Tuning et les différentes catégories de tests qu'elle peut contrôler. L'option -Tuning vous aide à concentrer le scan sur des domaines spécifiques d'intérêt, ce qui permet de gagner du temps et de réduire le bruit dans la sortie.
Nikto catégorise ses tests en plusieurs types. Vous pouvez utiliser un nombre ou une lettre pour sélectionner une catégorie spécifique. Examinons les principales options de réglage disponibles. Vous pouvez les voir en consultant les informations d'aide.
Exécutez la commande suivante pour afficher le menu d'aide de Nikto :
nikto -h
Faites défiler la sortie et trouvez la section -Tuning. Elle ressemblera à ceci :
-Tuning
Tuning options control the test that Nikto will use against a target.
By default, Nikto runs the default set of tests. The tuning options
are a bitwise value, so they can be combined (e.g. -Tuning 12).
The options are:
0 - File Upload
1 - Interesting File / Seen in logs
2 - Misconfiguration / Default File
3 - Information Disclosure
4 - Injection (XSS/Script/HTML)
5 - Remote File Retrieval - Inside Web Root
6 - Denial of Service
7 - Remote File Retrieval - Server Wide
8 - Command Execution / Remote Shell
9 - SQL Injection
a - Authentication Bypass
b - Software Identification
c - Remote Source Inclusion
x - Reverse Tuning Options (i.e., include all except specified)
Comme vous pouvez le constater, chaque nombre correspond à une catégorie de test spécifique. Par exemple, 1 correspond à "Interesting File" (Fichier intéressant), et 2 à "Misconfiguration" (Mauvaise configuration). L'option x est spéciale ; elle inverse la logique, indiquant à Nikto d'exécuter tous les tests sauf ceux que vous spécifiez.
Exécuter un scan avec -Tuning 1 pour les Fichiers Intéressants
Dans cette étape, vous effectuerez un scan ciblé pour rechercher uniquement les "Fichiers Intéressants". Ce type de scan recherche des fichiers qui ne sont peut-être pas directement liés à partir de l'application web, mais qui pourraient contenir des informations sensibles, tels que des fichiers de sauvegarde, des fichiers de configuration ou des journaux. Notre script de configuration a créé un fichier config.bak à cet effet.
Nous utiliserons l'option -Tuning 1 pour indiquer à Nikto de n'exécuter que les tests de la catégorie "Interesting File / Seen in logs" (Fichier intéressant / Vu dans les journaux). Le serveur web fonctionne sur 127.0.0.1 au port 8000.
Exécutez la commande suivante dans votre terminal :
nikto -h http://127.0.0.1:8000 -Tuning 1
Une fois le scan terminé, vous verrez une sortie similaire à la suivante. Notez que Nikto a trouvé le fichier config.bak.
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP: 127.0.0.1
+ Target Hostname: 127.0.0.1
+ Target Port: 8000
+ Start Time: ...
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.6
+ /config.bak: A backup file was found.
+ 1 host(s) tested
Cela démontre comment vous pouvez rapidement trouver des fichiers potentiellement sensibles sans exécuter un scan complet et chronophage.
Exécuter un scan avec -Tuning 2 pour les Mauvaises Configurations
Dans cette étape, vous utiliserez l'option -Tuning 2 pour rechercher les mauvaises configurations courantes du serveur et les fichiers par défaut. Une mauvaise configuration courante consiste à autoriser l'indexation de répertoire, qui liste le contenu d'un répertoire si aucun fichier d'index (comme index.html) n'est présent. Le serveur Python simple que nous utilisons présente ce comportement.
Effectuons un scan axé uniquement sur les mauvaises configurations.
Exécutez cette commande :
nikto -h http://127.0.0.1:8000 -Tuning 2
La sortie affichera les résultats liés aux mauvaises configurations. Vous devriez voir un message indiquant que l'indexation de répertoire est activée.
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP: 127.0.0.1
+ Target Hostname: 127.0.0.1
+ Target Port: 8000
+ Start Time: ...
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.6
+ /: Directory indexing is enabled.
+ 1 host(s) tested
Notez que ce scan n'a pas signalé le fichier config.bak car nous avons limité les tests à la catégorie "Misconfiguration" (Mauvaise configuration).
Utiliser -Tuning x pour effectuer un scan de réglage inverse
Dans cette étape, vous apprendrez à utiliser le réglage inverse (inverse tuning). Parfois, vous souhaitez exécuter un scan large mais exclure une catégorie spécifique de tests que vous savez non pertinents ou trop bruyants. L'option x dans -Tuning vous permet de faire cela.
Par exemple, disons que vous voulez exécuter tous les tests sauf les vérifications de "Fichier Intéressant". Vous pouvez y parvenir en combinant x avec 1.
Exécutez la commande suivante pour effectuer un scan inverse qui exclut les tests de "Fichier Intéressant" :
nikto -h http://127.0.0.1:8000 -Tuning x1
Observez la sortie. Vous verrez diverses découvertes, telles que la mauvaise configuration de l'indexation de répertoire, mais le fichier config.bak ne sera pas signalé.
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP: 127.0.0.1
+ Target Hostname: 127.0.0.1
+ Target Port: 8000
+ Start Time: ...
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.6
+ 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.
+ /: Directory indexing is enabled.
...
+ 1 host(s) tested
Le réglage inverse est un moyen puissant de personnaliser vos scans en supprimant des vérifications spécifiques qui ne sont pas nécessaires pour votre évaluation actuelle.
Comparer la sortie de différents niveaux de réglage
Dans cette dernière étape pratique, vous combinerez plusieurs options de réglage pour créer un scan plus complet, tout en restant personnalisé. L'option -Tuning accepte plusieurs valeurs pour exécuter des tests de toutes les catégories spécifiées.
Effectuons un scan qui combine la recherche de "Fichiers Intéressants" (1) et de "Mauvaises Configurations" (2).
Exécutez la commande suivante :
nikto -h http://127.0.0.1:8000 -Tuning 12
Maintenant, examinez la sortie. Vous verrez que Nikto rapporte des découvertes des deux catégories. Il trouvera à la fois le fichier config.bak et le problème d'indexation de répertoire.
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP: 127.0.0.1
+ Target Hostname: 127.0.0.1
+ Target Port: 8000
+ Start Time: ...
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.6
+ /: Directory indexing is enabled.
+ /config.bak: A backup file was found.
+ 1 host(s) tested
En comparant les résultats de ce scan avec les précédents, vous pouvez clairement voir comment l'option -Tuning vous permet de contrôler précisément la portée de votre évaluation de sécurité. Vous pouvez mélanger et associer des options pour construire le scan exact dont vous avez besoin.
Résumé
Dans ce laboratoire, vous avez appris à contrôler efficacement le comportement de scan de Nikto à l'aide de l'option -Tuning. Cette fonctionnalité puissante est essentielle pour mener des évaluations de sécurité web efficaces et ciblées.
Vous avez pratiqué :
- La compréhension des différentes catégories de tests disponibles dans Nikto.
- L'exécution d'un scan ciblé pour les "Fichiers Intéressants" en utilisant
-Tuning 1. - Le scan des "Mauvaises Configurations" en utilisant
-Tuning 2. - L'exécution d'un scan inverse pour exclure des tests spécifiques en utilisant
-Tuning x. - La combinaison de plusieurs options de réglage pour créer un profil de scan personnalisé.
En maîtrisant l'option -Tuning, vous pouvez améliorer considérablement votre flux de travail avec Nikto, vous permettant de cibler rapidement des types spécifiques de vulnérabilités et de réduire le temps passé à analyser les résultats des scans.



