scriptkiddieclub

Lesezeit: ca. 7 Minuten

Exploit-DB (und searchsploit)

Zusammenfassung

Exploit-DB, oder „Exploit Database“, ist eine frei zugängliche Datenbank, die Informationen über Sicherheitslücken und Exploits bereitstellt. Sie enthält eine große Sammlung von Exploits, mit denen Schwachstellen in Computersystemen ausgenutzt werden können. Die Datenbank bietet Details zu den betroffenen Softwareversionen und ermöglicht es, gezielt nach Schwachstellen und Exploits zu suchen. Exploit-DB enthält auch den tatsächlichen Exploit-Code, was Sicherheitsforscher:innen hilft, Schwachstellen besser zu verstehen. Es ist ein nützliches Werkzeug für Sicherheitsexpert:innen, um Schwachstellen zu identifizieren und zu beheben, sollte jedoch nur verantwortungsvoll und legal genutzt werden.

Exploits suchen

Die Suche nach Exploits auf Exploit-DB ist eine wichtige Fähigkeit für Sicherheitsexperten und Ethical Hacker, um Schwachstellen zu identifizieren und zu verstehen. Hier ist eine Schritt-für-Schritt-Anleitung, wie du Exploits auf Exploit-DB suchen kannst:

Schritt #1: Gehe auf die Exploit-DB-Website

Öffne deinen Webbrowser und gehe zur Exploit-DB-Website. Die URL lautet https://www.exploit-db.com.

Schritt #2: Verwenden der Suchleiste

Oben rechts auf der Exploit-DB-Website findest du eine Suchleiste. In dieses Feld gibst du die Informationen ein, nach denen du suchen möchtest. Hier sind einige hilfreiche Suchtipps:

  • Software- oder Betriebssystemname: Wenn du nach Exploits für eine bestimmte Software oder ein bestimmtes Betriebssystem suchst, gib den Namen in die Suchleiste ein. Zum Beispiel „Windows 10“ oder „Apache HTTP Server“.

  • CVE-Nummer: Wenn du die spezifische CVE-Nummer einer Schwachstelle kennst, gib sie in die Suchleiste ein, um relevante Exploits zu finden.

  • Schlüsselwörter: Verwende Schlüsselwörter, die die Schwachstelle oder den Angriffstyp beschreiben, den du untersuchen möchtest. Zum Beispiel „SQL-Injection“ oder „Remote Code Execution“.

  • Beispiel aus dem Lab (Metasploitable 2): In dem Nmap Tutorial war z. B. Port 21 offen. Der Scan zeigte an, dass vsftpd in der Version 2.3.4 genutzt wurde. Nachfolgend wird dies. Gebe in der Suche vsftpd 2.3.4 ein. Die Suchergebnisse werden auf der Exploit-DB-Website angezeigt. Hier findest du eine Liste von Exploits, die deiner Suchanfrage entsprechen. Beispielsweise führt der zweite Exploit eine Reverse Shell aus. Kurz gesagt, ist ein Reverse Shell ein Kommunikationsaufbau ausgehend vom deinem Angriffsziel. Nicht du baust die Verbindung auf, sondern das Ziel baut die Verbindung mit dir auf! Du gibst lediglich den Befehl dazu. Es wird noch ein detailliertes  Tutorial zu Reverse Shells folgen.

Schritt #4: Klicke auf einen Eintrag

Um weitere Details über einen bestimmten Exploit anzuzeigen, klicke auf den Eintrag. Das wird dich auf die Seite mit den Exploit-Details führen, auf der du den Exploit-Code und zusätzliche Informationen finden kannst.

Schritt #5: Analysiere den Exploit-Code
Wenn du den Exploit-Code anzeigen möchtest, scrolle auf der Seite mit den Exploit-Details nach unten. Du kannst den Code anzeigen und analysieren, um zu verstehen, wie die Schwachstelle ausgenutzt wird.

Schritt 6: Herunterladen des Exploits
Wenn du den Exploit-Code herunterladen möchtest, gibt es normalerweise einen Link oder eine Schaltfläche auf der Seite mit den Exploit-Details, mit der du den Code herunterladen kannst. Beachte, dass du diese Dateien verantwortungsbewusst und nur in Umgebungen verwenden solltest, für die du die entsprechenden Berechtigungen hast.

