Einführung
In diesem Lab lernen Sie, wie Sie Nikto, einen Open-Source-Webserver-Scanner, zur Erkennung potenzieller Sicherheitslücken einsetzen. Sie werden Nikto installieren, einen Test-Webserver scannen, die Ergebnisse sichern und die Funde analysieren, um Sicherheitsschwachstellen aufzudecken. Diese praktische Übung vermittelt Ihnen grundlegende Fähigkeiten für die Bewertung der Websicherheit.
Nikto installieren und überprüfen
Bevor Sie mit der Suche nach Schwachstellen beginnen können, müssen Sie das Tool Nikto installieren. In diesem Schritt aktualisieren Sie die Paketliste Ihres Systems und installieren Nikto über die Paketverwaltung apt. Alle Befehle werden im Terminal ausgeführt. Ihr Standard-Arbeitsverzeichnis ist /home/labex/project.
Aktualisieren Sie zunächst die Paketliste, um sicherzustellen, dass Sie die neueste Version der in den Repositories verfügbaren Software erhalten.
sudo apt update
Installieren Sie anschließend Nikto. Das Flag -y bestätigt die Installation automatisch, sodass Sie nicht manuell mit „J“ (bzw. „Y“) antworten müssen.
sudo apt install -y nikto
Nach Abschluss der Installation ist es ratsam, die korrekte Installation des Tools zu überprüfen. Dies können Sie tun, indem Sie die Version abfragen.
nikto -Version
Sie sollten eine Ausgabe sehen, die die Versionsnummer von Nikto anzeigt, ähnlich wie im folgenden Beispiel. Die genaue Version kann abweichen.
---------------------------------------------------------------------------
- Nikto v2.5.0
---------------------------------------------------------------------------
Nachdem Nikto erfolgreich installiert wurde, können Sie nun mit dem Scannen eines Webservers fortfahren.
Einen Basisscan durchführen
Da Nikto nun installiert ist, besteht Ihr nächster Schritt darin, einen einfachen Scan gegen einen Ziel-Webserver auszuführen. Für dieses Lab ist bereits ein Test-Webserver in Ihrer Umgebung vorkonfiguriert. Vor einem Scan sollten Sie immer sicherstellen, dass das Ziel online und erreichbar ist.
Prüfen Sie zuerst, ob der Webserver läuft. Wir verwenden curl mit dem Flag -I, um lediglich die HTTP-Header vom Server abzurufen. Das Ziel für dieses Lab ist http://localhost:8000.
curl -I http://localhost:8000
Eine erfolgreiche Antwort enthält die Zeile HTTP/1.0 200 OK, was bedeutet, dass der Server aktiv ist und Anfragen entgegennimmt.
HTTP/1.0 200 OK
Server: SimpleHTTP/0.6 Python/3.10.12
Date: ...
Content-type: text/html
Content-Length: 71
Führen Sie nun Ihren ersten Nikto-Scan durch. Verwenden Sie das Flag -h (oder -host), um Ihr Ziel anzugeben.
nikto -h http://localhost:8000
Nikto beginnt mit dem Scannen des Ziels. Sie sehen eine Echtzeit-Ausgabe im Terminal, während verschiedene Tests durchgeführt werden. Der Scan startet mit Informationen über das Ziel und listet anschließend alle gefundenen potenziellen Schwachstellen auf.
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP: 127.0.0.1
+ Target Hostname: localhost
+ Target Port: 8000
+ Start Time: ...
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.12
+ 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.
...
+ 1 host(s) tested
Sie haben soeben einen grundlegenden Webserver-Scan durchgeführt. Im nächsten Schritt lernen Sie, wie Sie diese Ergebnisse für eine spätere Analyse speichern.
Scan-Ergebnisse in einer Datei speichern
Einen Scan durchzuführen und die Ausgabe im Terminal zu betrachten, ist für eine schnelle Überprüfung hilfreich. Für professionelle Bewertungen müssen Sie die Ergebnisse jedoch dokumentieren. Ein gespeicherter Bericht dient als Nachweis der Funde und kann zur Behebung der Schwachstellen an andere Teammitglieder weitergegeben werden.
Nikto ermöglicht es Ihnen, Scan-Ergebnisse in verschiedenen Formaten zu speichern. In diesem Schritt speichern Sie den Bericht als einfache Textdatei. Verwenden Sie das Flag -o (oder -output), um eine Ausgabedatei festzulegen.
Führen Sie den Scan erneut aus und leiten Sie die Ausgabe diesmal in eine Datei namens nikto_report.txt.
nikto -h http://localhost:8000 -o nikto_report.txt
Der Scan läuft wie gewohnt ab, aber zusätzlich zur Anzeige auf dem Bildschirm werden die Ergebnisse in der angegebenen Datei in Ihrem aktuellen Verzeichnis (/home/labex/project) gespeichert.
Nachdem der Scan abgeschlossen ist, überprüfen Sie mit dem Befehl ls -l, ob die Berichtsdatei erstellt wurde. Dieser Befehl listet Dateien und deren Details auf.
ls -l nikto_report.txt
Ihre neue Berichtsdatei sollte in der Liste erscheinen und eine Dateigröße von mehr als Null aufweisen.
-rw-rw-r-- 1 labex labex 1234 ... nikto_report.txt
Um den Inhalt der Datei kurz zu bestätigen, können Sie die ersten 20 Zeilen mit dem Befehl head anzeigen lassen.
head -n 20 nikto_report.txt
Dies zeigt den Anfang des Berichts an, einschließlich der Scan-Zusammenfassung und der ersten Funde. Damit verfügen Sie nun über eine dauerhafte Aufzeichnung Ihres Scans.
Den Scan-Bericht analysieren
Nachdem die Scan-Ergebnisse gespeichert sind, besteht der letzte Schritt darin, den Bericht zu analysieren, um die identifizierten Schwachstellen zu verstehen. Dazu lesen Sie den Bericht und filtern ihn, um die wichtigsten Informationen hervorzuheben.
Zunächst können Sie sich den gesamten Bericht mit dem Befehl cat ansehen. Dies ist nützlich, um einen vollständigen Überblick über alle von Nikto gesammelten Informationen zu erhalten.
cat nikto_report.txt
Ein vollständiger Bericht kann sehr lang sein, daher ist es oft effizienter, ihn zu filtern. Nikto verwendet am Zeilenanfang ein + Symbol, um einen interessanten Fund oder eine potenzielle Schwachstelle zu kennzeichnen. Mit dem Befehl grep können Sie gezielt nur diese Zeilen anzeigen lassen.
grep '+' nikto_report.txt
Dieser Befehl filtert den Bericht und zeigt Ihnen eine kompakte Liste aller von Nikto markierten Punkte.
+ Target Host: localhost
+ Target Port: 8000
+ GET /: The anti-clickjacking X-Frame-Options header is not present.
+ HEAD /: SimpleHTTP/0.6 appears to be outdated (current is at least 1.2)
Achten Sie bei der Durchsicht dieser Ergebnisse besonders auf Beschreibungen, die auf Fehlkonfigurationen (wie fehlende Sicherheits-Header) oder das Vorhandensein sensibler Dateien hinweisen. Jeder Fund bietet einen Ausgangspunkt für weitere Untersuchungen.
Zusammenfassung
In diesem Lab haben Sie Nikto erfolgreich installiert und einen Schwachstellenscan auf einem Ziel-Webserver durchgeführt. Sie haben gelernt, wie man einen Scan ausführt, die Ergebnisse in einer Berichtsdatei speichert und die Resultate analysiert, um potenzielle Sicherheitsprobleme zu identifizieren. Diese grundlegenden Fertigkeiten – das Installieren von Sicherheitstools, das Ausführen von Scans und das Interpretieren von Berichten – sind essenziell für jeden, der in den Bereichen Cybersicherheit und Penetrationstests tätig werden möchte.



