Einleitung
In diesem Lab lernen Sie die Grundlagen der Verwendung von Gobuster für das Directory-Scanning. Gobuster ist ein leistungsstarkes Werkzeug, das beim Penetration Testing und Ethical Hacking eingesetzt wird, um versteckte Verzeichnisse und Dateien auf Webservern zu entdecken. Durch Brute-Force-Angriffe mit gängigen Verzeichnisnamen gegen eine Ziel-URL kann Gobuster sensible Informationen oder übersehene Einstiegspunkte aufdecken. Dieses Lab führt Sie durch die Auswahl eines Ziels, die Wahl einer geeigneten Wortliste, die Erstellung des Gobuster-Befehls, die Ausführung des Scans und die Interpretation der Ergebnisse.
Ziel-URL für den Scan auswählen
In diesem Schritt wählen Sie eine Ziel-URL für Ihren Gobuster-Scan aus. Für dieses Lab verwenden wir eine absichtlich verwundbare Webanwendung, die lokal gehostet wird. Dies stellt sicher, dass Sie den Scan durchführen können, ohne externe Systeme zu beeinträchtigen, und typische Ergebnisse beobachten können.
Zuerst stellen wir sicher, dass der Ziel-Webserver läuft. Wir verwenden curl, um zu überprüfen, ob der Webserver erreichbar ist.
Öffnen Sie Ihr Terminal im Verzeichnis ~/project.
curl http://localhost:8080
Sie sollten eine HTML-Ausgabe sehen, die anzeigt, dass der Webserver aktiv ist. Die Ziel-URL für unseren Scan wird http://localhost:8080 sein.
<!DOCTYPE html>
<html>
<head>
<title>Welcome to Nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to Nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
Eine grundlegende Wortliste auswählen
In diesem Schritt wählen Sie eine grundlegende Wortliste für Ihren Gobuster-Scan aus. Eine Wortliste ist eine Datei, die eine Liste gängiger Verzeichnis- und Dateinamen enthält, nach denen Gobuster auf dem Zielserver suchen wird. Die Qualität und Vollständigkeit Ihrer Wortliste beeinflusst direkt die Effektivität Ihres Scans.
Für dieses Lab verwenden wir eine kleine, vorinstallierte Wortliste, die für Demonstrationszwecke geeignet ist. Diese Wortliste befindet sich unter /usr/share/wordlists/dirb/common.txt.
Sie können die ersten Zeilen dieser Wortliste mit dem Befehl head einsehen, um ihren Inhalt zu verstehen:
head /usr/share/wordlists/dirb/common.txt
Dieser Befehl zeigt den Anfang der Wortliste an und gibt Beispiele für die Verzeichnisnamen, die Gobuster testen wird.
admin/
backup/
bin/
cgi-bin/
conf/
css/
data/
db/
dev/
doc/
Diese Wortliste enthält gängige Verzeichnisnamen, die häufig auf Webservern zu finden sind. Die Verwendung einer kleineren Wortliste wie dieser hilft, den Scan für die Zwecke dieses Labs schnell abzuschließen.
Den grundlegenden gobuster dir Befehl erstellen
In diesem Schritt erstellen Sie den grundlegenden gobuster dir-Befehl. Der Befehl gobuster dir wird für das Brute-Forcing von Verzeichnissen und Dateien verwendet. Er erfordert mindestens zwei Haupt-Flags: -u für die Ziel-URL und -w für die Wortliste.
Die grundlegende Syntax für den Befehl lautet:
gobuster dir -u <target_url> -w <wordlist_path>
Basierend auf unseren vorherigen Schritten:
- Die Ziel-URL ist
http://localhost:8080. - Der Pfad zur Wortliste ist
/usr/share/wordlists/dirb/common.txt.
Der Befehl, den Sie erstellen werden, lautet also:
gobuster dir -u http://localhost:8080 -w /usr/share/wordlists/dirb/common.txt
Dieser Befehl weist Gobuster an, einen Verzeichnis-Scan auf http://localhost:8080 durchzuführen und dabei die Einträge in common.txt als potenzielle Verzeichnisnamen zu verwenden. Diesen Befehl werden Sie im nächsten Schritt ausführen.
Den Scan mit den Flags -u und -w ausführen
In diesem Schritt führen Sie den im vorherigen Schritt erstellten gobuster dir-Befehl aus. Dies initiiert den Verzeichnis-Scan gegen unsere Ziel-URL unter Verwendung der angegebenen Wortliste.
Führen Sie den folgenden Befehl in Ihrem Terminal aus:
gobuster dir -u http://localhost:8080 -w /usr/share/wordlists/dirb/common.txt
Während des Scans zeigt Gobuster seinen Fortschritt und alle gefundenen Verzeichnisse oder Dateien an. Die Ausgabe zeigt den Statuscode (z. B. 200 für OK, 301 für Moved Permanently) und die Größe der Antwort für jeden gefundenen Eintrag.
===============================================================
Gobuster vX.X.X-XXXXXX Linux/amd64
===============================================================
[+] Url: http://localhost:8080
[+] Threads: 10
[+] Wordlist: /usr/share/wordlists/dirb/common.txt
[+] Status codes: 200,204,301,302,307,401,403
[+] User Agent: gobuster/X.X.X
[+] Timeout: 10s
===============================================================
XXXX/XX/XX XX:XX:XX Starting gobuster in directory enumeration mode
===============================================================
/css (Status: 301)
/js (Status: 301)
/images (Status: 301)
/admin (Status: 301)
/icons (Status: 301)
/server-status (Status: 403)
===============================================================
XXXX/XX/XX XX:XX:XX Finished
===============================================================
Die obige Ausgabe zeigt mehrere gefundene Verzeichnisse zusammen mit ihren HTTP-Statuscodes. Zum Beispiel gab /css den Status 301 zurück, was auf eine permanente Weiterleitung hinweist.
Die Ausgabe auf gefundene Verzeichnisse analysieren
In diesem Schritt analysieren Sie die Ausgabe Ihres Gobuster-Scans, um die Ergebnisse zu verstehen. Die Ausgabe liefert wertvolle Informationen über die auf dem Ziel-Webserver entdeckten Verzeichnisse und Dateien.
Überprüfen Sie die Ausgabe aus dem vorherigen Schritt. Sie sollten Zeilen ähnlich den folgenden sehen:
/css (Status: 301)
/js (Status: 301)
/images (Status: 301)
/admin (Status: 301)
/icons (Status: 301)
/server-status (Status: 403)
Jede Zeile repräsentiert ein potenzielles Verzeichnis oder eine Datei, die von Gobuster identifiziert wurde.
- Der erste Teil, z. B.
/css, ist der Pfad, den Gobuster erfolgreich identifiziert hat. (Status: XXX)gibt den HTTP-Statuscode an, den der Server für diesen Pfad zurückgegeben hat.200 OK: Die Anfrage war erfolgreich und der Inhalt wurde zurückgegeben. Dies bedeutet oft ein gültiges Verzeichnis oder eine gültige Datei.301 Moved Permanently: Die Ressource wurde dauerhaft an eine neue URL verschoben. Dies zeigt immer noch die Existenz des Verzeichnisses an.403 Forbidden: Der Server hat die Anfrage verstanden, weigert sich aber, sie zu autorisieren. Dies bedeutet, dass das Verzeichnis existiert, Sie aber keine Berechtigung haben, direkt darauf zuzugreifen.401 Unauthorized: Ähnlich wie 403, erfordert aber typischerweise eine Authentifizierung.
In unserem Beispiel gaben /css, /js, /images, /admin und /icons alle 301-Statuscodes zurück, was bedeutet, dass diese Verzeichnisse existieren und der Server Anfragen an sie weiterleitet. Der Pfad /server-status gab einen 403-Status zurück, was darauf hindeutet, dass er existiert, der Zugriff jedoch verweigert wird.
Diese Analyse hilft Ihnen, potenzielle Bereiche für weitere Untersuchungen zu identifizieren, wie z. B. administrative Panels (/admin) oder Konfigurationsdateien, die anfällig sein könnten.
Zusammenfassung
In diesem Lab haben Sie erfolgreich einen grundlegenden Verzeichnis-Scan mit Gobuster durchgeführt. Sie haben gelernt, wie Sie eine Ziel-URL auswählen, eine geeignete Wortliste auswählen, den gobuster dir-Befehl mit den Flags -u und -w erstellen, den Scan ausführen und die Ausgabe analysieren, um vorhandene Verzeichnisse und deren HTTP-Statuscodes zu identifizieren. Diese grundlegende Fähigkeit ist entscheidend für die Aufklärung in der Cybersicherheit und hilft Ihnen, versteckte Web-Assets zu entdecken, die sensible Informationen oder Schwachstellen enthalten könnten. Sie können diese Techniken nun mit verschiedenen Wortlisten und Zielen anwenden, um Ihr Verständnis von Webserver-Strukturen zu erweitern.
