Exploit-DB über die CLI durchsuchen

CybersicherheitBeginner
Jetzt üben

Einführung

Im Bereich der Cybersicherheit ist das Entdecken einer Softwareschwachstelle nur der erste Schritt. Um das tatsächliche Risiko zu verstehen, müssen Sicherheitsexperten die Lücke zwischen Entdeckung und Ausnutzung schließen. Die Exploit Database (Exploit-DB) ist ein CVE-konformes Archiv öffentlicher Exploits und der entsprechenden anfälligen Software, das für Penetrationstester und Schwachstellenforscher entwickelt wurde.

Diese Brücke ist wichtig, da ein Schwachstellenfund je nachdem, ob öffentliches Exploit-Material vorhanden ist, wie ausgereift es ist und welche Bedingungen es erfordert, eine unterschiedliche praktische Bedeutung hat. Die Zuordnung von Softwareversionen zu Exploit-Referenzen hilft dabei, eine rohe Entdeckung in einen Risikokontext zu überführen.

In diesem Lab lernen Sie, wie Sie searchsploit, die offizielle Befehlszeilenschnittstelle für die Exploit-DB, verwenden. Sie werden üben, die lokale Exploit-Datenbank zu aktualisieren, nach bestimmten Softwareversionen zu suchen, große Ergebnismengen zu filtern und den Quellcode von Exploits zur Analyse zu extrahieren. Diese Fähigkeiten sind unerlässlich, um entdeckte Dienste bekannten Angriffsvektoren zuzuordnen.

Searchsploit-Datenbank aktualisieren

In diesem Schritt lernen Sie, wie Sie sicherstellen, dass Ihre lokale Kopie der Exploit Database auf dem neuesten Stand ist.

Das Tool searchsploit stützt sich auf ein lokales Repository von Exploits. Da täglich neue Schwachstellen entdeckt und veröffentlicht werden, ist es entscheidend, diese Datenbank regelmäßig zu aktualisieren, bevor Sie Suchen durchführen. Wenn Sie eine veraltete Datenbank durchsuchen, könnten Sie kürzlich veröffentlichte Exploits für die von Ihnen untersuchte Software übersehen.

Exploit-Referenzen aktuell zu halten, ist Teil einer sauberen Arbeitsweise bei Sicherheitsbewertungen. Veralteter Kontext kann sowohl zu falscher Sicherheit als auch zu unbegründeter Dringlichkeit führen.

Um die Datenbank zu aktualisieren, können Sie das Update-Flag verwenden, das der Befehl searchsploit bereitstellt. Führen Sie den folgenden Befehl in Ihrem Terminal aus:

searchsploit -u

Sie sollten eine Ausgabe sehen, die anzeigt, dass das Tool die neuesten Änderungen aus dem offiziellen Repository abruft. Die Ausgabe sieht in etwa so aus:

[*] Updating searchsploit...
Already up to date.

Durch das Ausführen dieses Befehls wird Ihr lokales Verzeichnis /opt/exploitdb mit den neuesten Exploits, Shellcodes und Dokumenten synchronisiert, die auf der Exploit-DB verfügbar sind.

Hinweis: Der Aktualisierungsprozess kann einige Minuten in Anspruch nehmen, insbesondere bei der Überprüfung von exploitdb-papers (z. B. wenn Nothing here (/opt/exploitdb-papers). Starting fresh... angezeigt wird). Bitte haben Sie etwas Geduld und lassen Sie den Vorgang abschließen. Wenn Sie nicht warten möchten, können Sie den Prozess sicher mit Ctrl+C abbrechen oder einfach einen neuen Terminal-Tab öffnen, um mit dem Lab fortzufahren, da die Haupt-Exploit-Datenbank zuerst aktualisiert wird.

Nach Softwareversion suchen

In diesem Schritt lernen Sie, wie Sie eine grundlegende Suche nach einer bestimmten Softwareversion durchführen.

Wenn Sie ein Zielsystem scannen (z. B. mit Nmap), entdecken Sie häufig die genaue Version der darauf laufenden Dienste. Sie können diese Versionsnummern direkt an searchsploit übergeben, um relevante Exploits zu finden. Das Tool durchsucht die Titel und Beschreibungen der Exploits in seiner Datenbank nach Übereinstimmungen.

Deshalb ist eine sorgfältige Versionserkennung im Vorfeld wichtig. Je besser Ihre Softwareidentifizierung ist, desto nützlicher und präziser wird Ihre Exploit-Korrelation.

Stellen Sie sich vor, Sie haben einen FTP-Server entdeckt, auf dem vsftpd 2.3.4 läuft. Dies ist eine bekanntermaßen anfällige Version der Software. Um nach Exploits zu suchen, die sich auf diese spezifische Version beziehen, geben Sie den Softwarenamen und die Version als Argumente ein:

searchsploit vsftpd 2.3.4

Der Befehl gibt eine formatierte Tabelle zurück, die den Titel des Exploits und seinen entsprechenden Pfad in der Datenbank anzeigt. Ihre Ausgabe sollte wie folgt aussehen:

------------------------------------------------------------------------ ---------------------------------
 Exploit Title                                                          |  Path
------------------------------------------------------------------------ ---------------------------------
vsftpd 2.3.4 - Backdoor Command Execution                               | unix/remote/17491.rb
vsftpd 2.3.4 - Backdoor Command Execution (Metasploit)                  | linux/remote/16362.rb
------------------------------------------------------------------------ ---------------------------------
Shellcodes: No Results

