Basic HTTP-Authentifizierung in Gobuster verwenden

Beginner
Jetzt üben

Einleitung

In diesem Lab lernen Sie, wie Sie Gobuster, ein beliebtes Tool zum Brute-Forcing von Verzeichnissen und Dateien, effektiv einsetzen, wenn ein Ziel-Webserver durch Basic HTTP Authentication geschützt ist. Viele Webanwendungen und administrative Schnittstellen verwenden Basic HTTP Authentication, um den Zugriff auf bestimmte Ressourcen zu beschränken. Ohne die Angabe gültiger Anmeldeinformationen wäre Gobuster normalerweise nicht in der Lage, diese geschützten Pfade zu entdecken. Dieses Lab führt Sie durch den Prozess der Identifizierung solcher Ziele, des Verständnisses, wie die erforderlichen Benutzernamen und Passwörter an Gobuster übergeben werden, und der erfolgreichen Enumeration geschützter Verzeichnisse und Dateien. Am Ende dieses Labs werden Sie im Umgang mit den Authentifizierungs-Flags von Gobuster geübt sein, um grundlegende Zugriffsbeschränkungen zu umgehen und versteckte Webinhalte aufzudecken.

Identifizieren eines durch Basic HTTP Auth geschützten Ziels

In diesem Schritt identifizieren Sie ein Webserver-Verzeichnis, das durch Basic HTTP Authentication geschützt ist. Wir haben einen lokalen Apache-Webserver mit einem geschützten Verzeichnis /protected_area eingerichtet. Wenn Sie versuchen, auf dieses Verzeichnis ohne Anmeldeinformationen zuzugreifen, wird der Server nach einem Benutzernamen und einem Passwort fragen.

Versuchen wir zunächst, mit curl auf das geschützte Verzeichnis zuzugreifen, ohne Anmeldeinformationen anzugeben. Dies demonstriert die Authentifizierungsaufforderung.

Öffnen Sie Ihr Terminal und führen Sie den folgenden Befehl aus:

curl http://localhost/protected_area/

Sie sollten eine Ausgabe ähnlich der folgenden sehen, die eine 401 Unauthorized-Antwort und einen WWW-Authenticate-Header anzeigt:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>401 Unauthorized</title>
</head><body>
<h1>Unauthorized</h1>
<p>This server could not verify that you
are authorized to access the document
requested. Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn't understand how to supply
the credentials required.</p>
<hr>
<address>Apache/2.4.52 (Ubuntu) Server at localhost Port 80</address>
</body></html>

Diese Ausgabe bestätigt, dass /protected_area durch Basic HTTP Authentication geschützt ist.

Versuchen wir als Nächstes, auf eine Datei innerhalb dieses geschützten Verzeichnisses, secret.txt, zuzugreifen, um zu bestätigen, dass sie ebenfalls geschützt ist.

curl http://localhost/protected_area/secret.txt

Sie erhalten eine ähnliche 401 Unauthorized-Antwort. Dies bestätigt, dass jede Ressource innerhalb von /protected_area eine Authentifizierung erfordert.

Erhalten des Benutzernamens und des Passworts

In einem realen Szenario kann das Erhalten des Benutzernamens und des Passworts für Basic HTTP Authentication verschiedene Techniken umfassen, wie z. B. Social Engineering, Phishing oder Brute-Forcing. Für die Zwecke dieses Labs haben wir die Anmeldeinformationen für den geschützten Bereich vorkonfiguriert.

Der Benutzername lautet labexuser und das Passwort lautet labexpassword.

Sie können diese Anmeldeinformationen überprüfen, indem Sie curl mit dem Flag -u verwenden, mit dem Sie den Benutzernamen und das Passwort direkt angeben können.

Führen Sie den folgenden Befehl aus, um mit den korrekten Anmeldeinformationen auf das geschützte Verzeichnis zuzugreifen:

curl -u labexuser:labexpassword http://localhost/protected_area/

Sie sollten nun eine erfolgreiche Antwort erhalten, wahrscheinlich eine leere Verzeichnisliste oder eine Standard-Indexseite, falls eine vorhanden war. Da sich keine index.html in /protected_area befindet, sehen Sie möglicherweise eine 403 Forbidden-Meldung oder eine Verzeichnisliste, wenn Indexes aktiviert sind. Wichtig ist, dass Sie keine 401 Unauthorized-Fehlermeldung erhalten haben.

Versuchen Sie nun, mit den Anmeldeinformationen auf die Datei secret.txt im geschützten Verzeichnis zuzugreifen:

curl -u labexuser:labexpassword http://localhost/protected_area/secret.txt

Sie sollten nun den Inhalt der Datei secret.txt sehen:

This is a secret file.

Dies bestätigt, dass der angegebene Benutzername und das Passwort korrekt sind und Zugriff auf die geschützten Ressourcen gewähren.

Verwenden des Flags -U für den Benutzernamen

In diesem Schritt lernen Sie, wie Sie den Benutzernamen für Basic HTTP Authentication in Gobuster mit dem Flag -U angeben. Dieses Flag ist entscheidend, wenn Sie den Benutzernamen kennen, aber möglicherweise das Passwort per Brute-Force ermitteln oder den Benutzernamen einfach als Teil des Authentifizierungsprozesses angeben müssen.

Versuchen wir zunächst einen Gobuster-Scan ohne Authentifizierung, um sein Verhalten gegenüber dem geschützten Verzeichnis zu sehen. Wir verwenden eine kleine Wortliste zur Demonstration.

Erstellen Sie eine einfache Wortlistendatei namens common.txt in Ihrem Verzeichnis ~/project:

echo -e "admin\nuser\nprotected_area\nsecret.txt" > ~/project/common.txt

