Kali Schwachstellenscan mit Nikto

Kali LinuxBeginner
Jetzt üben

Einführung

In diesem Lab lernen Sie die Grundlagen des Scannens von Web-Schwachstellen mit Nikto, einem leistungsstarken Open-Source-Tool, innerhalb einer Kali-Linux-Umgebung. Ziel ist es zu verstehen, wie potenzielle Sicherheitsprobleme auf Webservern identifiziert werden, indem Scans ausgeführt, Ergebnisse interpretiert und Berichte für weitere Analysen gespeichert werden. Durch schrittweise Übungen in der LabEx-VM sammeln Sie praktische Erfahrungen mit der Kommandozeile von Nikto. Dieses Lab ist für Anfänger konzipiert und führt Sie durch jeden Prozess in einer kontrollierten Container-Umgebung, um grundlegende Fähigkeiten in der Bewertung der Websicherheit aufzubauen.

Dies ist ein geführtes Lab, das Schritt-für-Schritt-Anleitungen bietet, um Ihnen beim Lernen und Üben zu helfen. Folgen Sie den Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrung zu sammeln. Historische Daten zeigen, dass dies ein Lab auf mittlerem Niveau mit einer Abschlussquote von 65% ist. Es hat eine positive Bewertungsrate von 94% von Lernenden erhalten.

Einrichten der Umgebung und Installation von Nikto

In diesem ersten Schritt richten Sie Ihre Arbeitsumgebung im Kali-Linux-Container ein und stellen sicher, dass Nikto, der Web-Schwachstellenscanner, installiert und einsatzbereit ist. Dieses Lab wird innerhalb der LabEx-VM durchgeführt. Wenn Sie das Terminal öffnen, werden Sie automatisch mit der Shell des Kali-Linux-Containers verbunden. Es ist nicht erforderlich, den Container manuell zu starten oder die Shell zu betreten; die Umgebung ist bereits für Sie vorkonfiguriert.

Beginnen wir mit dem Verständnis des Setups. Die LabEx-VM läuft auf einem unabhängigen Cloud-Host mit vorinstalliertem Docker, und ein Kali-Linux-Container wurde so eingerichtet, dass er automatisch startet. Alle Ihre Operationen finden innerhalb des Terminals dieses Containers statt. Nikto ist ein Werkzeug, das Webserver auf Schwachstellen wie veraltete Software oder Fehlkonfigurationen scannt, und wir müssen sicherstellen, dass es installiert ist, bevor wir fortfahren.

Aktualisieren Sie zunächst die Paketliste im Kali-Linux-Container, um sicherzustellen, dass Sie über die neuesten Informationen zu verfügbarer Software verfügen. Führen Sie den folgenden Befehl im Terminal aus:

apt update

Dieser Befehl ruft die neuesten Paketinformationen aus den konfigurierten Repositories ab. Dies kann einen Moment dauern, und Sie sehen eine Ausgabe, die den Fortschritt anzeigt, z. B. das Herunterladen von Paketlisten. Eine Beispielausgabe könnte so aussehen:

Get:1 http://mirrors.cloud.aliyuncs.com/kali kali-rolling InRelease [30.9 kB]
Get:2 http://mirrors.cloud.aliyuncs.com/kali kali-rolling/main amd64 Packages [18.1 MB]
...
Fetched 18.5 MB in 5s (3,700 kB/s)
Reading package lists... Done

Sobald das Update abgeschlossen ist, installieren Sie Nikto, falls es noch nicht im Container vorhanden ist. Verwenden Sie den folgenden Befehl zur Installation:

apt install -y nikto iputils-ping

Das Flag -y bestätigt die Installation automatisch ohne weitere Rückfragen. Dieser Vorgang kann kurz dauern, und Sie sehen eine Ausgabe, die den Installationsfortschritt anzeigt. Eine Beispielausgabe könnte sein:

Reading package lists... Done
Building dependency tree... Done
...
Setting up nikto (1:2.1.5-3.1) ...

Überprüfen Sie nach der Installation, ob Nikto korrekt installiert wurde, indem Sie die Version abfragen. Führen Sie diesen Befehl aus:

nikto -Version

