Scan-Geschwindigkeit mit Threads in Gobuster steuern

Beginner
Jetzt üben

Einleitung

In diesem Lab werden Sie untersuchen, wie Sie die Scan-Geschwindigkeit von Gobuster, einem beliebten Tool für Brute-Force-Angriffe auf Verzeichnisse und Dateien, durch Manipulation seiner Thread-Anzahl verwalten können. Das Verständnis, wie die Anzahl der Threads angepasst wird, ist entscheidend für effizientes Scannen und zur Minimierung der Auswirkungen auf Zielserver. Sie lernen, Scans mit Standard-, erhöhten und verringerten Thread-Anzahlen auszuführen und die praktischen Auswirkungen jeder Einstellung zu beobachten. Diese praktische Erfahrung wird Einblicke in die Optimierung Ihrer Aufklärungsbemühungen geben, während Sie gleichzeitig auf Netzwerk-Etikette und Zielstabilität achten.

Scan mit der Standard-Thread-Anzahl (10) ausführen

In diesem Schritt starten Sie einen Gobuster-Scan mit seiner Standard-Thread-Anzahl, die normalerweise 10 beträgt. Dies gibt Ihnen ein grundlegendes Verständnis seiner Leistung und des Ausgabeformats. Gobuster versucht, Verzeichnisse und Dateien auf einem lokalen Webserver zu entdecken, der für dieses Lab eingerichtet wurde.

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

gobuster dir -u http://127.0.0.1:8080 -w /tmp/wordlist.txt
  • gobuster dir: Gibt an, dass Sie einen Brute-Force-Scan von Verzeichnissen/Dateien durchführen möchten.
  • -u http://127.0.0.1:8080: Legt die Ziel-URL für den Scan fest. In diesem Lab zielen wir auf einen lokalen HTTP-Server ab, der auf Port 8080 läuft.
  • -w /tmp/wordlist.txt: Gibt die zu verwendende Wortliste für den Brute-Force-Prozess an. Diese Datei enthält gängige Verzeichnis- und Dateinamen.

Beobachten Sie die Ausgabe. Sie sehen, wie Gobuster den Scan startet, die verwendete Anzahl von Threads angibt (standardmäßig 10) und dann alle entdeckten Verzeichnisse oder Dateien auflistet. Achten Sie darauf, wie schnell die Ergebnisse erscheinen.

===============================================================
Gobuster vX.X.X-XXXXXX
===============================================================
[+] Url:            http://127.0.0.1:8080
[+] Threads:        10
[+] Wordlist:       /tmp/wordlist.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
===============================================================
/admin                (Status: 200)
/login                (Status: 200)
/secret               (Status: 200)
/index                (Status: 200)
===============================================================
XXXX/XX/XX XX:XX:XX Finished
===============================================================

Die Ausgabe zeigt die für den Scan verwendete Konfiguration, einschließlich der URL, der Wortliste und vor allem der Anzahl der Threads. Die entdeckten Pfade wie /admin, /login, /secret und /index werden mit ihren jeweiligen HTTP-Statuscodes aufgelistet.

Erhöhen Sie die Thread-Anzahl auf 50 mit dem Flag -t

In diesem Schritt erhöhen Sie die von Gobuster verwendete Anzahl von Threads auf 50. Dies geschieht mit dem Flag -t, mit dem Sie die gewünschte Anzahl gleichzeitiger Threads angeben können. Eine höhere Thread-Anzahl führt im Allgemeinen zu einem schnelleren Scan, da mehr Anfragen gleichzeitig gesendet werden.

Führen Sie den folgenden Befehl in Ihrem Terminal aus:

gobuster dir -u http://127.0.0.1:8080 -w /tmp/wordlist.txt -t 50
  • -t 50: Dieses neue Flag setzt die Anzahl der Threads auf 50.

Beobachten Sie die Ausgabe erneut. Sie sollten feststellen, dass der Scan mit 50 Threads viel schneller abgeschlossen ist als mit den standardmäßigen 10 Threads. Die anfängliche Ausgabe bestätigt, dass 50 Threads verwendet werden.