Führen Sie nun Gobuster gegen http://localhost mit dieser Wortliste aus, jedoch ohne Authentifizierung:

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

Sie werden feststellen, dass Gobuster für den Eintrag /protected_area wahrscheinlich 401 Unauthorized meldet, was darauf hinweist, dass es ohne Anmeldeinformationen nicht darauf zugreifen kann.

/protected_area       (Status: 401) [Size: 399]

Nun verwenden wir das Flag -U, um den Benutzernamen labexuser anzugeben. Wir lassen das Passwort vorerst noch weg, um die Auswirkung nur des Benutzernamens zu demonstrieren.

gobuster dir -u http://localhost -w ~/project/common.txt -U labexuser

Selbst mit dem angegebenen Benutzernamen erhält Gobuster immer noch eine 401 Unauthorized-Antwort, da auch das Passwort erforderlich ist. Dieser Schritt demonstriert hauptsächlich die Syntax für die Angabe des Benutzernamens.

/protected_area       (Status: 401) [Size: 399]

Dies zeigt, dass der Benutzername zwar akzeptiert wird, die Authentifizierung jedoch ohne das korrekte Passwort fehlschlägt.

Verwenden des Flags -P für das Passwort

In diesem Schritt lernen Sie, wie Sie das Passwort für Basic HTTP Authentication in Gobuster mit dem Flag -P angeben. Dieses Flag ermöglicht es Gobuster in Kombination mit dem Flag -U, authentifizierte Scans durchzuführen.

Fortfahrend mit dem vorherigen Schritt wissen wir, dass der Benutzername labexuser und das Passwort labexpassword lautet. Fügen wir nun das Flag -P hinzu, um das Passwort anzugeben.

Führen Sie den folgenden Gobuster-Befehl aus, der sowohl das Flag für den Benutzernamen (-U) als auch für das Passwort (-P) enthält:

gobuster dir -u http://localhost -w ~/project/common.txt -U labexuser -P labexpassword

Beobachten Sie die Ausgabe sorgfältig. Dieses Mal sollte Gobuster, wenn es auf /protected_area trifft, erfolgreich authentifiziert werden und einen Status 200 OK oder 403 Forbidden (abhängig von den Einstellungen für die Verzeichnisauflistung) anstelle von 401 Unauthorized melden.

/protected_area       (Status: 403) [Size: 277]

Der Status 403 Forbidden zeigt an, dass der Zugriff gewährt wurde (Authentifizierung erfolgreich), der Server jedoch so konfiguriert ist, dass Verzeichnisauflistungen verboten sind. Dies ist eine erfolgreiche Authentifizierung, im Gegensatz zu 401 Unauthorized, das wir zuvor gesehen haben.

Dies zeigt, dass Gobuster durch die Angabe von Benutzername und Passwort erfolgreich gegen Basic HTTP Authentication authentifizieren und mit seinem Brute-Force-Angriff auf Verzeichnisse fortfahren kann.

Ausführen des Scans und Zugriff auf geschützte Ressourcen

In diesem letzten Schritt führen Sie einen vollständigen Gobuster-Scan gegen den geschützten Bereich aus und stellen sicher, dass die Datei secret.txt entdeckt werden kann. Dies demonstriert die praktische Anwendung der Verwendung von Basic HTTP Authentication mit Gobuster, um versteckte Ressourcen aufzudecken.

Wir werden die Ziel-URL ändern, um gezielt im /protected_area zu scannen, und eine Wortliste verwenden, die secret.txt enthält.

Stellen Sie zunächst sicher, dass unsere Wortliste common.txt secret.txt enthält. Wenn Sie sie in Schritt 3 erstellt haben, sollte sie bereits vorhanden sein.

Führen Sie nun Gobuster aus, der auf http://localhost/protected_area/ mit dem korrekten Benutzernamen und Passwort abzielt:

gobuster dir -u http://localhost/protected_area/ -w ~/project/common.txt -U labexuser -P labexpassword

Nach Abschluss des Scans sollten Sie eine Ausgabe ähnlich der folgenden sehen, die anzeigt, dass secret.txt mit dem Status 200 OK gefunden wurde:

/secret.txt           (Status: 200) [Size: 21]

Dies bestätigt, dass Gobuster erfolgreich authentifiziert und die Datei secret.txt im geschützten Verzeichnis entdeckt hat.

Sie können nun den Inhalt der entdeckten Datei mit curl und den Anmeldeinformationen überprüfen:

curl -u labexuser:labexpassword http://localhost/protected_area/secret.txt

Sie sollten Folgendes sehen:

This is a secret file.

Damit ist das Lab abgeschlossen. Sie haben erfolgreich gelernt, wie Sie Gobuster mit Basic HTTP Authentication verwenden, um geschützte Webressourcen zu entdecken.

Zusammenfassung

In diesem Lab haben Sie praktische Erfahrungen mit Gobuster gesammelt, um Verzeichnisse und Dateien auf Webservern aufzulisten, die durch Basic HTTP Authentication geschützt sind. Sie haben damit begonnen, ein geschütztes Ziel zu identifizieren und die Antwort 401 Unauthorized zu verstehen. Anschließend haben Sie gelernt, wie Sie den erforderlichen Benutzernamen und das Passwort mit den Flags -U und -P an Gobuster übergeben. Schließlich haben Sie erfolgreich einen authentifizierten Scan durchgeführt und damit die Fähigkeit von Gobuster demonstriert, versteckte Ressourcen wie secret.txt in einem geschützten Bereich zu entdecken. Diese Fähigkeit ist für Penetrationstester und Sicherheitsexperten unerlässlich, wenn sie mit Webanwendungen arbeiten, die grundlegende Authentifizierungsmechanismen verwenden.