Einen bestimmten Port mit Nikto scannen

Kali LinuxBeginner
Jetzt üben

Einleitung

Nikto ist ein beliebter Open-Source-Webserver-Scanner, der umfassende Tests gegen Webserver für verschiedene Elemente durchführt, darunter über 6700 potenziell gefährliche Dateien/Programme, Prüfungen auf veraltete Versionen von über 1250 Servern und versionsspezifische Probleme auf über 270 Servern. Standardmäßig scannt Nikto Standard-HTTP/HTTPS-Ports wie 80 und 443. In realen Szenarien werden Webdienste jedoch oft auf nicht standardmäßigen Ports gehostet, um sie zu verschleiern.

In diesem Lab lernen Sie, wie Sie Nikto verwenden, um einen bestimmten, nicht standardmäßigen Port auf einem Ziel zu scannen. Dies ist eine grundlegende Fähigkeit, um sicherzustellen, dass alle webseitigen Dienste, unabhängig von dem Port, auf dem sie laufen, ordnungsgemäß auf Schwachstellen geprüft werden.

Identifizieren eines nicht standardmäßigen HTTP-Ports auf einem Ziel

In diesem Schritt identifizieren Sie zunächst offene Ports auf der Zielmaschine. Bevor Sie einen bestimmten Port mit Nikto scannen können, müssen Sie wissen, welche Ports offen sind und potenziell Dienste hosten. Wir werden zu diesem Zweck nmap, ein leistungsstarkes Netzwerk-Scanning-Tool, verwenden.

Lassen Sie uns einen Portbereich auf unserer lokalen Maschine (localhost) scannen, um den von uns eingerichteten Webserver zu finden. Wir scannen den Portbereich von 8000 bis 9000.

Führen Sie den folgenden Befehl in Ihrem Terminal aus:

nmap -p 8000-9000 localhost

Sie sollten eine Ausgabe ähnlich der folgenden sehen, die anzeigt, dass die Ports 8001 und 8088 offen sind.

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

Diese Ausgabe bestätigt, dass zwei Dienste auf nicht standardmäßigen Ports innerhalb unseres angegebenen Bereichs laufen. Wir werden uns für unseren ersten Nikto-Scan auf Port 8088 konzentrieren.

Verwenden des Flags -p zum Angeben des Ziel-Ports

In diesem Schritt lernen wir das spezifische Nikto-Flag kennen, das für das Port-Scanning verwendet wird. Standardmäßig scannt Nikto Port 80. Um Nikto anzuweisen, einen anderen Port zu scannen, müssen Sie die Befehlszeilenoption -p (oder -port) verwenden.

Die Syntax ist einfach:

nikto -h <ziel_host> -p <port_nummer>

Um beispielsweise den Host localhost auf Port 8088 zu scannen, den wir im vorherigen Schritt entdeckt haben, wäre die Befehlsstruktur:

nikto -h localhost -p 8088

Dieser Befehl weist Nikto an, seine vollständige Testsuite auszuführen, diese jedoch alle auf Port 8088 des Hosts localhost zu richten. Im nächsten Schritt führen Sie diesen Befehl aus und sehen die Ergebnisse.

Ausführen des Scans gegen den Host und den spezifischen Port

Nachdem Sie nun wissen, wie Sie einen Ziel-Port angeben, führen wir den Scan aus. Sie verwenden die Befehlsstruktur aus dem vorherigen Schritt, um einen Nikto-Scan gegen localhost auf Port 8088 zu starten.

Führen Sie den folgenden Befehl in Ihrem Terminal aus:

nikto -h localhost -p 8088

Nikto wird gestartet, und Sie sehen eine Ausgabe, die seinen Fortschritt und seine Ergebnisse detailliert beschreibt. Die Ausgabe wird ungefähr so aussehen (einige Details können variieren):

- 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

Sie haben erfolgreich einen gezielten Schwachstellenscan auf einem nicht standardmäßigen Port durchgeführt.

Analyse der Ergebnisse für den nicht standardmäßigen Dienst

In diesem Schritt analysieren Sie die Ausgabe des Nikto-Scans, den Sie gerade durchgeführt haben. Das Verständnis der Ergebnisse ist genauso wichtig wie die Durchführung des Scans selbst.

