GO KALI FREE

Gobuster

Web Application

Intermediatemedium risk

Gobuster is a tool used to brute-force URIs (directories and files) in web sites, DNS subdomains, virtual host names on target web servers, and UUIDs.

Installation

apt-get install gobuster

Basic Syntax

gobuster [command] [flags]

Quick Facts

Full Name
Gobuster
License
MIT License
Written In
Go
Platforms
Linux, Windows, macOS
Category
Directory Brute Force
Modes
dir, dns, vhost
First Release
2012
Author
OJ Reeves

Tool Overview

Gobuster is a fast, multi-threaded directory and file brute-forcing tool written in Go. It discovers hidden directories, files, DNS subdomains, and virtual hosts on web servers by sending requests based on wordlists.

Created by OJ Reeves, Gobuster supports three distinct modes: directory brute force (dir), DNS subdomain enumeration (dns), and virtual host discovery (vhost). Each mode targets a different aspect of web application reconnaissance.

Its simplicity and speed make it a favorite among penetration testers. Unlike more complex fuzzers, Gobuster requires minimal configuration while still providing reliable results for content discovery tasks.

Common Commands

gobuster dir -u <URL> -w <wordlist>Directory brute force
gobuster dns -d <domain> -w <wordlist>DNS subdomain enumeration
gobuster vhost -u <URL> -w <wordlist>Virtual host enumeration
gobuster dir -u <URL> -w <wordlist> -x php,html,txtSearch for specific file extensions
gobuster dir -u <URL> -w <wordlist> -s 200,204,301,302,307Match only chosen HTTP status codes
gobuster dir -u <URL> -w <wordlist> -b 404,403Blacklist status codes to reduce output noise
gobuster dir -u <URL> -w <wordlist> -c "session=abc123"Send a cookie to scan authenticated areas
gobuster dir -u <URL> -w <wordlist> -k -t 50Skip TLS validation and run with 50 threads
gobuster dir -u <URL> -w <wordlist> -o results.txtWrite discovered paths to an output file
gobuster s3 -w bucket-names.txtEnumerate public AWS S3 buckets by name
gobuster dir -u http://example.com -w /usr/share/wordlists/dirb/common.txtDirectory brute-force
gobuster dns -d example.com -w /usr/share/wordlists/subdomains.txtDNS subdomain brute-force
gobuster vhost -u http://example.com -w vhosts.txtVirtual host brute-force
gobuster dir -u http://example.com -w wordlist.txt -x php,html,txtWith file extensions
gobuster dir -u http://example.com -w wordlist.txt -t 5050 threads

Step-by-Step Guide

  1. 1Determine the exact URL of the application you want to audit
  2. 2Select a relevant dictionary file for your search
  3. 3Execute the search using the syntax: gobuster dir -u <url> -w <wordlist>
  4. 4Keep an eye out for 200 (Success) and 301 (Redirect) responses
  5. 5Manually navigate to any intriguing directories found
  6. 6Append the extension flag if you are hunting for specific file types
  7. 7Export the findings to a text file for reporting

Warnings

Use Cases

Directory Discovery

Find hidden directories and files on web servers using wordlist-based brute forcing.

DNS Subdomain Enumeration

Discover subdomains of a target domain using DNS resolution checks.

Virtual Host Discovery

Find virtual hosts hosted on a single IP by manipulating the Host header.

File Extension Scanning

Search for specific file types like .php, .html, or .txt on web servers.

Penetration Testing Recon

Map web application attack surfaces during authorized security assessments.

Bug Bounty Recon

Discover hidden endpoints and admin panels in bug bounty programs.

Key Features

People Also Ask

How do I use Gobuster in Kali Linux?

Run 'gobuster dir -u http://example.com -w /usr/share/wordlists/dirb/common.txt' for directory brute forcing. For DNS enumeration: 'gobuster dns -d example.com -w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-5000.txt'. Gobuster is pre-installed on Kali Linux.

What are the different Gobuster modes?

Gobuster supports three modes: 'dir' for directory and file brute forcing, 'dns' for subdomain enumeration via DNS, and 'vhost' for virtual host discovery. Each mode uses different wordlist types and serves a distinct purpose in web application reconnaissance.

Where are wordlists located for Gobuster on Kali?

Default wordlists are in '/usr/share/wordlists/'. For directory brute forcing use 'dirb/common.txt' or 'dirbuster/directory-list-2.3-medium.txt'. For DNS enumeration use 'seclists/Discovery/DNS/subdomains-top1million-5000.txt'. These are included with most Kali installations.

Gobuster vs FFUF vs DIRB — which should I use?

Gobuster is fastest for quick directory discovery and simple DNS enumeration. FFUF offers more advanced fuzzing with parameter injection and filtering. DIRB is simplest but slower. Use Gobuster for speed, FFUF for precision, and DIRB for basic scans.

How do I install Gobuster on Linux?

On Kali Linux, Gobuster is pre-installed. On Ubuntu/Debian: 'sudo apt install gobuster'. From source: 'go install github.com/OJ/gobuster/v3@latest' (requires Go 1.18+). Docker: 'docker run ghcr.io/oj/gobuster:latest'.

How do I use Gobuster for vhost discovery?

Run 'gobuster vhost -u http://example.com -w /usr/share/wordlists/dirb/common.txt'. This sends Host headers with each wordlist entry and identifies virtual hosts by analyzing response differences. Useful for finding hidden admin panels on shared hosting.