Schwachstellen ausnutzen

In diesem Beispiel wird der zweite Exploit benutzt. In Klammern ist „Metasploit“ angegeben. Das bedeutet, dass dieser Exploit mit dem Hacking-Tool Metasploit ausgeführt werden kann. Das Tool hat tausende Skripts, die ethische Hacker (leider auch von bösartigen Hackern) nutzen, um Pentests durchzuführen. 

Schritt #1: Check deine IP und die deines Zieles
Um dies Schwachstelle mit Metasploit ausnutzen zu können wirst du deine IP und dies Ziels benötigen. In diesem Fall ist das Ziel Metasploitable 2. Gebe auf beiden Rechnern in der Kommandozeile folgendes ein und auch auf die Netzwerkschnittstelle eth0:

ip a

Du musst dir die IPs nicht merken, aber mach dir schon mal klar wer wer ist.

In diesem Fall hat der Kali Linux Rechner folgende IP Adresse. Dies kann bei dir eine andere IP Adresse sein. 

Der Metasploitable 2 Server hat folgende IP

Schritt #2: Finde besagtes Exploit auf Exploit-DB
Starte Metasploit in dem du folgendes in die Kommandozeile eingibst und kurz wartest:

msfconsole

Mit dem Begriff search kannst du nun die Metasploit-Datenbank nach Exploits suchen. Suche nun nach dem besagten Exploit

search vsftpd 2.3.4

Jetzt solltest du eine Liste mit Exploits sehen. In diesem Fall sollte es genau einen Eintrag haben, da wir unsere Suchanfrage sehr genau spezifiziert haben.

Wähle mit dem Begriff use den Exploit aus in dem zu die Eintragsnummer wählst, was hier die 0 (Null) ist.

use 0

Schritt #3: Konfiguriere den Exploits 
Aktuell haben wir den Exploit ausgewählt, jedoch muss dieser noch konfiguriert werden. Beispielweise gegen welche IP Adresse soll der Exploit ausgeführt werden, welcher Ports soll genutzt werden, auf welche IP Adresse soll die Reverse Shell aufgebaut werden soll?

Prüfe erst einmal welche Parameter pflichtangaben sind. Gebe dazu folgendes ein

options

In der Spalte „Required“ siehst du die Felder die befüllt werden müssen. Sie sind mit „yes“ gekennzeichnet. In Spalte „Current Settings“ siehst du die bereits vorausgefüllte Parameter. 

  • rhosts: Dieser Parameter ist noch leer, wird aber benötigt
  • rport: Dieser Parameter ist automatisch schon befüllt und muss nicht verändert werden

Setze jetzt den rhosts Parameter. Gebe dazu den Schlüsselbegriff set und den parameter rhosts an, gefolgt von der Ziel-IP-Adresse und drücke Enter.

Vergewissere dich, dass alle Parameter gesetzt und korrekt sind. Gebe dazu nochmal options ein.

Schritt #4: Führe den Exploit aus
Sofern alle Parameter richtig gesetzt sind, kannst du den Exploit mit dem Schlüsselbegriff run ausführen. Sobald der Exploit startet musst du etwas warten bis die Skripte ausgeführt wurden. Das Resultat sollte eine Reverse Shell mit root Rechten sein. Das heißt, dass das Zielsystem eine Kommunikationsverbindung mit deinem Kalirechner aufbaut und dir die weitere Kommunikation überlässt – all das mit höchsten Rechten, die man auf Linux erlangen kann.

Sobald „Command shell session 1 openend“ da steht, kannst du davon ausgehen, dass der Exploit funktioniert hat. Nicht wundern, es wird kein blinkendes Cursersymbol etc. erscheinen. Gebe einfach mal den Befehl hostname und ip a ein. Damit kannst du beweisen, dass du das Zielsystem eingenommen hast.

Glückwunsch 🎉 du hast soeben einen Linuxserver gehackt indem du die Schwachstelle in der FTP-Software vsftp 2.3.4 ausgenutzt hast. 

searchsploit