Dieser Befehl zeigt die installierte Version von Nikto an und bestätigt die Einsatzbereitschaft. Die erwartete Ausgabe sollte in etwa so aussehen:

Nikto 2.5.0 (LW 2.5)

Nachdem Nikto installiert ist, können Sie mit den nächsten Schritten fortfahren, in denen Sie das Tool zum Scannen von Webservern verwenden. Dieser Schritt stellt sicher, dass Ihre Umgebung ordnungsgemäß konfiguriert ist und die erforderlichen Werkzeuge für die kommenden Aufgaben zur Verfügung stehen.

Ausführen eines einfachen Nikto-Webscans

Da Nikto nun in Ihrem Kali-Linux-Container installiert ist, lernen Sie, wie Sie einen grundlegenden Web-Schwachstellenscan durchführen. Dieser Schritt baut auf der Umgebungseinrichtung des vorherigen Schritts auf und führt Sie in die Verwendung von Nikto ein, um potenzielle Sicherheitsprobleme auf einem Webserver zu identifizieren. Da Sie sich bereits in der Shell des Kali-Linux-Containers befinden, wenn Sie das Terminal in der LabEx-VM öffnen, müssen Sie den Container nicht manuell starten.

Lassen Sie uns verstehen, was ein einfacher Nikto-Scan bewirkt. Nikto scannt einen Ziel-Webserver auf gängige Schwachstellen, wie veraltete Softwareversionen oder Fehlkonfigurationen, die ausgenutzt werden könnten. Für dieses Lab verwenden wir einen öffentlich zugänglichen Testserver, testphp.vulnweb.com, der speziell für das Lernen und Üben von Schwachstellenscans entwickelt wurde. Dies stellt sicher, dass wir ethisch und sicher scannen.

Führen Sie zunächst einen einfachen Scan auf dem Testserver mit Nikto durch. Geben Sie den folgenden Befehl im Terminal ein:

nikto -h testphp.vulnweb.com

Die Option -h gibt den zu scannenden Host an, in diesem Fall testphp.vulnweb.com. Dieser Scan kann je nach Netzwerkbedingungen und Konfiguration des Ziels einige Minuten dauern. Während des Scans sehen Sie die Fortschrittsanzeige im Terminal. Eine Beispielausgabe könnte so aussehen:

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          44.228.249.3
+ Target Hostname:    testphp.vulnweb.com
+ Target Port:        80
+ Start Time:         2025-04-21 07:29:12 (GMT0)
---------------------------------------------------------------------------
+ Server: nginx/1.19.0
+ /: Retrieved x-powered-by header: PHP/5.6.40-38+ubuntu20.04.1+deb.sury.org+1.
...
---------------------------------------------------------------------------
+ 1 host(s) tested

Beim Scannen von testphp.vulnweb.com mit nikto können Fehlermeldungen auftreten. Dies ist zu erwarten; bitte konzentrieren Sie sich auf die Kerninformationen.

Diese Ausgabe liefert erste Informationen über das Ziel, wie IP-Adresse, Hostname und Port. Sie listet auch potenzielle Probleme auf, wie fehlende Sicherheits-Header oder veraltete Komponenten. Machen Sie sich keine Sorgen, wenn die Ausgabe sehr detailliert erscheint; der Fokus liegt hier darauf, den Scan auszuführen und den Prozess zu beobachten. In den nächsten Schritten werden wir diese Ergebnisse genauer analysieren.

Falls der Scan nicht startet oder keine Ausgabe erscheint, stellen Sie sicher, dass Ihre Internetverbindung innerhalb der LabEx-VM aktiv ist. Sie können die Konnektivität zum Ziel testen, indem Sie folgenden Befehl ausführen:

ping -c 4 testphp.vulnweb.com

Dieser Befehl sendet einige Pakete an das Ziel, um die Erreichbarkeit zu prüfen. Wenn Sie Antworten erhalten, ist der Server erreichbar; falls nicht, wiederholen Sie den Scan oder prüfen Sie Ihre Netzwerkeinstellungen in der LabEx-VM.

