Einleitung
In der Sicherheit von Webanwendungen ist die Entdeckung versteckter Dateien und Verzeichnisse ein kritischer Schritt in der Aufklärungsphase. Viele Anwendungen speichern sensible Konfigurations-, Versionskontroll- oder Umgebungsvariablen in Dateien, die mit einem Punkt beginnen (z. B. .env, .git, .htaccess). Diese Dateien sind in Dateibrowsern und Webservern standardmäßig oft versteckt, was sie zu weniger offensichtlichen Zielen macht. Wenn sie jedoch falsch konfiguriert sind, können sie direkt über einen Webserver zugänglich sein, was zu schwerwiegenden Schwachstellen bei der Offenlegung von Informationen führt.
Gobuster ist ein leistungsstarkes Werkzeug zum Brute-Forcing von Verzeichnissen und Dateien, das verwendet werden kann, um diese versteckten Assets aufzudecken. Durch die Bereitstellung einer gezielten Wortliste, die gängige, mit einem Punkt beginnende Dateinamen enthält, können Sie Ihre Chancen, wertvolle Informationen zu finden, die sonst übersehen werden könnten, erheblich erhöhen.
Dieses Lab führt Sie durch den Prozess der Verwendung von Gobuster, um gezielt diese versteckten, mit einem Punkt beginnenden Dateien zu identifizieren und zu entdecken. Sie lernen, wie Sie eine geeignete Wortliste vorbereiten, einen Gobuster-Scan ausführen und die Ergebnisse interpretieren, um potenzielle Sicherheitsrisiken zu erkennen.
Bedeutung von dot-präfixierten Dateien (z. B. .env, .git) verstehen
In diesem Schritt werden wir verstehen, warum dot-präfixierte Dateien im Kontext der Websicherheit wichtig sind. Dateien wie .env, .git, .htaccess, .bashrc oder .ssh werden häufig in Linux- und Webentwicklungs-Umgebungen verwendet, um Konfigurationen, Versionskontrolldaten oder sensible Anmeldeinformationen zu speichern.
.env-Dateien: Diese Dateien speichern Umgebungsvariablen, oft einschließlich Datenbankanmeldeinformationen, API-Schlüsseln und anderen sensiblen Anwendungseinstellungen. Wenn sie offengelegt werden, können sie einem Angreifer vollen Zugriff auf Backend-Systeme gewähren..git-Verzeichnisse: Wenn ein.git-Verzeichnis auf einem Webserver offengelegt wird, kann dies einem Angreifer ermöglichen, das gesamte Quellcode-Repository herunterzuladen, einschließlich des Commit-Verlaufs, sensibler Dateien, die einst Teil des Repositorys waren, und interner Kommentare..htaccess-Dateien: Werden von Apache-Webservern verwendet, um Verzeichniseinstellungen zu konfigurieren, einschließlich Authentifizierung, Autorisierung und URL-Rewriting. Fehlkonfigurationen oder Offenlegungen können zu Umgehungen oder Informationslecks führen.
Obwohl diese Dateien in Dateiexplorern standardmäßig versteckt sind und oft über Webserver nicht zugänglich sein sollen, können Fehlkonfigurationen sie unbeabsichtigt offenlegen. Ihre Entdeckung während der Aufklärung kann kritische Einblicke in die Infrastruktur der Zielanwendung und potenzielle Schwachstellen liefern.
Wir haben für dieses Lab einen einfachen Webserver im Hintergrund eingerichtet, der Inhalte aus /tmp/web_root bereitstellt. Dieses Verzeichnis enthält eine versteckte .env-Datei und eine .hidden_config-Datei, die wir zu entdecken versuchen werden.
Erstellen oder Finden einer Wortliste mit dot-präfixierten Dateinamen
In diesem Schritt bereiten wir eine Wortliste vor, die speziell für das Finden von dot-präfixierten Dateien entwickelt wurde. Obwohl viele allgemeine Wortlisten existieren (wie die in SecLists), kann die Erstellung einer gezielten Wortliste für diese spezielle Aufgabe effizienter sein.
Wir erstellen eine einfache Wortliste namens dotfiles.txt in Ihrem ~/project-Verzeichnis. Diese Wortliste wird gängige dot-präfixierte Dateinamen enthalten, nach denen Gobuster suchen soll.
Navigieren Sie zuerst zu Ihrem Projektverzeichnis:
cd ~/project
Erstellen Sie nun die Datei dotfiles.txt mit nano und fügen Sie einige gängige dot-präfixierte Dateinamen hinzu.
nano dotfiles.txt
Fügen Sie innerhalb von nano die folgenden Zeilen hinzu:
.env
.git
.htaccess
.bashrc
.profile
.ssh
.hidden_config
Drücken Sie Strg+S zum Speichern der Datei und Strg+X zum Beenden von nano.
Sie können den Inhalt der Wortliste mit cat überprüfen:
cat dotfiles.txt
Sie sollten die Liste der dot-präfixierten Dateinamen sehen, die Sie gerade hinzugefügt haben.
.env
.git
.htaccess
.bashrc
.profile
.ssh
.hidden_config
Diese Wortliste wird von Gobuster verwendet, um die Existenz dieser spezifischen Dateien auf dem Ziel-Webserver per Brute-Force zu ermitteln.
Ausführen eines Gobuster Dir-Scans mit dieser spezifischen Wortliste
In diesem Schritt führen wir einen gobuster dir-Scan mit der von uns erstellten dotfiles.txt-Wortliste aus. Wir werden den Dummy-Webserver anvisieren, der auf http://127.0.0.1:8000 läuft.
Die grundlegende Syntax für gobuster dir lautet:
gobuster dir -u <target_url> -w <wordlist_path>
Hier gibt -u die Ziel-URL an und -w den Pfad zur Wortliste.
Führen Sie den folgenden Befehl in Ihrem Terminal aus:
gobuster dir -u http://127.0.0.1:8000 -w ~/project/dotfiles.txt
Lassen Sie uns den Befehl aufschlüsseln:
gobuster dir: Gibt an, dass wir einen Brute-Force-Scan für Verzeichnisse/Dateien durchführen möchten.-u http://127.0.0.1:8000: Legt die Ziel-URL auf unseren lokalen Dummy-Webserver fest.-w ~/project/dotfiles.txt: Weist Gobuster an, unsere benutzerdefiniertedotfiles.txt-Wortliste zu verwenden.
Nachdem Sie den Befehl ausgeführt haben, beginnt Gobuster, die Wortliste zu durchlaufen und Anfragen an den Zielserver zu senden. Sie sollten eine Ausgabe ähnlich der folgenden sehen, die die gefundenen Dateien anzeigt:
===============================================================
Gobuster vX.X.X.X-XXXXX Linux/amd64
===============================================================
[+] Url: http://127.0.0.1:8000
[+] Method: GET
[+] Threads: 10
[+] Wordlist: /home/labex/project/dotfiles.txt
[+] Status codes: 200,204,301,302,307,401,403
[+] User Agent: gobuster/X.X.X
[+] Timeout: 10s
===============================================================
2024/01/01 12:00:00 Starting gobuster in directory enumeration mode
===============================================================
/.env (Status: 200) [Size: 20]
/.hidden_config (Status: 200) [Size: 27]
===============================================================
2024/01/01 12:00:00 Finished
===============================================================
Wie Sie sehen können, hat Gobuster erfolgreich die Dateien .env und .hidden_config identifiziert, die beide den Status 200 OK zurückgeben, was bedeutet, dass sie zugänglich sind.
Verwenden des Flags --no-error zum Ausblenden von Verbindungsfehlern
In diesem Schritt lernen wir das --no-error-Flag in Gobuster kennen. Bei Scans, insbesondere gegen instabile Ziele oder bei Netzwerkproblemen, kann Gobuster viele Meldungen über Verbindungsfehler ausgeben. Diese Fehler können die Ausgabe unübersichtlich machen und es erschweren, legitime Funde zu erkennen.
Das --no-error-Flag weist Gobuster an, diese verbindungsbezogenen Fehlermeldungen zu unterdrücken, was zu einer saubereren Ausgabe führt, die sich auf erfolgreiche Entdeckungen konzentriert.
Lassen Sie uns den Gobuster-Scan erneut ausführen, diesmal einschließlich des --no-error-Flags. Obwohl unser aktueller lokaler Server stabil ist, ist dieses Flag in realen Szenarien sehr nützlich.
gobuster dir -u http://127.0.0.1:8000 -w ~/project/dotfiles.txt --no-error
Sie werden feststellen, dass die Ausgabe der des vorherigen Schritts ähnelt, da in unserer stabilen lokalen Umgebung keine zu unterdrückenden Verbindungsfehler auftraten. In einem realen Szenario mit vielen Anfragen und potenziellen Netzwerkproblemen würde dieses Flag jedoch das Rauschen erheblich reduzieren.
Der Hauptzweck dieses Flags ist die Verbesserung der Lesbarkeit der Scanergebnisse durch Filterung irrelevanter Fehlermeldungen, sodass Sie sich auf die tatsächlichen Funde konzentrieren können (z. B. 200 OK-Antworten).
Analyse der Ergebnisse auf sensible Dateiveröffentlichungen
In diesem letzten Schritt analysieren wir die Ergebnisse des Gobuster-Scans und verstehen die Auswirkungen der Entdeckung solcher Dateien.
Aus der Ausgabe unseres vorherigen Gobuster-Scans haben wir Folgendes gefunden:
/.env(Status: 200) [Größe: 20]/.hidden_config(Status: 200) [Größe: 27]
Ein 200 OK-Statuscode zeigt an, dass die Datei gefunden wurde und über den Webserver zugänglich ist. Dies ist ein kritischer Fund.
Um die Auswirkungen zu demonstrieren, versuchen wir, die .env-Datei direkt mit curl aufzurufen:
curl http://127.0.0.1:8000/.env
Sie sollten den Inhalt der .env-Datei sehen:
DB_PASSWORD=supersecret
Dies zeigt deutlich, dass sensible Informationen (in diesem Fall ein Datenbankpasswort) offengelegt wurden. In einem realen Szenario könnte ein Angreifer diese Informationen nutzen, um unbefugten Zugriff auf Datenbanken oder andere Backend-Systeme zu erhalten.
Ebenso können Sie versuchen, auf die .hidden_config-Datei zuzugreifen:
curl http://127.0.0.1:8000/.hidden_config
Ausgabe:
This is another hidden file.
Auch wenn diese spezielle Datei möglicherweise keine hochsensiblen Daten enthält, deutet ihre Entdeckung auf eine mögliche Fehlkonfiguration hin, bei der Dateien, die verborgen sein sollen, öffentlich zugänglich sind. Dies könnte zu weiterer Enumeration und Entdeckung kritischerer Assets führen.
Wichtige Erkenntnisse:
- Überprüfen Sie bei der Web-Aufklärung immer auf Dateien mit führenden Punkten (dot-prefixed files).
- Das Vorhandensein solcher Dateien mit einem
200 OK-Status ist ein starker Hinweis auf Informationspreisgabe. - Entwickler und Systemadministratoren sollten sicherstellen, dass sensible Dateien niemals direkt über einen Webserver zugänglich sind, typischerweise durch Konfiguration von Serverregeln (z. B. Nginx
location-Blöcke, ApacheDirectory-Direktiven) oder durch Platzierung außerhalb des Web-Roots.
Diese Übung unterstreicht die Bedeutung einer gründlichen Aufklärung und die Leistungsfähigkeit von Tools wie Gobuster bei der Aufdeckung verborgener Schwachstellen.
Zusammenfassung
In diesem Lab haben Sie erfolgreich gelernt, wie Sie Gobuster verwenden, um versteckte Dateien und Verzeichnisse mit einem Punkt am Anfang zu entdecken. Sie haben damit begonnen, die Bedeutung solcher Dateien zu verstehen, die oft sensible Informationen wie Umgebungsvariablen oder Versionskontrolldaten enthalten.
Anschließend haben Sie eine gezielte Wortliste mit gängigen Dateinamen mit führenden Punkten erstellt und diese verwendet, um einen gobuster dir-Scan gegen einen Dummy-Webserver durchzuführen. Sie haben beobachtet, wie Gobuster effektiv zugängliche versteckte Dateien wie .env und .hidden_config identifiziert hat. Darüber hinaus haben Sie das --no-error-Flag kennengelernt, um die Scan-Ausgabe durch Unterdrückung von Verbindungsfehlern zu bereinigen.
Schließlich haben Sie die Ergebnisse analysiert und gezeigt, wie der direkte Zugriff auf eine .env-Datei zur Offenlegung kritischer Anmeldeinformationen führen kann. Dieses Lab hat die Bedeutung der Einbeziehung der Dot-File-Enumeration in Ihre Aufklärungsmethodik hervorgehoben, um potenzielle Schwachstellen bei der Informationspreisgabe in Webanwendungen aufzudecken.
Durch die Beherrschung dieser Technik sind Sie besser gerüstet, um Sicherheitsrisiken zu identifizieren und zu melden, die sonst unbemerkt bleiben könnten.
