Nach spezifischen Dateierweiterungen in Gobuster suchen

Beginner
Jetzt üben

Einleitung

Gobuster ist ein leistungsstarkes Werkzeug, das für das Brute-Forcing von Verzeichnissen und Dateien auf Webservern verwendet wird. Während es üblicherweise zur Entdeckung versteckter Verzeichnisse eingesetzt wird, kann es auch genutzt werden, um Dateien mit bestimmten Erweiterungen zu finden. Diese Fähigkeit ist entscheidend für Penetrationstests und Sicherheitsbewertungen, da sie hilft, potenzielle Einstiegspunkte, sensible Dateien oder Fehlkonfigurationen zu identifizieren, die nicht sofort ersichtlich sind. Zum Beispiel können .php-Dateien auf eine Webanwendung hinweisen, während .bak- oder .old-Dateien Backup-Kopien sensibler Daten aufdecken könnten.

In diesem Lab lernen Sie, wie Sie das -x-Flag von Gobuster effektiv nutzen, um während Ihres Web-Enumerationsprozesses spezifische Dateierweiterungen anzuzielen. Sie beginnen mit der Identifizierung gängiger und relevanter Dateierweiterungen, erstellen einen grundlegenden Gobuster-Befehl und verbessern ihn dann, um erweiterungsspezifisches Scannen einzuschließen. Schließlich führen Sie den Scan aus und analysieren die Ergebnisse, um zu verstehen, wie die Ausgabe zu interpretieren ist. Diese praktische Erfahrung wird Ihnen eine wertvolle Fähigkeit für eine gezieltere und effizientere Web-Aufklärung vermitteln.

Ziel-Dateierweiterungen identifizieren (z. B. .php, .html)

In diesem Schritt lernen Sie, gängige und relevante Dateierweiterungen zu identifizieren, nach denen Sie während einer Web-Enumeration suchen möchten. Die Wahl der Erweiterungen hängt oft vom Ziel-Technologie-Stack ab (z. B. .php für PHP-Anwendungen, .aspx für ASP.NET, .jsp für Java-Anwendungen) oder von gängigen Dateitypen, die sensible Informationen enthalten könnten (z. B. .txt, .bak, .zip, .sql).

Für dieses Lab konzentrieren wir uns auf einige gängige webbezogene Erweiterungen: .php, .html und .txt. Diese werden häufig angetroffen und dienen als gute Beispiele zur Demonstration der Fähigkeiten von Gobuster.

Sie können einige gängige Erweiterungen auflisten, die Sie für Ihre Scans im Auge behalten sollten. Obwohl Sie in diesem Schritt keinen Befehl ausführen müssen, ist das Verständnis der gesuchten Dateitypen der erste entscheidende Schritt bei jedem gezielten Scan.

Beachten Sie die folgenden gängigen Erweiterungen:

  • .php: PHP-Skripte
  • .html, .htm: HTML-Seiten
  • .txt: Textdateien, die oft Notizen oder Protokolle enthalten
  • .js: JavaScript-Dateien
  • .css: Cascading Style Sheets
  • .xml: XML-Dateien
  • .json: JSON-Datendateien
  • .bak, .old, .orig: Backup-Dateien
  • .zip, .tar.gz: Archivdateien
  • .sql: Datenbank-Dumps

Zu wissen, welche Erweiterungen Sie anvisieren müssen, hilft, Ihre Suche einzugrenzen und Ihre Enumeration effizienter zu gestalten.

Den grundlegenden gobuster dir-Befehl erstellen

In diesem Schritt erstellen Sie den grundlegenden gobuster dir-Befehl. Der dir-Modus in Gobuster wird für das Brute-Forcing von Verzeichnissen und Dateien verwendet. Bevor Sie erweiterungsspezifische Optionen hinzufügen, ist es gute Praxis, die grundlegende Befehlsstruktur zu verstehen.

Die wesentlichen Komponenten eines gobuster dir-Befehls sind:

  • gobuster dir: Gibt den Modus (Verzeichnis-/Datei-Brute-Forcing) an.
  • -u <URL>: Gibt die Ziel-URL an. Für dieses Lab ist unser Ziel http://localhost:8000, das Dateien aus /tmp/web_root bereitstellt.
  • -w <wordlist>: Gibt die zu verwendende Wortliste für das Brute-Forcing an. Eine gängige Wortliste für die Web-Enumeration ist common.txt oder directory-list-2.3-medium.txt. Der Einfachheit und Geschwindigkeit halber verwenden wir in diesem Lab eine kleine benutzerdefinierte Wortliste, die index, about, notes und admin enthält.

