Scanner un port spécifique avec Nikto

Kali LinuxBeginner
Pratiquer maintenant

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 scanne les ports HTTP/HTTPS standards comme 80 et 443. Cependant, dans les scénarios du monde réel, les services web sont souvent hébergés sur des ports non standards pour les dissimuler.

Dans ce laboratoire, vous apprendrez à utiliser Nikto pour scanner un port spécifique et non standard sur une cible. C'est une compétence fondamentale pour s'assurer que tous les services exposés sur le web, quel que soit le port sur lequel ils fonctionnent, sont correctement évalués pour les vulnérabilités.

Identifier un port HTTP non standard sur une cible

Dans cette étape, vous allez d'abord identifier les ports ouverts sur la machine cible. Avant de pouvoir scanner un port spécifique avec Nikto, vous devez savoir quels ports sont ouverts et potentiellement hébergent des services. Nous utiliserons nmap, un outil puissant de scan réseau, à cette fin.

Scannons une plage de ports sur notre machine locale (localhost) pour trouver le serveur web que nous avons configuré. Nous allons scanner la plage de ports de 8000 à 9000.

Exécutez la commande suivante dans votre terminal :

nmap -p 8000-9000 localhost

Vous devriez voir une sortie similaire à la suivante, indiquant que les ports 8001 et 8088 sont ouverts.

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000087s latency).
Not shown: 98 closed ports
PORT     STATE SERVICE
8001/tcp open  vcom-tunnel
8088/tcp open  radan-http

Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds

Cette sortie confirme que deux services fonctionnent sur des ports non standards dans la plage spécifiée. Nous nous concentrerons sur le port 8088 pour notre premier scan Nikto.

Utiliser le drapeau -p pour spécifier le port cible

Dans cette étape, nous allons découvrir le drapeau Nikto spécifique utilisé pour le scan de ports. Par défaut, Nikto scanne le port 80. Pour indiquer à Nikto de scanner un port différent, vous devez utiliser l'option de ligne de commande -p (ou -port).

La syntaxe est simple :

nikto -h <cible_hôte> -p <numéro_de_port>

Par exemple, pour scanner l'hôte localhost sur le port 8088 que nous avons découvert à l'étape précédente, la structure de la commande serait :

nikto -h localhost -p 8088

Cette commande indique à Nikto d'effectuer sa suite complète de tests, mais de les diriger tous vers le port 8088 sur l'hôte localhost. Dans l'étape suivante, vous exécuterez cette commande et verrez les résultats.

Exécuter le scan sur l'hôte et le port spécifique

Maintenant que vous savez comment spécifier un port cible, exécutons le scan. Vous utiliserez la structure de commande de l'étape précédente pour lancer un scan Nikto contre localhost sur le port 8088.

Exécutez la commande suivante dans votre terminal :

nikto -h localhost -p 8088

Nikto démarrera, et vous verrez une sortie détaillant sa progression et ses découvertes. La sortie ressemblera à ceci (certains détails peuvent varier) :

- Nikto v2.1.6
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    localhost
+ Target Port:        8088
+ Start Time:         2023-10-27 10:05:10 (GMT0)
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.12
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-XSS-Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS
+ 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
+ No CGI directories found (use '-C all' to force check all possible dirs)
+ OSVDB-3092: /cgi-bin/: This might be interesting...
+ 7558 requests: 0 error(s) and 5 item(s) reported on remote host
+ End Time:           2023-10-27 10:05:25 (GMT0) (15 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested

Vous avez réussi à effectuer un scan de vulnérabilité ciblé sur un port non standard.

Analyser les résultats pour le service non standard

Dans cette étape, vous allez analyser la sortie du scan Nikto que vous venez d'effectuer. Comprendre les résultats est aussi important que d'exécuter le scan lui-même.

Examinons les principales découvertes de la sortie de l'étape précédente :

  • + Target Port: 8088: Ceci confirme que Nikto a correctement ciblé le port que vous avez spécifié.
  • + Server: SimpleHTTP/0.6 Python/3.10.12: C'est une information très précieuse. Nikto a identifié le logiciel et la version du serveur web. Dans ce cas, il s'agit d'un serveur simple fourni par Python. Connaître la technologie du serveur aide un attaquant à se concentrer sur des exploits spécifiques.
  • En-têtes de sécurité manquants: Des lignes comme The anti-clickjacking X-Frame-Options header is not present indiquent des mauvaises configurations de sécurité. Ces en-têtes aident à protéger une application web contre des attaques courantes comme le clickjacking et le cross-site scripting (XSS).
  • + OSVDB-3092: /cgi-bin/: This might be interesting...: Nikto a identifié un répertoire nommé cgi-bin. Ce répertoire contient traditionnellement des scripts exécutables, ce qui en fait une cible de grande valeur pour les attaquants à la recherche de vulnérabilités.

Cette analyse montre que même un service simple sur un port non standard peut avoir des caractéristiques découvrables et des faiblesses de sécurité potentielles.

Scanner une plage de ports sur un seul hôte

Dans cette dernière étape, vous apprendrez à rendre vos scans encore plus efficaces en fournissant à Nikto une plage de ports à vérifier. Ceci est extrêmement utile lorsque vous avez identifié plusieurs ports potentiels à partir d'un scan nmap ou que vous suspectez que des services pourraient s'exécuter dans une plage spécifique.

L'indicateur -p accepte également une plage de ports spécifiée avec un trait d'union. La syntaxe est :

nikto -h <hôte_cible> -p <port_début>-<port_fin>

Utilisons ceci pour scanner la plage 8000-8100 sur localhost. Cette plage inclut nos deux serveurs web en cours d'exécution (sur les ports 8001 et 8088).

Exécutez la commande suivante :

nikto -h localhost -p 8000-8100

Nikto va maintenant parcourir chaque port de la plage spécifiée. Il scannera d'abord le port 8000, ne trouvera rien, puis passera au port 8001, trouvera le serveur web, le scannera et rapportera les résultats. Il continuera ce processus jusqu'à atteindre le port 8100, en scannant également le serveur sur le port 8088 en cours de route.

La sortie sera étendue, montrant deux rapports de scan distincts, un pour chaque port actif trouvé :

- Nikto v2.1.6
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    localhost
+ Target Port:        8001
... (Résultats pour le port 8001) ...
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    localhost
+ Target Port:        8088
... (Résultats pour le port 8088) ...
---------------------------------------------------------------------------
+ 2 host(s) tested

Ceci démontre l'efficacité avec laquelle vous pouvez vérifier plusieurs ports sur un seul hôte avec une seule commande.

Résumé

Dans ce laboratoire, vous avez appris à étendre les capacités de scan de Nikto au-delà des ports web standards. Vous avez commencé par utiliser nmap pour identifier les services s'exécutant sur des ports non standards. Vous avez ensuite utilisé le puissant indicateur -p de Nikto pour cibler un port spécifique et analysé la sortie résultante pour identifier la technologie du serveur et les mauvaises configurations potentielles.

Enfin, vous avez appris à utiliser l'indicateur -p pour scanner une plage de ports, une technique puissante pour découvrir efficacement les services web cachés sur une cible. Maîtriser le scan ciblé est une compétence cruciale pour des tests de sécurité d'applications web efficaces et approfondis.