Scan-Verhalten mit der nikto.conf-Datei anpassen

Kali LinuxBeginner
Jetzt üben

Einleitung

Nikto ist ein beliebter Open-Source-Webserver-Scanner, der umfassende Tests gegen Webserver für mehrere 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 Nikto über Befehlszeilenoptionen konfiguriert werden kann, wird sein Standardverhalten durch eine zentrale Konfigurationsdatei, nikto.conf, gesteuert. Das Verständnis, wie diese Datei geändert wird, ermöglicht es Ihnen, Standardeinstellungen dauerhaft zu ändern, Scans für spezifische Umgebungen anzupassen und Ihren Workflow zu optimieren.

In diesem Lab lernen Sie, wie Sie die Datei nikto.conf lokalisieren, lesen und ändern. Sie werden den Standard-USERAGENT-String ändern, einen Scan ausführen, um das neue Verhalten zu beobachten, und dann die ursprüngliche Konfiguration wiederherstellen.

Lokalisieren der Hauptkonfigurationsdatei nikto.conf

In diesem Schritt lokalisieren Sie die Hauptkonfigurationsdatei von Nikto, nikto.conf. Diese Datei enthält alle Standardeinstellungen, die Nikto bei der Ausführung verwendet. Auf Debian-basierten Systemen wie der von Ihnen verwendeten Ubuntu-Umgebung befindet sich diese Datei normalerweise im Verzeichnis /etc/.

Wir können den Befehl find verwenden, um das gesamte Dateisystem nach der Datei zu durchsuchen. Dies ist eine nützliche Technik, wenn Sie sich über den genauen Speicherort einer Konfigurationsdatei nicht sicher sind.

Führen Sie den folgenden Befehl in Ihrem Terminal aus, um nikto.conf zu finden. Wir leiten die Standardfehlerausgabe (2) nach /dev/null um, um "Permission denied"-Meldungen auszublenden und eine sauberere Ausgabe zu erhalten.

sudo find / -name nikto.conf 2> /dev/null

Als Ausgabe sollten Sie den Pfad zur Konfigurationsdatei sehen:

/etc/nikto.conf

Nachdem Sie nun den Speicherort kennen, können Sie mit der Überprüfung des Inhalts fortfahren.

Öffnen der Datei und Überprüfung von Standardeinstellungen wie RFIURL

In diesem Schritt öffnen Sie die Datei nikto.conf mit einem Texteditor und überprüfen einige ihrer Standardeinstellungen. Wir verwenden den Editor nano, einen einfachen Texteditor für die Befehlszeile. Da sich die Datei in /etc/ befindet und dem Root-Benutzer gehört, müssen Sie sudo verwenden, um sie zu öffnen.

Öffnen Sie die Datei mit nano:

sudo nano /etc/nikto.conf