Erstellen wir eine einfache Wortliste in Ihrem ~/project-Verzeichnis.

echo -e "index\nabout\nnotes\nadmin\nconfig" > ~/project/small_wordlist.txt

Nun erstellen wir den Basisbefehl ohne Erweiterungen. Dieser Befehl versucht, Verzeichnisse oder Dateien zu finden, die mit den Einträgen in small_wordlist.txt übereinstimmen.

gobuster dir -u http://localhost:8000 -w ~/project/small_wordlist.txt

Sie sehen eine Ausgabe ähnlich dieser, die die gefundenen Verzeichnisse/Dateien ohne spezifische Erweiterungen anzeigt:

...
/index (Status: 200)
/about (Status: 200)
/notes (Status: 200)
/admin (Status: 200)
/config (Status: 200)
...

Diese Ausgabe zeigt, dass Gobuster Einträge gefunden hat, die mit der Wortliste übereinstimmen, aber sie sagt uns noch nichts über ihre spezifischen Dateitypen.

Das Flag -x zum Angeben von Erweiterungen hinzufügen

In diesem Schritt lernen Sie, wie Sie das Flag -x in Gobuster verwenden, um die Dateierweiterungen anzugeben, nach denen Sie suchen möchten. Dies ist der Kern der Suche nach Dateien bestimmter Typen.

Das Flag -x nimmt eine durch Kommas getrennte Liste von Erweiterungen entgegen. Um beispielsweise nach .php- und .html-Dateien zu suchen, würden Sie -x php,html verwenden. Gobuster hängt dann diese Erweiterungen an jeden Eintrag in Ihrer Wortliste an und versucht, Dateien wie index.php, about.html usw. zu finden.

Lassen Sie uns den vorherigen Befehl ändern, um die Erweiterungen .php, .html und .txt einzuschließen.

gobuster dir -u http://localhost:8000 -w ~/project/small_wordlist.txt -x php,html,txt,bak

Dieser Befehl weist Gobuster an, für jeden Eintrag in Ihrer Wortliste nach index.php, index.html, index.txt, index.bak, about.php, about.html, about.txt, about.bak usw. zu suchen.

Führen Sie den Befehl aus und beobachten Sie die Ausgabe. Sie sollten nun Ergebnisse sehen, die explizit die Dateierweiterungen enthalten.

...
/index.php (Status: 200)
/about.html (Status: 200)
/notes.txt (Status: 200)
/admin.php (Status: 200)
/config.bak (Status: 200)
...

Beachten Sie, wie die Ausgabe nun klar die Dateinamen mit ihren jeweiligen Erweiterungen anzeigt, was darauf hindeutet, dass Gobuster diese Dateien erfolgreich gefunden hat.

Den Scan gegen das Ziel ausführen

In diesem Schritt führen Sie den vollständigen Gobuster-Befehl mit den angegebenen Erweiterungen gegen unser simuliertes Ziel aus. Dies ist die praktische Anwendung dessen, was Sie gelernt haben.

Wir verwenden den Befehl aus dem vorherigen Schritt, der die Ziel-URL, die benutzerdefinierte Wortliste und das Flag -x mit den Erweiterungen .php, .html, .txt und .bak enthält.

gobuster dir -u http://localhost:8000 -w ~/project/small_wordlist.txt -x php,html,txt,bak

Wenn Sie diesen Befehl ausführen, beginnt Gobuster mit der Iteration durch die Wortliste, hängt jede angegebene Erweiterung an und sendet Anfragen an den Server http://localhost:8000.

Die Ausgabe zeigt die von ihm entdeckten Dateien zusammen mit ihren HTTP-Statuscodes an. Ein Statuscode 200 OK zeigt an, dass die Datei erfolgreich gefunden wurde.