PING testphp.vulnweb.com (44.228.249.3) 56(84) bytes of data.
64 bytes from ec2-44-228-249-3.us-west-2.compute.amazonaws.com (44.228.249.3): icmp_seq=1 ttl=55 time=21.4 ms
64 bytes from ec2-44-228-249-3.us-west-2.compute.amazonaws.com (44.228.249.3): icmp_seq=2 ttl=55 time=21.7 ms
64 bytes from ec2-44-228-249-3.us-west-2.compute.amazonaws.com (44.228.249.3): icmp_seq=3 ttl=55 time=21.5 ms
64 bytes from ec2-44-228-249-3.us-west-2.compute.amazonaws.com (44.228.249.3): icmp_seq=4 ttl=55 time=21.5 ms

--- testphp.vulnweb.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 21.435/21.523/21.699/0.103 ms

Dieser Schritt hat Sie in die Ausführung eines grundlegenden Nikto-Scans eingeführt und die Basis für spezifischere Scans und Analysen in den folgenden Schritten gelegt. Sie haben den Scan-Befehl ausgeführt und die erste Ausgabe direkt im Terminal des Kali-Linux-Containers beobachtet.

Verwendung der Tuning-Optionen von Nikto für gezieltes Scannen

Aufbauend auf dem einfachen Scan aus dem vorherigen Schritt lernen Sie nun, wie Sie mit den Tuning-Optionen von Nikto gezieltere Scans durchführen. Nikto ermöglicht es Ihnen, Scans auf bestimmte Arten von Schwachstellen zu fokussieren, was nützlich ist, wenn Sie nach speziellen Problemen suchen oder die Scandauer verkürzen möchten.

In diesem Schritt lernen Sie, wie Sie die Tuning-Funktion von Nikto nutzen, um Ihre Scans in der Kali-Linux-Containerumgebung anzupassen.

Zuerst schauen wir uns an, welche Tuning-Optionen in Nikto verfügbar sind. Sie können die vollständige Liste der verfügbaren Tuning-Optionen mit dem folgenden Befehl anzeigen:

nikto -h testphp.vulnweb.com -Display V

Die Option -Display V zeigt eine ausführliche (verbose) Ausgabe, einschließlich der Tuning-Informationen. In der Ausgabe sehen Sie verschiedene Testkategorien, die mit Zahlen und Buchstaben gekennzeichnet sind.

Führen wir nun einen gezielten Scan durch, der sich auf häufige dateibezogene Schwachstellen konzentriert. Führen Sie den folgenden Befehl aus:

nikto -h testphp.vulnweb.com -Tuning 2

Die Option -Tuning 2 prüft speziell auf Schwachstellen zur Offenlegung von Dateien (File Disclosure). Dieser Scan kann einige Minuten dauern, und Sie sehen im Terminal eine Ausgabe ähnlich der folgenden:

- Nikto v2.1.5
---------------------------------------------------------------------------
+ Target IP:          44.228.249.3
+ Target Hostname:    testphp.vulnweb.com
+ Target Port:        80
---------------------------------------------------------------------------
+ Server: nginx/1.19.0
+ Scanning for File Upload vulnerabilities...
+ Multiple file upload fields found on login.php
...

Sie können auch mehrere Tuning-Optionen kombinieren. Um beispielsweise sowohl nach Dateioffenlegung (2) als auch nach Fehlkonfigurationen (9) zu suchen, verwenden Sie:

nikto -h testphp.vulnweb.com -Tuning 2,9

Dieser kombinierte Scan prüft beide Kategorien und bietet Ihnen einen umfassenderen Überblick über spezifische Schwachstellentypen, ohne einen vollständigen Scan durchführen zu müssen.

Falls der Scan keine Ergebnisse liefert oder Fehler auftreten, stellen Sie sicher, dass Ihre Internetverbindung aktiv ist, indem Sie die Konnektivität testen:

ping -c 4 testphp.vulnweb.com

Dieser Schritt hat Ihnen geholfen zu verstehen, wie Sie die Tuning-Optionen von Nikto für gezieltere Scans einsetzen, sodass Sie sich auf spezifische Sicherheitsbedenken konzentrieren können. In den nächsten Schritten werden wir weitere Nikto-Funktionen erkunden, die Ihre Möglichkeiten zur Schwachstellenanalyse erweitern.

Anpassen von Ausgabeformaten und Speichern von Scan-Ergebnissen

