Penetrationstests sind ein Angebot der AWARE7 GmbH, indem wir Sicherheitslücken in Webanwendungen oder anderen Systemen suchen und professionell dokumentieren. In unserer wöchentlichen Blog-Reihe stellen wir einige Tools vor, die wir in den meisten Penetrationstest verwenden. Das dieswöchige Pentest-Tool #2 ist gobuster.
Pentest-Tool #2 – gobuster
Wie in der vergangenen Woche, in der wir das Tool dirbuster ausführlich erklärt haben, wird das dieswöchige Pentest-Tool #2 ebenfalls in Penetrationstests von Web-Anwendungen eingesetzt. Einer der ersten Schritte in jedem Penetrationstest ist es möglichst viele Informationen über das Ziel heruaszufinden.
Sieht man diesen Schritt aus der Angreifer-Perspektive wird dieser Schritt häufig Reconnaissance genannt. Dazu zählt das sammeln von offenen Ports, Systemanwendungen, Versionsnummern und bspw. Ansprechpartnern mit zugehöriger Email-Adresse. In dieser Phase gibt es keine unnötigen Daten, sondern alle Informationen welche auf dem System gefunden werden können sind wichtig.
Viele versteckte Informationen können sich in Unterseiten oder vergessenen Dateien auf einem Webserver befinden. Ähnlich wie dirbuster versucht gobuster genau solche Unterseiten zu finden. Der Prozess wie solche Unterseiten gefunden werden können ist nahezu identisch. Mithilfe einer Wörter-Liste werden häufige Namen, die für Unterseiten oder Dateien typischerweise verwendet werden, ausprobiert und die Resultate werden automatisch gespeichert. Der größte Unterschied der beiden Open-Source Pentest-Tools ist, dass gobuster in der neueren Programmiersprache Go programmiert ist.
gobuster in der Praxis
Das folgende Video zeigt unser Pentest-Tool #2 gobuster in der Praxis. gobuster ist in der Kali Linux Version bereits vorinstalliert, sodass es schnell über das Terminal ausgeführt werden kann. Es gibt kein User-Interface, dass bedeutet, dass sämtliche Parameter in dem Kommando eingefügt werden müssen.
Um eine Übersicht über die Möglichkeiten zu bekommen, die gobuster liefert reicht das Kommando: “gobuster -h” aus. Anschließend erscheint der Hilfe-Text im Terminal, indem sämtliche Kommandos mit der zugehörigen Syntax erklärt stehen.
In unserem Beispiel verwenden wir eine Wörter-Liste die ebenfalls in Kali Linux bereits enthalten ist. Eine kleine Sammlung an Wörter-Listen befindet sich im Ordner /usr/share/wordlists/. Aus diesem Ordner verwenden wir die “small” Liste, die in dem Ordner dirbuster enthalten ist. Da dirbuster ebenso wie gobuster zum finden von nicht verlinkten Ordnern und Dateien genutzt wird können wir ohne Probleme eine Wörterliste verwenden, die für den dirbuster kreiert wurde.
Die Liste fügen wir durch das Kommando “-w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt” hinzu. Damit das Programm weiß welche Webseite wir untersuchen möchten, müssen wir mit dem Kommando “-u” unser Ziel angeben, in diesem Fall die Webseite der Westfälischen Hochschule. Als “Modus” wählen wir directory/file bruteforcing.
Das Tool findet bereits sehr schnell die ersten Unterseiten. Einige dieser Unterseiten sind nicht auf der Hauptseite verlinkt, dass bedeutet das diese nur durch ausprobieren gefunden werden können.
Pentest-Tool-Vergleich: gobuster vs. dirbuster
Im direkten Vergleich zu dirbuster bietet gobuster noch ein paar mehr Funktionen an. So ist es mit gobuster nicht nur möglich nicht verlinkte Ordner oder Dateien auf einem Server zu finden, sondern es ist ebenfalls möglich neue Server zu finden. Dieses dazu genutzte Verfahren nennt sich DNS-Bruteforce und funktioniert recht ähnlich zu dem oben beschriebenen verfahren. Der Unterschied ist gobuster nutzt die Wörter-Liste um damit gültige Subdomains zu erraten.
Eine Subdomain ist der Teil einer Internet-Adresse welche vor der Domain steht. Im Fall dieses Blogs ist dies “www.”, es können aber auch andere Subdomains verwendet werden welche auf ganz andere Server umleiten. Durch den in gobuster eingebauten DNS-Modus können solche Subdomains gefunden werden. Wer sich genauer für den Aufbau einer Domain interessiert dem können wir unseren Artikel zum Thema Phishing erkennen ans Herz legen.
Nun stellt sich die Frage, welches Tool man verwenden soll um Unterseiten von verschiedenen Webservern zu finden. Grundsätzlich können beide Tools verwendet werden, jedoch ist es ratsam das Tool auf die jeweilige Situation anzupassen. dirbuster hat den Vorteil, dass wir durch ein User Interface sämtliche Einstellungen treffen können, ohne das diese unübersichtlich werden. Möchten wir viele Einstellungen an gobuster verändern, wird das Kommando sehr lang und teilweise unübersichtlich.
Ein weiterer Vorteil von dirbuster im Vergleich zu gobuster ist, dass eine rekursive Suche möglich ist. Das bedeutet, dass dirbuster mit nur einem Befehl sehr tiefe Verschachtelungen von Unterseiten entdecken kann. gobuster kann pro Befehl jeweils nur eine Unterseite “tiefer” Ergebnisse sammeln.
Neben diesen beiden Nachteilen hat der gobuster noch einen großen Vorteil gegenüber dem dirbuster und zwar die Geschwindigkeit. Aufgrund der verwendeten Programmiersprache GO in gobuster läuft die Suche deutlich schneller ab und vor allem bei großen Webseiten macht es Sinn den Zeitvorteil von gobuster auszunutzen.