===============================================================
Gobuster vX.X.X-XXXXXX
===============================================================
[+] Url:            http://127.0.0.1:8080
[+] Threads:        50
[+] Wordlist:       /tmp/wordlist.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
===============================================================
/admin                (Status: 200)
/login                (Status: 200)
/secret               (Status: 200)
/index                (Status: 200)
===============================================================
XXXX/XX/XX XX:XX:XX Finished
===============================================================

Beachten Sie die Zeile [+] Threads: 50 in der Ausgabe, die bestätigt, dass Ihre angegebene Thread-Anzahl verwendet wird. Der Scan sollte aufgrund der kleinen Wortliste und des lokalen Ziels fast sofort abgeschlossen sein.

Beobachten Sie die Zunahme der Scan-Geschwindigkeit

In diesem Schritt vergleichen wir explizit die Scan-Zeiten, um die Auswirkungen der Erhöhung der Thread-Anzahl visuell zu bestätigen. Während die vorherigen Schritte eine qualitative Beobachtung lieferten, zielt dieser Schritt darauf ab, das Konzept zu untermauern.

Obwohl die vorherigen Scans aufgrund der kleinen Wortliste und des lokalen Servers sehr schnell waren, sollten Sie einen deutlichen Unterschied in der Zeit bemerkt haben, die für die Anzeige der Ausgabe benötigt wurde. Als Sie die Threads von 10 auf 50 erhöhten, war der Scan fast augenblicklich abgeschlossen.

Um den Geschwindigkeitsunterschied besser zu veranschaulichen, stellen Sie sich vor, die Wortliste würde Tausende oder Millionen von Einträgen enthalten und der Zielserver wäre ein entfernter Server mit höherer Latenz. In solchen Szenarien wäre der Unterschied zwischen 10 und 50 Threads dramatisch deutlicher und könnte die Scan-Zeit potenziell von Stunden auf Minuten reduzieren.

Die wichtigste Erkenntnis hier ist, dass mehr Threads es Gobuster ermöglichen, mehr Anfragen gleichzeitig zu senden, was die gesamte Scan-Zeit drastisch reduzieren kann, insbesondere bei großen Wortlisten und reaktionsschnellen Zielen.

Für diesen Schritt ist kein spezifischer Befehl erforderlich, da es sich um eine Beobachtung handelt, die auf den beiden vorherigen Schritten basiert.

Reduzieren Sie die Thread-Anzahl auf 5 für einen langsameren Scan

Lassen Sie uns nun den Prozess umkehren und die Thread-Anzahl auf 5 reduzieren. Dies wird zeigen, wie weniger Threads zu einem langsameren Scan führen. Während ein langsamerer Scan kontraproduktiv erscheinen mag, kann er in bestimmten Situationen notwendig sein, z. B. bei der Arbeit mit ratenlimitierten Zielen oder um weniger aufdringlich zu sein.

Führen Sie den folgenden Befehl in Ihrem Terminal aus:

gobuster dir -u http://127.0.0.1:8080 -w /tmp/wordlist.txt -t 5
  • -t 5: Dies setzt die Anzahl der Threads auf 5, was die Hälfte des Standardwerts ist.

Beobachten Sie die Ausgabe. Sie sollten feststellen, dass der Scan im Vergleich zu den standardmäßigen 10 Threads etwas länger dauert und merklich länger als der Scan mit 50 Threads.

===============================================================
Gobuster vX.X.X-XXXXXX
===============================================================
[+] Url:            http://127.0.0.1:8080
[+] Threads:        5
[+] Wordlist:       /tmp/wordlist.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
===============================================================
/admin                (Status: 200)
/login                (Status: 200)
/secret               (Status: 200)
/index                (Status: 200)
===============================================================
XXXX/XX/XX XX:XX:XX Finished
===============================================================

Die Zeile [+] Threads: 5 bestätigt die reduzierte Thread-Anzahl. Selbst mit unserer kleinen Wortliste sollten Sie eine leichte Verzögerung im Vergleich zu den vorherigen Durchläufen feststellen. Dies verdeutlicht den direkten Zusammenhang zwischen der Thread-Anzahl und der Scan-Dauer.

Verstehen Sie die Auswirkungen von Threads auf den Zielserver