Related Tools

FFUF

Web Application

Faster web fuzzer with advanced filtering for complex fuzzing scenarios.

DIRB

Web Application

Simple web content scanner with built-in wordlists.

Nikto

Web Application

Web server scanner for vulnerabilities on discovered paths.

SQLMap

Web Application

SQL injection testing on endpoints found by Gobuster.

Nuclei

Web Application

Template-based vulnerability scanner for testing discovered content.

Frequently Asked Questions

What is Gobuster used for?

Gobuster is a directory and file brute-forcing tool used to discover hidden paths on web servers. It supports three modes: directory brute force, DNS subdomain enumeration, and virtual host discovery.

How does Gobuster work?

Gobuster sends HTTP requests for each entry in a wordlist to the target URL. Based on HTTP response codes (200, 301, 403), it identifies existing paths, directories, and files that are not publicly linked.

What is the difference between Gobuster and ffuf?

Gobuster is simpler with dedicated dir, dns, and vhost modes. ffuf offers more advanced filtering, regex support, and faster performance but has a steeper learning curve.

Can Gobuster bypass WAFs?

Gobuster has basic options for rate limiting and user-agent spoofing, but it is not designed for advanced WAF evasion. For WAF bypass scenarios, tools like ffuf or wfuzz with custom payloads are more suitable.

What wordlist should I use with Gobuster?

For directory mode, use SecLists' common.txt or big.txt. For DNS mode, use subdomains-top1million-5000.txt. For vhost mode, use vhosts-top1mil-5000.txt. Always start with smaller lists and escalate to larger ones for thorough discovery.

How do I filter false positives in Gobuster?

Use the -b flag to exclude HTTP status codes (e.g., -b 404,403). Add -l to include response length in output for manual filtering. The -x flag can filter by file extension to reduce noise from irrelevant paths.

Can Gobuster enumerate DNS subdomains?

Yes, use gobuster dns -d target.com -w wordlist.txt to discover subdomains. The DNS mode queries for each subdomain in the wordlist and returns those that resolve. Combine with -r for custom DNS resolver configuration.

How does Gobuster compare to ffuf and wfuzz?

Gobuster is faster for simple directory discovery and has built-in DNS/vhost modes. ffuf offers advanced filtering and fuzzing capabilities. wfuzz provides more payload manipulation options. Gobuster is best for quick scans; ffuf/wfuzz for complex scenarios.

What HTTP status codes indicate a valid discovery?

200 (OK) indicates the path exists. 301/302 (redirects) may indicate valid directories. 403 (Forbidden) often means the path exists but access is restricted. Use -b to exclude irrelevant codes and focus on meaningful results.

How do I use Gobuster in a CI/CD pipeline?

Use Gobuster with a curated wordlist in automated security checks. Set appropriate timeouts with -t and use exit codes to determine if new paths are discovered. Integrate with Jenkins or GitHub Actions for automated security regression testing.

How do I increase Gobuster speed?

Use -t to increase thread count (default is 10): gobuster dir -u http://target.com -w wordlist.txt -t 50. Higher threads increase speed but may overwhelm target servers or trigger WAFs. Start moderate and increase gradually.

Can Gobuster enumerate virtual hosts on a single IP?

Yes, use gobuster vhost mode: gobuster vhost -u http://192.168.1.1 -w wordlist.txt. This sends Host headers with each wordlist entry to discover additional virtual hosts hosted on the same IP address.

How do I use Gobuster with custom cookies?

Use the --cookie flag to pass session cookies: gobuster dir -u http://target.com -w wordlist.txt --cookie "session=abc123". This allows scanning behind authentication by maintaining a valid session.

Can Gobuster scan over HTTPS?

Yes, simply use https:// in the target URL: gobuster dir -u https://target.com -w wordlist.txt. Use --no-tls-validation to skip SSL certificate verification for self-signed or expired certificates.

How do I use Gobuster with extensions?

Use -x to specify file extensions: gobuster dir -u http://target.com -w wordlist.txt -x php,html,txt. This appends each extension to wordlist entries, testing for example.php, example.html, etc.

How do I set the User-Agent in Gobuster?

Use --user-agent or -a to set a custom User-Agent string: gobuster dir -u http://target.com -w wordlist.txt -a 'Mozilla/5.0'. Some WAFs block requests with default Gobuster or Go user-agent strings.

Can Gobuster follow redirects?

Yes, use the -r flag to follow redirects from the target server. Without -r, Gobuster reports 301/302 responses without following them. Use -r when redirects point to the actual content you want to discover.

How do I use Gobuster with multiple wordlists?

Gobuster accepts a single wordlist per scan. To use multiple wordlists, run separate scans or concatenate them: cat list1.txt list2.txt | sort -u > combined.txt, then use combined.txt as the wordlist.

What is the best wordlist for Gobuster directory mode?

For directory mode, use SecLists common.txt for quick scans, big.txt for thorough discovery, or raft-large-directories.txt for comprehensive coverage. Start with smaller lists and escalate based on results.

Tags

#web-application#directory-brute-force#reconnaissance

Output Explanation

The output lists discovered paths alongside HTTP status codes. A 200 means the resource was found, 301 or 302 indicates a redirection, 403 means the resource exists but access is denied, and 404 indicates it does not exist.

Ethical Usage Notice

This tool is designed for authorized security testing, educational purposes, and legitimate network administration only. Unauthorized access to computer systems is illegal.