searchsploit ist ein Kommandozeilenwerkzeug, dass es ermöglicht, in der Exploit-DB-Datenbank nach Sicherheits-Exploits und Schwachstellen zu suchen. Damit kannst du gezielt nach bestimmter Software oder Betriebssysteme suchen, indem du Schlüsselwörter und Versionsinformationen verwendest. Das Tool zeigt dann eine Liste von verfügbaren Exploits an, zusammen mit Pfaden zu den zugehörigen Exploit-Codes.

Exploits suchen

Um Exploits zu suchen, musst du zuerst das Schlüsselwort searchsploit eingeben, gefolgt von dem Suchbegriff. Gebe bewusst mal nur vsftpd ein statt vsftpd 2.3.4

searchsploit vsftpd

Du wirst unterschiedliche Exploits zu unterschiedlichen Versionen zu vsftpd finden, als zuvor.

Exploit untersuchen

Sofern du schon Code lesen/interpretieren kannst, könnte diese Funktion dich interessieren. Oft müssen Exploits etwas anpassen werden. Beispielsweise Ziel-IP-Adressen, Pfade, Ports, etc. Um sich einen Vorgeschmack vom Exploits zu bekommen oder nachzuvollziehen wie der Exploit funktioniert, kannst du in den Code reinschauen. Info: Jeder Exploit ist mit einer fünf Ziffern benannt

Dafür benötigst du den Pfad (Path) zum Exploit. Such dir einen Exploit aus und kopiere den Pfad aus der letzten Spalte. Gebe wieder den Schlüsselbegriff searchsploit ein, gefolgt von der Option -x (examine), gefolgt von dem Pfad. In diesem Beispiel schauen wir uns den Exploit 49757.py. Dies ist ein Exploit, welcher in Python geschrieben ist – erkennbar an der .py Endung.

searchsploit -x unix/remote/49757.py

Wenn du jetzt Enter drückst, sollte sich der Code öffnen. Da es in diesem Tutorial nicht primär um Quellcodeanalyse geht, wird auf eine ausführliche Erklärung verzichtet. Kurz gesagt, kann jedoch erwähnt werden, dass die Schwachstelle in vsftpd 2.3.4 darin besteht, dass die Sonderzeichen :) im Usernamen dazu führt, dass jegliche Usernamen und Passwörter akzeptiert werden – egal ob richtig oder falsch.
Tippe q um die Untersuchung zu beenden.

Exploit herunterladen

Sagen wir, dass wir einen Exploit gefunden haben und dieser uns taugt. Falls dieser Exploit nicht mit Metasploit gestartet werden kann, müssen wir diesen herunterladen und manuell starten. Um einen Exploit herunter zu laden, ist wieder der Pfad notwendig. Anstatt die Option -x zu verwenden, kannst du stattdessen -m (mirror) verwenden, um den Exploit herunter zu laden. Dabei wird in den Pfad heruntergeladen, in dem du dich gerade befindest. 

searchsploit -m unix/remote/49757.py 

Ich habe zuvor den Pfad zu /scriptkiddieclub/Schwachstelle_finden_und_ausnutzen mit dem Befehl cd (change directory) gewechselt. Ich prüfe mit ls -al (list) nochmal nach, ob der Download auch wirklich funktioniert hat.

Der Exploit  wurde erfolgreich runtergeladen. In diesem Fall könnte der Exploit mit wenigen Anpassungen ausgeführt werden. Exploitcustomizing wird jedoch in einem anderem Tutorial behandelt. 

Sensibilisierung

Konstant werden Schwachstellen aufgedeckt, sei es von IT-Sicherheitsforschern oder von böswilligen Hackern. Der Fall „log4j“ (https://www.heise.de/news/Kritische-Zero-Day-Luecke-in-log4j-gefaehrdet-zahlreiche-Server-und-Apps-6291653.html) hatte viele Unternehmen große Kopfschmerzen bereitet. Dabei wird log4j seit über 20 Jahren eingesetzt.

Nicht anders ist in Fall von vsftpd 2.3.4. Zu seiner Zeit wurde ebenfalls eine Schwachstelle entdeckt. Was lernen wir daraus? Sofern Updates seitens Entwicklern zur Verfügung gestellt werden,  immer Updates durchführen. Wenn das nicht möglich ist, sollte man über eine Schließung des Ports bzw. über das offline nehmen der  jeweiligen Server/Software/Service/System/etc. nachdenken.