===============================================================
Gobuster v3.6
by OJ (https://github.com/OJ/gobuster)
===============================================================
[+] Url:                     http://localhost:8000
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /home/labex/project/small_wordlist.txt
[+] Extensions:              php,html,txt,bak
[+] Timeout:                 10s
===============================================================
2024/01/01 12:00:00 Starting gobuster in directory enumeration mode
===============================================================
/index.php            (Status: 200)
/about.html           (Status: 200)
/notes.txt            (Status: 200)
/admin.php            (Status: 200)
/config.bak           (Status: 200)
===============================================================
2024/01/01 12:00:00 Finished
===============================================================

Diese Ausgabe bestätigt, dass Gobuster erfolgreich index.php, about.html, notes.txt, admin.php und config.bak auf dem Zielserver identifiziert hat.

Ergebnisse für Dateien mit spezifischen Erweiterungen überprüfen

In diesem letzten Schritt überprüfen und interpretieren Sie die Ergebnisse Ihres Gobuster-Scans. Das Verständnis der Ausgabe ist entscheidend für die Identifizierung wertvoller Informationen während einer Sicherheitsbewertung.

Die Ausgabe aus dem vorherigen Schritt listet klar die gefundenen Dateien zusammen mit ihren HTTP-Statuscodes auf.

===============================================================
Gobuster v3.6
by OJ (https://github.com/OJ/gobuster)
===============================================================
[+] Url:                     http://localhost:8000
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /home/labex/project/small_wordlist.txt
[+] Extensions:              php,html,txt,bak
[+] Timeout:                 10s
===============================================================
2024/01/01 12:00:00 Starting gobuster in directory enumeration mode
===============================================================
/index.php            (Status: 200)
/about.html           (Status: 200)
/notes.txt            (Status: 200)
/admin.php            (Status: 200)
/config.bak           (Status: 200)
===============================================================
2024/01/01 12:00:00 Finished
===============================================================

Hier ist die Bedeutung jeder Zeile:

  • /index.php (Status: 200): Zeigt an, dass eine Datei namens index.php im Stammverzeichnis des Webservers gefunden wurde und der Server mit dem Status 200 OK geantwortet hat, was bedeutet, dass die Anfrage erfolgreich war.
  • /about.html (Status: 200): Ebenso wurde about.html gefunden.
  • /notes.txt (Status: 200): Eine Textdatei namens notes.txt wurde gefunden. Diese könnte potenziell sensible Informationen enthalten.
  • /admin.php (Status: 200): Eine Datei admin.php wurde gefunden. Dies könnte eine administrative Schnittstelle sein, die oft ein Ziel für weitere Untersuchungen ist.
  • /config.bak (Status: 200): Eine Sicherungsdatei namens config.bak wurde gefunden. Sicherungsdateien enthalten oft sensible Konfigurationsdetails oder Quellcode.

Durch die Überprüfung dieser Ergebnisse können Sie Dateien identifizieren, die für weitere Untersuchungen interessant sein könnten. Sie könnten beispielsweise versuchen, /admin.php in einem Webbrowser aufzurufen oder /config.bak herunterzuladen, um dessen Inhalt zu untersuchen.

Diese gezielte Suche nach Erweiterungen hilft bei der Entdeckung versteckter oder vergessener Dateien, die zu Schwachstellen oder Informationslecks führen könnten.

Zusammenfassung

In diesem Lab haben Sie erfolgreich gelernt, wie Sie Gobuster zum Scannen nach spezifischen Dateierweiterungen auf einem Ziel-Webserver verwenden. Sie haben damit begonnen, die Bedeutung der Identifizierung relevanter Dateierweiterungen zu verstehen, dann einen grundlegenden gobuster dir-Befehl erstellt und diesen schließlich mit dem Flag -x erweitert, um .php, .html, .txt und .bak-Dateien anzuzielen.

Sie haben den Scan gegen einen simulierten Webserver ausgeführt und die Ergebnisse interpretiert, wobei Sie verschiedene Dateien mit ihren jeweiligen Erweiterungen und HTTP-Statuscodes identifiziert haben. Diese Fähigkeit ist für die Web-Enumeration während Penetrationstests von unschätzbarem Wert, da sie es Ihnen ermöglicht, versteckte Dateien zu entdecken, die sensible Informationen enthalten, den Technologie-Stack offenlegen oder potenzielle Einstiegspunkte aufdecken könnten.

Durch die Beherrschung der Verwendung des Flags -x können Sie eine gezieltere und effizientere Aufklärung durchführen und Ihre Fähigkeit, Schwachstellen in Webanwendungen aufzudecken, erheblich verbessern. Üben Sie weiterhin mit verschiedenen Wortlisten und Erweiterungskombinationen, um Ihre Web-Enumerationsfähigkeiten weiter zu verfeinern.