Sobald Sie sich in nano befinden, können Sie mit den Pfeiltasten navigieren. Die Datei ist stark kommentiert (Zeilen, die mit # beginnen), um zu erklären, was jede Variable bewirkt.

Suchen wir nach einer bestimmten Variable, RFIURL. Diese Variable definiert die externe Datei, die Nikto für Remote File Inclusion (RFI)-Tests verwendet. Drücken Sie Strg + W, um die Suchaufforderung zu öffnen, geben Sie RFIURL ein und drücken Sie Enter. Sie sollten eine Zeile sehen, die dieser ähnelt:

## The URL to a remote file to use for RFI tests.
RFIURL=http://cirt.net/rfi.txt

Als Nächstes suchen wir die Variable USERAGENT, die wir im nächsten Schritt ändern werden. Drücken Sie erneut Strg + W, geben Sie USERAGENT ein und drücken Sie Enter. Sie finden den Standard-User-Agent-String, den Nikto verwendet, um sich dem Webserver zu identifizieren.

## The User-Agent to send to the web server
USERAGENT=Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0 (Nikto/2.5.0)

Nachdem Sie diese Einstellungen überprüft haben, können Sie nano verlassen, ohne Änderungen zu speichern, indem Sie Strg + X drücken.

Ändern einer statischen Variable wie des Standard-USERAGENT

Nun ändern Sie eine statische Variable in der Konfigurationsdatei. Wir werden den Standard-USERAGENT auf einen benutzerdefinierten Wert ändern. Das Ändern des User-Agents kann nützlich sein, um einen bestimmten Browser zu imitieren, einfache Erkennung zu umgehen oder Ihren Scan-Traffic für Protokollierungszwecke zu kennzeichnen.

Öffnen Sie die Datei zuerst erneut mit nano:

sudo nano /etc/nikto.conf

Verwenden Sie Strg + W, um erneut nach USERAGENT zu suchen. Sobald Sie die Zeile gefunden haben, ist es gute Praxis, den ursprünglichen Wert als Referenz beizubehalten. Fügen Sie ein # am Anfang der ursprünglichen USERAGENT-Zeile hinzu, um sie auszukommentieren. Fügen Sie dann in einer neuen Zeile direkt darunter Ihren benutzerdefinierten User-Agent hinzu.

Ihre Änderungen sollten wie folgt aussehen:

## The User-Agent to send to the web server
#USERAGENT=Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0 (Nikto/2.5.0)
USERAGENT=MyCustomScanner/1.0

Speichern Sie nun die Änderungen und beenden Sie den Editor. Drücken Sie Strg + O, um die Änderungen zu schreiben, drücken Sie Enter, um den Dateinamen zu bestätigen, und drücken Sie dann Strg + X, um nano zu beenden. Ihre Konfiguration ist nun aktualisiert.

Ausführen eines Scans zur Beobachtung des neuen Standardverhaltens

In diesem Schritt führen Sie einen Nikto-Scan gegen den lokalen Webserver aus, um Ihren neuen USERAGENT in Aktion zu sehen. Das Setup-Skript für dieses Lab hat bereits einen Apache-Webserver installiert und gestartet, der auf 127.0.0.1 (localhost) läuft.

Wenn Nikto einen Scan startet, gibt es eine Zusammenfassung der verwendeten Konfiguration aus. Dies ermöglicht uns, unsere Änderung zu überprüfen, ohne die Webserver-Logs einsehen zu müssen.

Führen Sie einen grundlegenden Scan gegen den lokalen Server mit der Option -h (host) aus:

nikto -h http://127.0.0.1

Beobachten Sie die anfängliche Ausgabe von Nikto. Sie listet die Zielinformationen und einige der für den Scan verwendeten Optionen auf. Sie sollten Ihren benutzerdefinierten User-Agent in der Ausgabe sehen.

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    127.0.0.1
+ Target Port:        80
+ Start Time:         2023-10-27 10:30:00 (GMT0)
---------------------------------------------------------------------------
- Server: Apache/2.4.52 (Ubuntu)
+ User-Agent: MyCustomScanner/1.0
- The anti-clickjacking X-Frame-Options header is not present.
... (scan results will continue) ...

Wie Sie in der Zeile + User-Agent: MyCustomScanner/1.0 sehen können, verwendet Nikto nun den von Ihnen in nikto.conf festgelegten Standardwert. Sie können den Scan jederzeit durch Drücken von Strg + C stoppen.

Rückgängigmachen der Änderungen an der ursprünglichen Konfiguration

Abschließend ist es gute Praxis, die Konfiguration in ihren ursprünglichen Zustand zurückzuversetzen, insbesondere in einer gemeinsam genutzten Umgebung. In diesem Schritt machen Sie die Änderungen an nikto.conf rückgängig.

Während des Lab-Setups wurde eine Sicherungskopie der ursprünglichen Konfigurationsdatei automatisch unter /etc/nikto.conf.bak erstellt. Sie können diese Sicherung wiederherstellen, indem Sie den Befehl mv (move) verwenden, um Ihre geänderte Datei mit der ursprünglichen zu überschreiben.

Führen Sie den folgenden Befehl aus, um die Sicherung wiederherzustellen:

sudo mv /etc/nikto.conf.bak /etc/nikto.conf

Dieser Befehl verschiebt /etc/nikto.conf.bak nach /etc/nikto.conf und ersetzt damit effektiv die von Ihnen bearbeitete Datei.

Um zu bestätigen, dass die Datei zurückgesetzt wurde, können Sie den Befehl grep verwenden, um die USERAGENT-Zeile erneut zu überprüfen.

grep USERAGENT /etc/nikto.conf

Die Ausgabe sollte nun die ursprüngliche, nicht auskommentierte User-Agent-Zeile anzeigen, was bestätigt, dass Ihre Änderungen erfolgreich rückgängig gemacht wurden.

USERAGENT=Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0 (Nikto/2.5.0)

Zusammenfassung

In diesem Lab haben Sie das Verhalten von Nikto erfolgreich angepasst, indem Sie seine zentrale Konfigurationsdatei nikto.conf bearbeitet haben. Dies ist eine grundlegende Fähigkeit, um Sicherheitstools an die spezifischen Anforderungen eines Penetrationstests oder einer Sicherheitsüberprüfung anzupassen.

Sie haben gelernt, wie Sie:

  • Die Datei nikto.conf auf einem Linux-System lokalisieren.
  • Den Zweck von Konfigurationsvariablen lesen und verstehen.
  • Eine statische Variable, insbesondere den USERAGENT, ändern.
  • Die Konfigurationsänderung durch Ausführen eines Scans und Beobachten der Ausgabe verifizieren.
  • Die ursprüngliche Konfiguration aus einer Sicherungsdatei wiederherstellen.

Das Beherrschen von Änderungen an Konfigurationsdateien ermöglicht es Ihnen, dauerhafte, benutzerdefinierte Standardeinstellungen für Ihre Werkzeuge festzulegen, wodurch Ihre Sicherheitstests effizienter und effektiver werden.