Nachdem Sie gelernt haben, wie man gezielte Scans mit Nikto durchführt, werden Sie nun untersuchen, wie Sie Ausgabeformate anpassen und Scan-Ergebnisse für Dokumentations- und Analysezwecke speichern. Die ordnungsgemäße Dokumentation Ihrer Ergebnisse ist ein entscheidender Aspekt von Sicherheitsbewertungen, und Nikto bietet mehrere Optionen zum Formatieren und Speichern Ihrer Scan-Ergebnisse.

In diesem Schritt lernen Sie, wie Sie Berichte in verschiedenen Formaten direkt im Terminal des Kali-Linux-Containers generieren.

Beginnen wir mit der Untersuchung der verschiedenen Ausgabeformat-Optionen, die Nikto bietet. Die gängigsten Formate sind:

  1. Text (Standard): Einfache Textausgabe
  2. HTML: Formatierter HTML-Bericht
  3. CSV: Kommagetrennte Werte für den Import in Tabellenkalkulationen
  4. XML: Strukturierte XML-Daten für die automatisierte Verarbeitung

Um die Scan-Ergebnisse im Standard-Textformat zu speichern, führen Sie aus:

nikto -h testphp.vulnweb.com -o /root/nikto_text_report.txt

Die Option -o gibt den Pfad der Ausgabedatei an. Nachdem der Scan abgeschlossen ist, überprüfen Sie, ob die Datei erstellt wurde, indem Sie ihren Inhalt anzeigen:

cat /root/nikto_text_report.txt

Um einen HTML-Bericht zu erstellen, der ein lesbareres und strukturierteres Format bietet, verwenden Sie:

nikto -h testphp.vulnweb.com -Format htm -o /root/nikto_report.html

Die Option -Format htm weist Nikto an, die Ausgabe als HTML zu formatieren. Obwohl Sie die HTML-Datei nicht direkt im Terminal betrachten können, können Sie prüfen, ob sie erstellt wurde:

ls -l /root/nikto_report.html

Für Daten, die in andere Werkzeuge oder Tabellenkalkulationen importiert werden müssen, können Sie einen Bericht im CSV-Format generieren:

nikto -h testphp.vulnweb.com -Format csv -o /root/nikto_report.csv

Überprüfen Sie nach Abschluss des Scans die CSV-Datei:

head /root/nikto_report.csv

Dies zeigt die ersten Zeilen der CSV-Datei an und verdeutlicht, wie die Daten strukturiert sind.

Diese verschiedenen Ausgabeformate dienen unterschiedlichen Zwecken:

  • Textberichte sind im Terminal leicht zu lesen.
  • HTML-Berichte sind visuell organisiert und eignen sich gut für den Austausch mit Teams.
  • CSV- und XML-Formate eignen sich hervorragend für den Import in andere Sicherheitstools oder Datenbanken.

Durch das Erlernen der Anpassung von Ausgabeformaten haben Sie Ihre Fähigkeit verbessert, Ihre Ergebnisse effektiv zu dokumentieren und zu kommunizieren.

Fortgeschrittene Nikto-Optionen für tiefergehende Scans

In diesem letzten Schritt werden Sie einige fortgeschrittene Nikto-Optionen erkunden, die tiefere und umfassendere Scans ermöglichen. Diese Funktionen helfen Ihnen, versteckte Schwachstellen aufzudecken und bieten mehr Kontext zu potenziellen Sicherheitsproblemen. Dies baut auf dem Wissen der vorherigen Schritte auf und konzentriert sich auf die erweiterten Funktionen von Nikto innerhalb der Kali-Linux-Containerumgebung.

Lassen Sie uns einige der nützlichsten fortgeschrittenen Optionen in Nikto untersuchen:

Zuerst verwenden wir eine Evasion-Technik (Umgehungstechnik), um einfache Intrusion-Detection-Systeme zu umgehen. Dies kann beim Testen von Sicherheitskontrollen nützlich sein:

nikto -h testphp.vulnweb.com -evasion 1

Die Option -evasion 1 kodiert die URL mit zufälligen Groß- und Kleinbuchstaben. Sie könnten eine Ausgabe ähnlich dieser sehen:

- Nikto v2.1.5
---------------------------------------------------------------------------
+ Target IP:          44.228.249.3
+ Target Hostname:    testphp.vulnweb.com
+ Target Port:        80
+ Evasion technique:  Random URI encoding (non-UTF8)
---------------------------------------------------------------------------
+ Server: nginx/1.19.0
...

Als Nächstes scannen wir mit einem spezifischen Port und Protokoll. Bisher haben wir den Standard-HTTP-Port 80 gescannt, aber Sie können verschiedene Ports angeben:

nikto -h testphp.vulnweb.com -port 443 -ssl

Die Option -port 443 zielt auf Port 443 ab, und -ssl weist Nikto an, das HTTPS-Protokoll zu verwenden. Für diesen Testserver liefert dies möglicherweise keine Ergebnisse, da HTTPS dort eventuell nicht aktiviert ist, aber es demonstriert, wie man sichere Webdienste scannt.

Für Websites, die eine Authentifizierung erfordern, bietet Nikto Optionen zur Handhabung der HTTP-Basisauthentifizierung:

nikto -h testphp.vulnweb.com -id admin:password

Die Option -id ermöglicht es Ihnen, Anmeldedaten im Format Benutzername:Passwort anzugeben. Für den Testserver werden diese Anmeldedaten nicht funktionieren, aber es zeigt, wie man authentifizierte Scans konfiguriert.

Sie können auch die Ausführlichkeit (Verbosity) des Scans erhöhen, um detailliertere Informationen zu erhalten:

nikto -h testphp.vulnweb.com -Display V -o /root/nikto_verbose_report.txt

Die Option -Display V liefert eine ausführliche Ausgabe und zeigt mehr Details zu jedem durchgeführten Test an. Das Speichern in einer Datei mit -o bietet Ihnen eine umfassende Dokumentation des Scans.

Kombinieren wir schließlich mehrere Optionen für einen umfassenden Scan:

nikto -h testphp.vulnweb.com -Tuning x -no404 -Format htm -o /root/final_report.html

In diesem Befehl:

  • -Tuning x testet auf alles außer DoS-Schwachstellen.
  • -no404 reduziert Fehlalarme, indem 404-Fehler nicht gemeldet werden.
  • -Format htm speichert den Bericht im HTML-Format.
  • -o gibt die Ausgabedatei an.

Dieser Schritt hat Sie in mehrere fortgeschrittene Nikto-Optionen eingeführt, die Ihre Möglichkeiten zum Scannen von Web-Schwachstellen erweitern. Durch die Kombination dieser verschiedenen Techniken können Sie gründliche Sicherheitsbewertungen durchführen und umfassende, auf Ihre spezifischen Bedürfnisse zugeschnittene Berichte erstellen.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie Nikto, einen leistungsstarken Web-Schwachstellenscanner, innerhalb einer Kali-Linux-Umgebung einsetzen. Sie begannen mit der Einrichtung der Umgebung und der Installation von Nikto und arbeiteten sich dann durch zunehmend anspruchsvollere Scantechniken vor.

Sie starteten mit grundlegenden Scans zur Identifizierung gängiger Schwachstellen auf einem Testserver und lernten dann, wie Sie mit den Tuning-Optionen von Nikto gezielte Scans durchführen, um sich auf bestimmte Arten von Schwachstellen zu konzentrieren. Sie untersuchten verschiedene Ausgabeformate, einschließlich Text, HTML und CSV, um Ihre Ergebnisse effektiv zu dokumentieren und zu kommunizieren.

Schließlich entdeckten Sie fortgeschrittene Optionen für tiefergehende Scans, einschließlich Evasion-Techniken, Port- und Protokollspezifikationen, Authentifizierungshandhabung und ausführlicher Ausgabe. Diese Fähigkeiten bieten eine solide Grundlage für die Durchführung von Web-Sicherheitsbewertungen, sei es für Bildungszwecke oder professionelle Sicherheitstests.

Die in diesem Lab gesammelte praktische Erfahrung rüstet Sie mit praktischem Wissen über die Befehlszeilenschnittstelle von Nikto und der Fähigkeit aus, Scans gemäß Ihren spezifischen Anforderungen anzupassen. Dies sind wesentliche Fähigkeiten für jeden, der sich für Websicherheit und Schwachstellenbewertung interessiert.