Spezifische Plugins für einen fokussierten Scan in Nikto auswählen

Kali LinuxBeginner
Jetzt üben

Einleitung

Nikto ist ein leistungsstarker 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 führt Nikto eine breite Palette von Plugins aus, was zeitaufwendig sein kann. Für effizientere und gezieltere Scans können Sie spezifische Plugins auswählen. Dies ist nützlich, wenn Sie auf eine bestimmte Schwachstelle oder eine bestimmte Art von Fehlkonfiguration prüfen möchten.

In diesem Lab lernen Sie, wie Sie alle verfügbaren Nikto-Plugins auflisten und dann einen fokussierten Scan mit einem einzigen, spezifischen Plugin durchführen.

Alle verfügbaren Plugins mit -list-plugins auflisten

In diesem Schritt lernen Sie, wie Sie alle Plugins anzeigen, die Nikto für Scans zur Verfügung hat. Dies ist der erste Schritt zur Durchführung eines fokussierten Scans, da Sie die Namen der Plugins kennen müssen, aus denen Sie wählen können.

Die Option -list-plugins weist Nikto an, eine detaillierte Liste aller Plugins auszugeben und dann zu beenden, ohne einen Scan durchzuführen.

Führen Sie den folgenden Befehl in Ihrem Terminal aus, um alle verfügbaren Plugins aufzulisten:

nikto -list-plugins

Sie werden eine lange Liste von Plugins vorbeiscrollen sehen. Die Ausgabe ist in Spalten formatiert, die den Namen des Plugins, den Autor und eine kurze Beschreibung seines Zwecks anzeigen.

Hier ist ein gekürztes Beispiel dafür, wie die Ausgabe aussehen wird:

- Nikto 2.5.0
---------------------------------------------------------------------------
Plugin: apache_expect_header
  Author:      David Lodge <dave at cirt.net>
  Description: Prüft, ob ein Expect-Header Apache zum Absturz bringt. Bugtraq ID 5253.
  Type:        Standard
  Version:     2.5.0
  CVSID:       $Id: apache_expect_header.plugin,v 1.6 2023/03/28 17:00:00 cirt Exp $

Plugin: apacheusers
  Author:      Chris Forte
  Description: Enumeriert Apache-Benutzer über ~user-Anfragen
  Type:        Standard
  Version:     2.5.0
  CVSID:       $Id: apacheusers.plugin,v 1.6 2023/03/28 17:00:00 cirt Exp $

... (viele weitere Plugins) ...

Nehmen Sie sich einen Moment Zeit, um die Liste durchzusehen und sich einen Überblick über die Vielfalt der Tests zu verschaffen, die Nikto durchführen kann.

Ein spezifisches Plugin zum Ausführen auswählen, z. B. apacheusers

In diesem Schritt überprüfen wir die Liste aus dem vorherigen Schritt und wählen ein spezifisches Plugin für unseren fokussierten Scan aus. Dies ist ein konzeptioneller Schritt, bei dem Sie ein Plugin basierend auf einem spezifischen Testziel identifizieren.

Für dieses Lab wählen wir das Plugin apacheusers. Wie seine Beschreibung besagt, versucht dieses Plugin, "Apache-Benutzer über ~user-Anfragen zu enumerieren". Dies ist ein gängiger Test, um festzustellen, ob ein Webserver gültige Systembenutzernamen preisgibt.

Auch wenn unser Zielserver ein einfacher Python-Server und kein Apache ist, werden wir dieses Plugin verwenden, um den Auswahl- und Ausführungsprozess zu demonstrieren. Das Plugin wird ausgeführt, findet aber auf unserem Nicht-Apache-Server keine Schwachstellen, was ein gültiges und erwartetes Ergebnis ist.

Im nächsten Schritt lernen Sie, wie Sie den Befehl zum Verwenden nur dieses Plugins erstellen.

Die Option -plugins mit dem gewünschten Plugin-Namen verwenden

In diesem Schritt lernen Sie, wie Sie den Nikto-Befehl erstellen, um nur das von Ihnen ausgewählte Plugin auszuführen.

Um anzugeben, welche Plugins ausgeführt werden sollen, verwenden Sie die Option -plugins, gefolgt vom Namen des Plugins. Sie können auch eine durch Kommas getrennte Liste von Plugins angeben, wenn Sie mehr als eines ausführen möchten. Für dieses Lab konzentrieren wir uns jedoch auf ein einzelnes Plugin.

Die grundlegende Befehlsstruktur lautet: nikto -h <ziel_host> -plugins <plugin_name>

