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.
Par défaut, Nikto envoie des requêtes au serveur cible aussi rapidement que possible. Bien que cela soit efficace, cela peut être facilement détecté par les systèmes de sécurité et peut imposer une charge importante au serveur cible. L'option -Pause vous permet de contrôler le rythme du scan en ajoutant un délai entre chaque test.
Dans ce lab, vous apprendrez à utiliser l'option -Pause dans Nikto pour effectuer des scans plus lents et moins intrusifs.
Comprendre le but de l'option -Pause
Dans cette étape, vous allez découvrir l'option -Pause dans Nikto. Cette option est utilisée pour spécifier un délai en secondes entre chaque requête de scan. C'est une fonctionnalité cruciale pour effectuer des scans discrets ou pour tester des systèmes fragiles qui pourraient ne pas bien gérer un volume élevé de requêtes.
Commençons par afficher les informations d'aide de Nikto pour voir la description de l'option -Pause. C'est une bonne pratique pour comprendre la fonctionnalité des options de tout outil.
Exécutez la commande suivante dans le terminal :
nikto -Help
Faites défiler la sortie et recherchez l'option -Pause. Vous verrez une description expliquant sa fonction.
...
-Pause <seconds> Pause between tests (seconds, integer or float)
...
Cela confirme que -Pause accepte un nombre (entier ou décimal) représentant les secondes d'attente entre chaque test.
Exécuter un scan avec -Pause 5 pour attendre 5 secondes entre les tests
Dans cette étape, vous allez effectuer un scan Nikto en utilisant l'option -Pause. Notre environnement de laboratoire dispose d'un serveur web simple fonctionnant à http://localhost:8000 que vous pouvez scanner.
Nous allons définir une pause de 5 secondes entre chaque test. Cela signifie que Nikto attendra 5 secondes après l'envoi d'une requête avant d'envoyer la suivante.
Exécutez la commande suivante dans votre terminal pour lancer le scan :
nikto -h http://localhost:8000 -Pause 5
Analysons la commande :
nikto: La commande pour exécuter le scanner Nikto.-h http://localhost:8000: L'option-h(ou-host) spécifie l'hôte cible. Dans ce cas, il s'agit de notre serveur de test local.-Pause 5: Ceci indique à Nikto de faire une pause de 5 secondes entre chaque test qu'il effectue.
Après avoir exécuté la commande, le scan commencera. Vous verrez la sortie apparaître dans le terminal.
Observer le rythme plus lent du scan
Dans cette étape, vous allez observer la sortie de la commande que vous avez exécutée à l'étape précédente. Vous n'avez pas besoin d'exécuter de nouvelles commandes ici.
Regardez le terminal où le scan Nikto est en cours. Vous devriez remarquer que les nouvelles lignes de sortie, qui représentent les résultats des tests individuels, apparaissent beaucoup plus lentement qu'elles ne le feraient lors d'un scan par défaut. Il y aura un décalage notable de 5 secondes entre l'apparition de chaque nouveau résultat de test à l'écran.
Voici un exemple de ce à quoi pourrait ressembler la sortie, chaque ligne apparaissant après un délai :
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP: 127.0.0.1
+ Target Hostname: localhost
+ Target Port: 8000
+ Start Time: 2023-10-27 10:30:00 (GMT0)
---------------------------------------------------------------------------
+ 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.
... (de nouvelles lignes apparaissent toutes les 5 secondes) ...
Ce rythme délibéré est le résultat direct de l'utilisation de l'option -Pause 5. Un scan complet peut prendre un temps considérable avec ce réglage. Vous pouvez arrêter le scan à tout moment en appuyant sur Ctrl+C dans le terminal. Pour ce laboratoire, vous pouvez le laisser s'exécuter pendant une minute pour observer l'effet, puis l'arrêter avant de continuer.
Analyser comment cela peut aider à contourner les pare-feux limitant le débit
Dans cette étape, nous allons discuter d'une raison principale liée à la sécurité pour utiliser l'option -Pause : contourner les défenses de limitation du débit (rate-limiting).
De nombreux systèmes de sécurité modernes, tels que les pare-feux d'applications web (WAF - Web Application Firewalls) et les systèmes de détection d'intrusion (IDS - Intrusion Detection Systems), utilisent la limitation du débit comme mécanisme de défense. La limitation du débit fonctionne en suivant le nombre de requêtes provenant d'une seule adresse IP sur une période de temps spécifique. Si le nombre de requêtes dépasse un seuil prédéfini (par exemple, 100 requêtes par minute), le système peut bloquer temporairement ou définitivement cette adresse IP.
Un scan Nikto par défaut est très agressif et envoie des centaines ou des milliers de requêtes en très peu de temps. Ce comportement déclencherait presque certainement toute règle de limitation du débit, entraînant le blocage du scan et rendant ses résultats incomplets et inexacts.
En utilisant -Pause 5, vous modifiez le taux de requêtes du scan à une requête toutes les 5 secondes, ce qui se traduit par seulement 12 requêtes par minute. Ce taux beaucoup plus faible est beaucoup plus susceptible de passer inaperçu par les défenses de limitation du débit simples, permettant à votre scan de se terminer avec succès sans être bloqué. Cela fait de l'option -Pause un outil précieux pour des tests d'intrusion plus discrets.
Utiliser cette option pour scanner des systèmes fragiles ou sensibles
Dans cette étape, nous allons explorer un autre cas d'utilisation important de l'option -Pause : scanner de manière responsable des systèmes fragiles ou sensibles.
Un scan agressif et à haute vitesse ne risque pas seulement la détection ; il peut également avoir un impact négatif sur la stabilité du système cible. Un serveur web, en particulier un serveur plus ancien, sous-dimensionné ou mal configuré, peut avoir du mal à gérer un afflux soudain de requêtes provenant d'un scanner. Cela peut entraîner une dégradation sévère des performances, rendant l'application lente ou non réactive pour les utilisateurs légitimes, ou dans le pire des cas, cela pourrait provoquer un crash du service web ou du serveur entier.
Lorsque vous êtes chargé d'évaluer un environnement de production en direct ou un système connu pour sa fragilité, provoquer un déni de service est non professionnel et contre-productif.
L'utilisation de l'option -Pause est un élément clé pour mener une évaluation de sécurité responsable et professionnelle. En ralentissant le scan, vous réduisez considérablement la charge sur le serveur cible, minimisant ainsi le risque de perturber son fonctionnement normal. Cela garantit que vos tests de sécurité n'interfèrent pas avec les opérations commerciales.
Résumé
Dans ce laboratoire, vous avez appris à contrôler la vitesse d'un scan de serveur web Nikto à l'aide de l'option -Pause.
Vous avez pratiqué l'exécution d'un scan avec un délai de 5 secondes entre les requêtes et observé comment cela ralentissait considérablement le rythme du scan. Vous avez également exploré les deux principaux avantages de cette technique :
- Discrétion : Ralentir les requêtes aide à contourner les règles simples de limitation du débit implémentées dans les pare-feux et les systèmes de détection d'intrusion.
- Stabilité : Réduire le taux de requêtes minimise la charge sur le serveur cible, ce qui est crucial lors du scan de systèmes de production fragiles, sous-dimensionnés ou critiques.
Maîtriser l'option -Pause est une étape importante pour devenir un professionnel de la sécurité plus efficace et responsable.