Beachten Sie, dass die Suchergebnisse eine kurze Beschreibung der Schwachstelle (in diesem Fall eine Backdoor-Befehlsausführung) und den Pfad zur Exploit-Codedatei enthalten. Die Zahl im Dateinamen (wie 17491) ist die eindeutige Exploit Database ID (EDB-ID).

Suchergebnisse filtern

In diesem Schritt lernen Sie, wie Sie Ihre Suchanfragen mithilfe von Filtern verfeinern.

Manchmal liefert ein allgemeiner Suchbegriff Hunderte von Ergebnissen, was es schwierig macht, das zu finden, was Sie benötigen. searchsploit bietet mehrere Flags, um die Ausgabe einzugrenzen. Zwei der nützlichsten Flags sind -t (das die Suche auf den Exploit-Titel beschränkt, anstatt den gesamten Dateipfad oder die Beschreibung zu durchsuchen) und --exclude (das Ergebnisse entfernt, die bestimmte Wörter enthalten).

Angenommen, Sie suchen nach Exploits zur Privilegienerweiterung (Privilege Escalation) für den Linux-Kernel, möchten aber Denial-of-Service (DoS)-Exploits herausfiltern, da diese normalerweise nicht hilfreich sind, um Zugriff zu erlangen.

Führen Sie den folgenden Befehl aus, um die Titel nach "linux kernel privilege escalation" zu durchsuchen und dabei den Begriff "dos" auszuschließen:

searchsploit -t linux kernel privilege escalation --exclude="dos"

Sie sehen eine Liste von Exploits, die speziell auf die Privilegienerweiterung unter Linux-Kerneln zugeschnitten sind. Die Ausgabe wird umfangreich sein, aber sie wird wesentlich übersichtlicher sein als eine allgemeine Suche:

------------------------------------------------------------------------ ---------------------------------
 Exploit Title                                                          |  Path
------------------------------------------------------------------------ ---------------------------------
Linux Kernel - 'BCC' Local Privilege Escalation                         | linux/local/40759.rb
Linux Kernel - 'BPF' Local Privilege Escalation                         | linux/local/40758.rb
Linux Kernel - 'ptrace_traceme' Local Privilege Escalation              | linux/local/47133.c
...
------------------------------------------------------------------------ ---------------------------------

Die Verwendung dieser Filtertechniken ermöglicht es Ihnen, schnell die exakte Art von Exploit zu finden, die Sie für Ihr spezifisches Szenario benötigen.

Details zum Exploit-Code untersuchen

In diesem Schritt lernen Sie, wie Sie den tatsächlichen Exploit-Code extrahieren und untersuchen.

Das Finden eines Exploits ist nur ein Teil des Prozesses; Sie müssen den Code auch lesen und verstehen, bevor Sie ihn ausführen. Das Ausführen unbekannter Exploits kann gefährlich sein oder erfordert möglicherweise spezifische Änderungen (wie das Ändern der Ziel-IP-Adresse oder des Ports), um korrekt zu funktionieren.

searchsploit ermöglicht es Ihnen, einen Exploit einfach mit dem Flag -m gefolgt von der EDB-ID in Ihr aktuelles Arbeitsverzeichnis zu kopieren (zu spiegeln). Lassen Sie uns den vsftpd 2.3.4-Exploit extrahieren, den wir in Schritt 2 gefunden haben und der die EDB-ID 17491 hatte.

Führen Sie den folgenden Befehl aus, um den Exploit in Ihr Verzeichnis ~/project zu spiegeln:

searchsploit -m 17491

Sie sollten eine Ausgabe sehen, die bestätigt, dass die Datei kopiert wurde:

  Exploit: vsftpd 2.3.4 - Backdoor Command Execution
      URL: https://www.exploit-db.com/exploits/17491
     Path: /opt/exploitdb/exploits/unix/remote/17491.rb
    Codes: CVE-2011-2523, OSVDB-73573
 Verified: True
File Type: Ruby script, ASCII text
Copied to: /home/labex/project/17491.rb

Da sich die Datei 17491.rb nun in Ihrem aktuellen Verzeichnis befindet, können Sie ihren Inhalt mit einem Textleser wie cat oder einem Editor wie nano untersuchen. Führen Sie den folgenden Befehl aus, um die ersten Zeilen des Exploit-Codes anzuzeigen:

head -n 20 17491.rb

Die Ausgabe zeigt den Ruby-Quellcode für das Metasploit-Modul an, sodass Sie die Kommentare lesen, die Schwachstelle (eine bösartige Backdoor, die im Quellcode hinterlassen wurde) verstehen und sehen können, wie der Exploit sie auslöst.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie searchsploit effektiv nutzen, um direkt über die Befehlszeile in der Exploit Database zu navigieren. Sie haben damit begonnen, die lokale Datenbank zu aktualisieren, um sicherzustellen, dass Sie über die neuesten Schwachstelleninformationen verfügen. Anschließend haben Sie gezielte Suchen basierend auf bestimmten Softwareversionen durchgeführt und gelernt, wie Sie unerwünschte Ergebnisse mithilfe von Ausschluss-Flags herausfiltern. Schließlich haben Sie geübt, den Quellcode von Exploits zur sicheren Überprüfung und Analyse in Ihren lokalen Arbeitsbereich zu extrahieren. Diese Techniken sind grundlegend für Arbeitsabläufe bei Schwachstellenbewertungen und Penetrationstests.