In diesem letzten Schritt besprechen wir die breiteren Auswirkungen der Anpassung der Thread-Anzahl, insbesondere in Bezug auf den Zielserver. Während die Erhöhung der Threads Ihren Scan beschleunigen kann, erhöht sie auch die Last auf dem Zielserver.

Hohe Thread-Anzahl (z. B. 50 oder mehr):

  • Vorteile: Schnellere Scan-Abschluss.
  • Nachteile:
    • Erhöhte Serverlast: Das gleichzeitige Senden vieler Anfragen kann den Zielserver überlasten und potenziell zu Denial of Service (DoS) oder Leistungsverschlechterung führen.
    • Ratenbegrenzung/Blockierung: Viele Webserver und WAFs (Web Application Firewalls) implementieren Ratenbegrenzungen, um Brute-Force-Angriffe zu verhindern. Eine hohe Thread-Anzahl kann diese Abwehrmechanismen schnell auslösen, was dazu führt, dass Ihre IP-Adresse vorübergehend oder dauerhaft blockiert wird.
    • Netzwerküberlastung: Kann erhebliche Bandbreite verbrauchen, insbesondere wenn das Ziel entfernt ist.
    • Verdacht: Hohe Anfrageraten sind oft ein Indikator für bösartige Aktivitäten und können Sicherheitsteams alarmieren.

Niedrige Thread-Anzahl (z. B. 1-5):

  • Vorteile:
    • Reduzierte Serverlast: Weniger aufdringlich und weniger wahrscheinlich, Leistungsprobleme auf dem Ziel zu verursachen.
    • Umgehung von Ratenbegrenzungen: Langsamere Anfrageraten lösen weniger wahrscheinlich Ratenbegrenzungsmechanismen aus, wodurch der Scan länger unentdeckt fortgesetzt werden kann.
    • Tarnung: Erscheint eher wie legitimer Benutzerverkehr, was die Wahrscheinlichkeit einer Erkennung verringert.
  • Nachteile:
    • Langsamerer Scan: Dauert erheblich länger, insbesondere bei großen Wortlisten.

Auswahl der richtigen Thread-Anzahl: Die optimale Thread-Anzahl hängt von mehreren Faktoren ab:

  • Kapazität des Zielservers: Wie viel Last kann der Server bewältigen?
  • Netzwerklatenz: Höhere Latenz erfordert möglicherweise mehr Threads, um eine angemessene Geschwindigkeit aufrechtzuerhalten.
  • Ratenbegrenzungsrichtlinien: Gibt es bekannte Ratenbegrenzungen oder WAFs?
  • Ihr Ziel: Priorisieren Sie Geschwindigkeit oder Tarnung?

Für ethisches Hacking und Penetrationstests ist es entscheidend, die Stabilität des Ziels zu berücksichtigen und Störungen zu vermeiden. Beginnen Sie immer mit einer niedrigeren Thread-Anzahl und erhöhen Sie diese schrittweise, wenn das Ziel damit umgehen kann und Ihre Ziele schnellere Ergebnisse erfordern.

Für diesen Schritt ist kein spezifischer Befehl erforderlich, da es sich um ein konzeptionelles Verständnis handelt.

Zusammenfassung

In diesem Lab haben Sie erfolgreich gelernt, wie Sie die Scan-Geschwindigkeit von Gobuster durch Anpassung der Thread-Anzahl mit dem Flag -t steuern. Sie haben mit einem Scan mit den Standard-10 Threads begonnen, ihn dann auf 50 erhöht, um eine deutliche Geschwindigkeitsverbesserung zu beobachten, und ihn schließlich auf 5 reduziert, um zu sehen, wie der Scan langsamer wird.

Wichtiger noch, Sie haben ein Verständnis für die kritischen Auswirkungen gewonnen, die die Thread-Anzahl nicht nur auf die Scan-Dauer, sondern auch auf die Leistung und die Sicherheitsmechanismen des Zielservers hat. Sie wissen nun, dass mehr Threads zwar schnellere Scans bedeuten, aber auch die Serverlast und das Risiko der Erkennung oder Blockierung erhöhen. Umgekehrt bieten weniger Threads Tarnung und reduzieren die Serverauswirkungen auf Kosten der Geschwindigkeit. Dieses Wissen ist entscheidend für die Durchführung verantwortungsvoller und effektiver Aufklärung.