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.
Während das Ausführen eines Scans nützlich ist, ist die Möglichkeit, die Ergebnisse in einem klaren, lesbaren und teilbaren Format zu speichern, für Sicherheitsexperten von entscheidender Bedeutung. Nikto kann Scan-Ergebnisse in verschiedene Formate exportieren, wobei HTML eines der praktischsten für die Analyse ist.
In diesem Lab lernen Sie, wie Sie einen Nikto-Scan gegen einen Ziel-Webserver ausführen und einen gut strukturierten HTML-Bericht erstellen.
Das HTML-Format mit -Format html angeben
In diesem Schritt lernen Sie, wie Sie das Ausgabeformat für Ihren Nikto-Scan angeben. Nikto kann Berichte in verschiedenen Formaten generieren, und für dieses Lab konzentrieren wir uns auf HTML, das sehr gut lesbar und einfach zu navigieren ist.
Die Option -Format wird verwendet, um Nikto mitzuteilen, welches Berichtsformat verwendet werden soll. Um einen HTML-Bericht zu generieren, müssen Sie html als Argument für diese Option angeben.
Beginnen wir damit, das Hilfemenü von Nikto zu erkunden, um die Formatoptionen anzuzeigen.
nikto -Help | grep Format
Sie sollten eine Ausgabe sehen, die die verfügbaren Formate auflistet, einschließlich html.
-Format Scan report format (csv, htm, msf+, nbe, sql, txt, xml)
Die Syntax zur Angabe des HTML-Formats lautet einfach -Format html. Wir werden dies in den folgenden Schritten mit anderen Flags kombinieren, um unseren vollständigen Befehl zu erstellen.
Verwenden Sie das Flag -o für die HTML-Ausgabedatei
In diesem Schritt lernen Sie, wie Sie die Datei angeben, in der Nikto den Bericht speichern soll. Wenn Sie nur das Format auf HTML setzen, wird der rohe HTML-Code auf Ihrem Terminal ausgegeben, was nicht sehr nützlich ist. Sie müssen diese Ausgabe in eine Datei umleiten.
Das Flag -o (oder --output) wird für diesen Zweck verwendet. Sie geben den gewünschten Dateinamen als Argument für dieses Flag an.
Kombinieren wir dies mit dem Format-Flag aus dem vorherigen Schritt. Wir werden unsere Berichtsdatei nikto_report.html nennen und sie im aktuellen Verzeichnis (~/project) speichern. Wir müssen auch das zu scannende Ziel mit dem Flag -h (oder --host) angeben. Für dieses Lab ist unser Ziel der lokale Webserver, der unter http://127.0.0.1:8000 läuft.
Die vollständige Befehlsstruktur wird wie folgt aussehen:
nikto -h http://127.0.0.1:8000 -Format html -o nikto_report.html
Wir werden diesen vollständigen Befehl im nächsten Schritt ausführen. Machen Sie sich vorerst nur mit der Struktur und dem Zweck jedes Flags vertraut.
Ausführen des Scans zur Erstellung des Berichts
Nun ist es an der Zeit, alles zusammenzufügen und den Scan auszuführen. Wir werden den Befehl verwenden, den wir in den vorherigen Schritten erstellt haben, um unseren lokalen Webserver zu scannen und die Ergebnisse in einer HTML-Datei zu speichern.
Führen Sie den folgenden Befehl in Ihrem Terminal aus. Der Scan kann einige Momente dauern.
nikto -h http://127.0.0.1:8000 -Format html -o nikto_report.html
Während des Scans zeigt Nikto seinen Fortschritt im Terminal an. Die Ausgabe wird in etwa so aussehen:
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP: 127.0.0.1
+ Target Hostname: 127.0.0.1
+ Target Port: 8000
+ Start Time: 2023-10-27 10:30:00
---------------------------------------------------------------------------
+ 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)
+ "robots.txt" not found.
+ OSVDB-3233: /: HTTP TRACE method is active, suggesting the host is vulnerable to XST
+ 7528 requests: 0 error(s) and 5 item(s) reported on remote host
+ End Time: 2023-10-27 10:30:15
+ (15 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
Nach Abschluss des Scans können Sie überprüfen, ob die Berichtsdatei erstellt wurde, indem Sie die Dateien im aktuellen Verzeichnis auflisten.
ls -l nikto_report.html
Sie sollten die Datei nikto_report.html in der Ausgabe sehen.
-rw-r--r-- 1 labex labex 21435 Oct 27 10:30 nikto_report.html
Öffnen Sie die generierte HTML-Datei in einem Webbrowser
In diesem Schritt öffnen Sie die generierte Datei nikto_report.html, um deren Inhalt anzuzeigen. Da es sich um eine HTML-Datei handelt, ist der beste Weg, sie in einem Webbrowser anzuzeigen.
Die LabEx-Umgebung enthält den Firefox-Webbrowser. Sie können den Bericht direkt vom Terminal aus öffnen, indem Sie den Befehl firefox gefolgt vom Dateinamen ausführen.
Führen Sie den folgenden Befehl aus. Dies startet Firefox und öffnet Ihren Bericht.
firefox nikto_report.html
Ein neues Firefox-Fenster sollte auf Ihrem Bildschirm erscheinen und den Nikto-Scanbericht anzeigen. Wenn das Fenster hinter Ihrem Terminal erscheint, müssen Sie möglicherweise das Terminalfenster verschieben, um es zu sehen.
Navigieren Sie durch die verschiedenen Abschnitte des HTML-Berichts
Im letzten Schritt erkunden Sie den Bericht, den Sie gerade in Firefox geöffnet haben. Der von Nikto generierte HTML-Bericht ist klar und informativ strukturiert.
Nehmen Sie sich einen Moment Zeit, um die verschiedenen Teile des Berichts zu betrachten:
- Scan-Details: Oben finden Sie eine Zusammenfassung des Scans, einschließlich der Ziel-IP, des Hostnamens, des Ports und der Zeit, zu der der Scan durchgeführt wurde.
- Schwachstellen-Tabelle: Der Hauptteil des Berichts ist eine Tabelle, die alle gefundenen Probleme auflistet. Jede Zeile stellt ein potenzielles Problem dar.
- Wichtige Spalten: Achten Sie auf die Spalte
URI, die den betroffenen Pfad anzeigt, und auf die SpalteDescription, die die Feststellung erklärt. Viele Feststellungen enthalten einen Link (oft eine OSVDB-ID), auf den Sie klicken können, um weitere detaillierte Informationen zu dieser spezifischen Schwachstelle zu erhalten.
Klicken Sie auf einige der Links im Bericht, um zu sehen, wie sie zusätzlichen Kontext bieten. Die Vertrautheit mit dieser Berichtsstruktur ist eine Schlüsselkompetenz für die Analyse von Sicherheits-Scanergebnissen. Dieser Schritt dient der Beobachtung, daher sind keine Befehle auszuführen.
Zusammenfassung
In diesem Lab haben Sie gelernt, wie Sie Nikto verwenden, um einen umfassenden Bericht über Schwachstellen von Webservern im HTML-Format zu erstellen.
Sie haben die Option -Format html geübt, um den Berichtstyp anzugeben, und das Flag -o, um die Ausgabe in einer Datei namens nikto_report.html zu speichern. Schließlich haben Sie den generierten Bericht in einem Webbrowser geöffnet und darin navigiert, wobei Sie gelernt haben, die Scan-Zusammenfassung und die detaillierten Ergebnisse zu interpretieren.
Diese Fähigkeit ist unerlässlich, um Sicherheitsbewertungen effektiv zu dokumentieren und zu kommunizieren.