Für unser ausgewähltes Plugin apacheusers und unseren lokalen Testserver auf Port 8000 lautet der Befehl: nikto -h 127.0.0.1:8000 -plugins apacheusers

Lassen Sie uns diesen Befehl aufschlüsseln:

  • nikto: Das Programm, das wir ausführen.
  • -h 127.0.0.1:8000: Die Option -h (host) gibt das Ziel an. Unser Testserver läuft auf dem lokalen Rechner (127.0.0.1) auf Port 8000.
  • -plugins apacheusers: Dies ist der entscheidende Teil des Befehls. Er weist Nikto an, nur das Plugin apacheusers auszuführen und alle anderen zu überspringen.

Im nächsten Schritt führen Sie diesen Befehl aus und sehen die Ergebnisse des fokussierten Scans.

Den fokussierten Scan auf dem Ziel ausführen

In diesem Schritt führen Sie den Befehl aus, den Sie gerade gelernt haben, um einen fokussierten Scan gegen den Test-Webserver durchzuführen.

Führen Sie den folgenden Befehl in Ihrem Terminal aus. Dies startet Nikto, aber anstatt mehrere Minuten zu laufen, wird es sehr schnell abgeschlossen, da nur ein einziges Plugin ausgeführt wird.

nikto -h 127.0.0.1:8000 -plugins apacheusers

Die Ausgabe wird wesentlich kürzer sein als ein Standard-Nikto-Scan. Sie wird ungefähr so aussehen:

- Nikto 2.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 (GMT0)
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.6
+ Allowed HTTP Methods: GET, HEAD
+ 1 host(s) tested
+ 0 error(s) and 0 item(s) reported on remote host
+ End Time:           2023-10-27 10:30:01 (GMT0) (1 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested

Beachten Sie, wie schnell der Scan abgeschlossen wurde. Dies zeigt den Hauptvorteil der Verwendung spezifischer Plugins für gezielte Tests.

Die Plugin-spezifische Ausgabe analysieren

Im letzten Schritt analysieren wir die Ausgabe unseres fokussierten Scans. Das Verständnis der Bedeutung von Ergebnissen ist eine entscheidende Fähigkeit im Sicherheitstest.

Betrachten Sie noch einmal die Ausgabe aus dem vorherigen Schritt:

- Nikto 2.5.0
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    127.0.0.1
+ Target Port:        8000
+ Start Time:         ...
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.6
...
+ 0 error(s) and 0 item(s) reported on remote host
+ End Time:           ...
---------------------------------------------------------------------------
+ 1 host(s) tested

Die wichtigste Zeile für unsere Analyse ist: + 0 error(s) and 0 item(s) reported on remote host

Diese Zeile teilt uns mit, dass das Plugin apacheusers ausgeführt wurde, aber keine der Bedingungen gefunden hat, für deren Erkennung es entwickelt wurde. Dies ist das erwartete Ergebnis, da unser Ziel ein Python-Server und kein Apache-Server ist, der so konfiguriert ist, dass er Benutzerverzeichnisse preisgibt.

Beim Penetration Testing ist ein negatives Ergebnis (keine Schwachstelle gefunden) genauso wichtig wie ein positives. Es bedeutet, dass der Server für diesen spezifischen Test sicher zu sein scheint. Durch die Ausführung nur des Plugins apacheusers konnten wir dies schnell und effizient bestätigen, ohne den Aufwand und die Zeit eines vollständigen Scans.

Zusammenfassung

Herzlichen Glückwunsch zum Abschluss dieses Labs!

Sie haben erfolgreich gelernt, wie Sie mit Nikto einen fokussierten Scan durchführen, indem Sie ein bestimmtes Plugin auswählen. Diese Technik ist für effiziente und gezielte Web-Sicherheitsbewertungen unerlässlich.

In diesem Lab haben Sie die folgenden Fähigkeiten geübt:

  • Auflisten aller verfügbaren Nikto-Plugins mit der Option -list-plugins.
  • Verstehen, wie ein relevantes Plugin für einen bestimmten Test ausgewählt wird.
  • Verwenden der Option -plugins, um Nikto anzuweisen, nur die angegebenen Plugins auszuführen.
  • Ausführen eines fokussierten Scans und Analysieren der prägnanten, Plugin-spezifischen Ausgabe.

Durch die Beherrschung dieser Fähigkeit können Sie Ihren Test-Workflow erheblich beschleunigen und Ihre Bemühungen auf die Schwachstellen konzentrieren, die für ein bestimmtes Ziel am wichtigsten sind.