Lassen Sie uns die wichtigsten Erkenntnisse aus der Ausgabe des vorherigen Schritts überprüfen:

  • + Target Port: 8088: Dies bestätigt, dass Nikto den von Ihnen angegebenen Port korrekt anvisiert hat.
  • + Server: SimpleHTTP/0.6 Python/3.10.12: Dies ist eine sehr wertvolle Information. Nikto hat die Webserver-Software und -Version identifiziert. In diesem Fall handelt es sich um einen einfachen Server, der von Python bereitgestellt wird. Die Kenntnis der Servertechnologie hilft einem Angreifer, sich auf spezifische Exploits zu konzentrieren.
  • Fehlende Sicherheits-Header: Zeilen wie The anti-clickjacking X-Frame-Options header is not present weisen auf Fehlkonfigurationen in der Sicherheit hin. Diese Header helfen, eine Webanwendung vor gängigen Angriffen wie Clickjacking und Cross-Site Scripting (XSS) zu schützen.
  • + OSVDB-3092: /cgi-bin/: This might be interesting...: Nikto hat ein Verzeichnis namens cgi-bin identifiziert. Dieses Verzeichnis enthält traditionell ausführbare Skripte, was es zu einem wertvollen Ziel für Angreifer macht, die nach Schwachstellen suchen.

Diese Analyse zeigt, dass selbst ein einfacher Dienst auf einem nicht standardmäßigen Port erkennbare Merkmale und potenzielle Sicherheitslücken aufweisen kann.

Scannen eines Portbereichs auf einem einzelnen Host

In diesem letzten Schritt lernen Sie, wie Sie Ihre Scans noch effizienter gestalten können, indem Sie Nikto einen zu prüfenden Portbereich angeben. Dies ist äußerst nützlich, wenn Sie mehrere potenzielle Ports aus einem nmap-Scan identifiziert haben oder vermuten, dass Dienste innerhalb eines bestimmten Bereichs laufen.

Das Flag -p akzeptiert auch einen Portbereich, der mit einem Bindestrich angegeben wird. Die Syntax lautet:

nikto -h <ziel_host> -p <start_port>-<end_port>

Lassen Sie uns dies verwenden, um den Bereich 8000-8100 auf localhost zu scannen. Dieser Bereich umfasst beide unserer laufenden Webserver (auf den Ports 8001 und 8088).

Führen Sie den folgenden Befehl aus:

nikto -h localhost -p 8000-8100

Nikto wird nun jeden Port im angegebenen Bereich durchlaufen. Es scannt zuerst Port 8000, findet nichts, wechselt dann zu 8001, findet den Webserver, scannt ihn und meldet die Ergebnisse. Dieser Vorgang wird fortgesetzt, bis Port 8100 erreicht ist, wobei unterwegs auch der Server auf Port 8088 gescannt wird.

Die Ausgabe wird umfangreich sein und zwei separate Scan-Berichte anzeigen, einen für jeden gefundenen aktiven Port:

- Nikto v2.1.6
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    localhost
+ Target Port:        8001
... (Ergebnisse für Port 8001) ...
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    localhost
+ Target Port:        8088
... (Ergebnisse für Port 8088) ...
---------------------------------------------------------------------------
+ 2 host(s) tested

Dies zeigt, wie effizient Sie mehrere Ports auf einem einzelnen Host mit nur einem Befehl überprüfen können.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie die Scan-Fähigkeiten von Nikto über Standard-Webports hinaus erweitern können. Sie haben zunächst nmap verwendet, um Dienste auf nicht standardmäßigen Ports zu identifizieren. Anschließend haben Sie das leistungsstarke -p-Flag von Nikto verwendet, um einen einzelnen, spezifischen Port anzuzielen, und die resultierende Ausgabe analysiert, um die Servertechnologie und potenzielle Fehlkonfigurationen zu identifizieren.

Schließlich haben Sie gelernt, wie Sie das -p-Flag zum Scannen eines Portbereichs verwenden, eine leistungsstarke Technik zur effizienten Entdeckung versteckter Webdienste auf einem Ziel. Die Beherrschung des gezielten Scannens ist eine entscheidende Fähigkeit für effektive und gründliche Webanwendungs-Sicherheitstests.