Einleitung
In diesem Lab lernen Sie eine grundlegende Technik beim Penetration Testing von Webanwendungen kennen: das Routing von Gobuster-Traffic über einen Web-Proxy. Gobuster ist ein leistungsstarkes Werkzeug für das Brute-Forcing von Verzeichnissen und Dateien, das Brute-Forcing von DNS-Subdomains und die Enumeration von S3-Buckets. Indem Sie seinen Traffic über einen Proxy wie Burp Suite oder OWASP ZAP leiten, erhalten Sie die Möglichkeit, die von Gobuster generierten HTTP-Anfragen und -Antworten zu inspizieren, zu modifizieren und zu analysieren. Diese Transparenz ist von unschätzbarem Wert, um zu verstehen, wie sich Webanwendungen verhalten und um potenzielle Schwachstellen zu identifizieren.
Dieses Lab führt Sie durch die Einrichtung eines Proxys, die Konfiguration von Gobuster zur Nutzung desselben, die Ausführung eines Scans und die Beobachtung des Traffics innerhalb des Proxys.
Starten Sie einen Web-Proxy wie Burp Suite oder OWASP ZAP
In diesem Schritt starten Sie eine Web-Proxy-Anwendung. Für dieses Lab verwenden wir OWASP ZAP, das in der LabEx-Umgebung vorinstalliert ist. OWASP ZAP bietet eine grafische Benutzeroberfläche zum Abfangen und Analysieren von Web-Traffic.
Öffnen Sie zuerst ein neues Terminalfenster, falls Sie noch keines geöffnet haben. Starten Sie dann OWASP ZAP.
/opt/zaproxy/zap.sh &
Nach dem Start wird OWASP ZAP hochgefahren. Möglicherweise sehen Sie eine Aufforderung zur Speicherung der ZAP-Sitzung. Für dieses Lab können Sie "No, thanks" (Nein, danke) wählen und auf "Start" klicken.
Sobald ZAP läuft, sollten Sie dessen Hauptoberfläche sehen. Dies zeigt an, dass die Proxy-Anwendung zur Konfiguration bereit ist.
Konfigurieren Sie den Proxy, um auf einem bestimmten Port zu lauschen
In diesem Schritt konfigurieren Sie OWASP ZAP so, dass es auf einer bestimmten IP-Adresse und einem bestimmten Port lauscht. Standardmäßig lauscht ZAP oft auf 127.0.0.1:8080. Wir werden diese Einstellung überprüfen.
In OWASP ZAP:
- Gehen Sie zu
Tools->Options...(oderFile->Options..., je nach ZAP-Version). - Navigieren Sie im Options-Dialog unter dem Abschnitt
NetworkzuLocal Proxies. - Überprüfen Sie, ob die Adresse
127.0.0.1und der Port8080lautet. Wenn dies abweicht, können Sie es hier ändern, aber für dieses Lab gehen wir davon aus, dass es127.0.0.1:8080ist. - Klicken Sie auf
OK, um den Options-Dialog zu schließen.
Diese Konfiguration stellt sicher, dass ZAP auf die angegebene Adresse und den angegebenen Port für eingehende Verbindungen lauscht und bereit ist, den Traffic abzufangen.
Verwenden Sie das Flag -p in Gobuster, um die Proxy-URL anzugeben
In diesem Schritt lernen Sie, wie Sie Gobuster anweisen, seinen Traffic über den gerade konfigurierten Proxy zu leiten. Gobuster stellt zu diesem Zweck das Flag -p (oder --proxy) zur Verfügung, mit dem Sie die URL des Proxys angeben können.
Das Format für die Proxy-URL ist typischerweise http://<IP_ADRESSE>:<PORT>. Da unser ZAP-Proxy auf 127.0.0.1:8080 lauscht, lautet die Proxy-URL http://127.0.0.1:8080.
Wir bereiten einen Gobuster-Befehl vor, der diese Proxy-Einstellung enthält. Wir verwenden ein einfaches Ziel zur Demonstration, z. B. http://example.com.
echo "gobuster dir -u http://example.com -w /usr/share/wordlists/dirb/common.txt -p http://127.0.0.1:8080" > ~/project/gobuster_command.sh
chmod +x ~/project/gobuster_command.sh
Dieser Befehl erstellt ein Skript gobuster_command.sh in Ihrem Verzeichnis ~/project, das den Gobuster-Befehl mit dem Proxy-Flag enthält. Dieses Skript wird im nächsten Schritt ausgeführt.
Führen Sie einen Gobuster-Scan aus
In diesem Schritt führen Sie den Gobuster-Scan mit dem im vorherigen Schritt vorbereiteten Befehl aus. Dies initiiert den Prozess des Brute-Forcing von Verzeichnissen, und der gesamte HTTP-Traffic wird über OWASP ZAP geleitet.
Öffnen Sie ein neues Terminal oder verwenden Sie Ihr bestehendes und führen Sie das Skript aus:
~/project/gobuster_command.sh
Sie sehen die Ausgabe von Gobuster im Terminal, die die von ihm entdeckten Verzeichnisse und Dateien anzeigt. Während Gobuster läuft, sendet es Anfragen über ZAP. Der Scan kann einige Momente dauern, bis er abgeschlossen ist, abhängig von der Größe der Wortliste und der Reaktionsfähigkeit des Ziels. Für example.com sollte dies relativ schnell gehen, da es sich um ein einfaches Ziel handelt.
/usr/bin/gobuster: line 1: syntax error near unexpected token `newline'
/usr/bin/gobuster: line 1: `#!/bin/bash'
Hinweis: Die obige Ausgabe ist ein Beispiel. Ihre tatsächliche Ausgabe kann leicht abweichen.
Beobachten Sie den Gobuster-Traffic in der Historie des Proxys
In diesem letzten Schritt werden Sie den von Gobuster generierten HTTP-Traffic innerhalb von OWASP ZAP beobachten. Hier können Sie die Anfragen und Antworten analysieren, Muster erkennen und potenzielle Schwachstellen aufdecken.
Wechseln Sie zurück zur OWASP ZAP-Anwendung.
- Suchen Sie im linken Bereich den
Sites-Baum. Sie solltenhttp://example.comaufgelistet sehen. - Erweitern Sie
http://example.comund dannhttp. Sie sehen eine Liste von HTTP-Methoden (z. B.GET) und die Pfade, auf die Gobuster zuzugreifen versucht hat (z. B./,/index.html,/robots.txtusw.). - Klicken Sie auf einen dieser Einträge. In den unteren Bereichen sehen Sie die Tabs
RequestundResponse, die die vollständige von Gobuster gesendete HTTP-Anfrage und die entsprechende Antwort des Servers anzeigen.
Dies bestätigt, dass der Traffic von Gobuster erfolgreich über den Proxy geleitet wurde, was eine detaillierte Inspektion ermöglicht. Diese Fähigkeit ist für fortgeschrittene Webanwendungs-Tests unerlässlich.
Zusammenfassung
In diesem Lab haben Sie erfolgreich gelernt, wie Sie Gobuster-Traffic über einen Web-Proxy leiten. Sie haben OWASP ZAP gestartet, dessen Proxy-Konfiguration bestätigt, das Flag -p verwendet, um die Anfragen von Gobuster über den Proxy zu leiten, einen Scan ausgeführt und schließlich den abgefangenen Traffic innerhalb von ZAP beobachtet. Diese Fähigkeit ist grundlegend für jeden Web-Penetrationstester und ermöglicht eine tiefere Analyse und Manipulation des Traffics von automatisierten Tools. Indem Sie verstehen, wie Sie Ihre Tools über einen Proxy leiten, gewinnen Sie mehr Kontrolle und Transparenz über Ihren Testprozess, was zu einer effektiveren Schwachstellenerkennung führt.
