# Gobuster

**Gobuster** ist ein leistungsfähiges Tool, das für verschiedene Arten der Bruteforce-Enumeration verwendet wird. Es unterstützt Directory-Busting, DNS-Subdomain-Enumeration und das Aufdecken von Virtual Hosts. Es ist in Go geschrieben, was es extrem schnell macht und es erlaubt, Multithreading für gleichzeitige Anfragen zu nutzen.

***

## **Gobuster Modi und Beispiele**

### **1. Directory-Busting (Modus: `dir`)**

```bash
$ gobuster dir -u http://example.com -w /path/to/wordlist.txt
```

**Beschreibung**:

* Der **dir-Modus** durchsucht die angegebene URL nach **versteckten Verzeichnissen oder Dateien**, indem er die Einträge aus der Wordlist an die Basis-URL anhängt.
* **Beispiel**: Wenn die Wordlist den Eintrag `admin` enthält, wird Gobuster Anfragen wie `http://example.com/admin` senden und auf die Antwort des Servers warten.

**Wichtige Statuscodes**:

* `200`: **OK** – Die Ressource existiert und ist zugänglich.
* `301/302`: **Weiterleitung** – Der Pfad existiert, leitet aber auf eine andere URL um.
* `403`: **Verboten** – Der Pfad existiert, aber der Zugriff ist eingeschränkt.
* `404`: **Nicht gefunden** – Der Pfad existiert nicht.

**Optionen für Directory-Busting**:

* **Dateiendungen angeben** (`-x`):
  *   Beispiel:

      ```bash
      $ gobuster dir -u http://example.com -w /path/to/wordlist.txt -x .php,.html,.txt
      ```
  * Gobuster hängt die angegebenen Dateiendungen an die Einträge der Wordlist an, um spezifische Dateien zu finden (z.B. `index.php`, `admin.html`, `config.txt`).
* **Ergebnisse filtern nach Statuscodes** (`-s`):
  *   Beispiel:

      ```bash
      $ gobuster dir -u http://example.com -w /path/to/wordlist.txt -s 200,301
      ```
  * Nur Pfade, die den Statuscode `200` (OK) oder `301` (Weiterleitung) zurückgeben, werden angezeigt.
* **Threads erhöhen** (`-t`):
  *   Beispiel:

      ```bash
      $ gobuster dir -u http://example.com -w /path/to/wordlist.txt -t 50
      ```
  * Erhöht die Geschwindigkeit des Scans durch parallele Anfragen mit mehreren Threads.

***

### **2. DNS-Subdomain Enumeration (Modus: `dns`)**

```bash
$ gobuster dns -d example.com -w /path/to/subdomains.txt
```

**Beschreibung**:

* Der **dns-Modus** versucht, Subdomains eines angegebenen Domainnamens zu finden. Gobuster generiert aus der Wordlist mögliche Subdomains und sendet DNS-Abfragen, um deren Existenz zu überprüfen.
* **Beispiel**: Wenn die Wordlist den Eintrag `test` enthält, wird Gobuster Anfragen wie `test.example.com` senden und prüfen, ob diese Subdomain existiert.

**Wichtige DNS-Antworten**:

* `NXDOMAIN`: **Nicht existent** – Die Subdomain existiert nicht.
* `NOERROR`: **Erfolgreich** – Die Subdomain existiert.

**Optionen für DNS-Bruteforce**:

* **DNS-Server angeben** (`-s`):
  *   Beispiel:

      ```bash
      $ gobuster dns -d example.com -w /path/to/subdomains.txt -s 8.8.8.8
      ```
  * Nutzt den angegebenen DNS-Server (in diesem Fall Google DNS) anstelle des Standard-DNS-Servers.
* **Wildcard-Subdomains ignorieren** (`--wildcard`):
  *   Beispiel:

      ```bash
      $ gobuster dns -d example.com -w /path/to/subdomains.txt --wildcard
      ```
  * Ignoriert Wildcard-DNS-Antworten, um falsche Treffer zu vermeiden.

***

### **3. Virtual Host Enumeration (Modus: `vhost`)**

```bash
$ gobuster vhost -u http://example.com -w /path/to/wordlist.txt --append-domain
```

**Beschreibung**:

* Der **vhost-Modus** durchsucht nach möglichen **virtuellen Hosts**, indem er Anfragen mit verschiedenen Host-Headern aus der Wordlist an den Webserver sendet.
* **Beispiel**: Gobuster sendet eine Anfrage mit `Host: admin.example.com` und überprüft, ob der Server auf diesen virtuellen Host reagiert.
* The `--append-domain` option tells gobuster that we want it to append the items from our wordlist to the domain we provided as the URL. This way, gobuster searches for “example.thetoppers.htb” instead of just searching for a vhost named “example”.

**Wichtige Statuscodes**:

* `200`: **OK** – Der virtuelle Host existiert.
* `400`: **Bad Request** – Die Anfrage war ungültig.
* `404`: **Not Found** – Der virtuelle Host existiert nicht.

***

## **Tipps für den Einsatz von Gobuster**

*   **Threads erhöhen** (`-t`): Erhöhe die Anzahl der gleichzeitigen Anfragen, um den Scan zu beschleunigen.

    ```bash
    $ gobuster dir -u http://example.com -w /path/to/wordlist.txt -t 50
    ```
*   **Ergebnisse filtern** (`-s`): Zeige nur bestimmte Statuscodes, wie `200` oder `301`.

    ```bash
    $ gobuster dir -u http://example.com -w /path/to/wordlist.txt -s 200,301
    ```
*   **Ergebnisse speichern** (`-o`): Speichere die Ergebnisse für spätere Analysen.

    ```bash
    $ gobuster dir -u http://example.com -w /path/to/wordlist.txt -o results.txt
    ```
*   **Verzeichnisse und Dateitypen durchsuchen** (`-x`): Verwende die Option `-x`, um Dateitypen anzugeben.

    ```bash
    $ gobuster dir -u http://example.com -w /path/to/wordlist.txt -x .php,.html,.txt
    ```
*   **Wildcard-Subdomains ignorieren**: Beim DNS-Scan kannst du Wildcard-DNS-Einträge ignorieren, um genauer zu sein.

    ```bash
    $ gobuster dns -d example.com -w /path/to/subdomains.txt --wildcard
    ```
