| name | feroxbuster |
| description | Operate Feroxbuster — a fast, recursive content discovery tool written in Rust for brute-forcing files, directories, and endpoints against web servers. Use when performing web content enumeration, finding hidden paths, discovering API endpoints, or recursively walking directory structures. Covers installation, wordlists, extensions, filtering, recursion, rate limiting, output formats, auto-tune, scan resumption, and comparison with ffuf, gobuster, and dirsearch.
|
| metadata | {"author":"redhoundinfosec","version":"1.0","repo":"https://github.com/epi052/feroxbuster","language":"Rust"} |
feroxbuster Agent Skill
When to Use This Skill
Use this skill when:
- Brute-forcing directories and files on web servers during pentest/CTF
- Performing recursive content discovery (feroxbuster auto-recurses into found directories)
- Discovering API endpoints, backup files, configuration files, admin panels
- Needing high-speed content discovery with auto-tune to avoid rate-limiting
- Resuming interrupted scans against the same target
- Comparing tool choices: feroxbuster vs ffuf vs gobuster vs dirsearch
What Feroxbuster Does
Feroxbuster (epi052/feroxbuster, ~6.7k GitHub stars) is a Rust-based content discovery tool
designed for speed and recursion. Unlike gobuster, feroxbuster automatically recurses into
discovered directories by default, making it ideal for deeply nested web applications. Its
async I/O architecture allows hundreds of concurrent requests while its auto-tune feature
dynamically adjusts throughput based on server response latency and error rates.
Installation
Cargo (Rust toolchain)
cargo install feroxbuster
apt (Kali/Debian)
sudo apt update && sudo apt install -y feroxbuster
Homebrew (macOS)
brew install feroxbuster
Docker
docker pull epi052/feroxbuster
docker run --init -it epi052/feroxbuster -u http://target.com \
-w /wordlists/raft-large-directories.txt
docker run --init -it -v ~/wordlists:/wordlists epi052/feroxbuster \
-u http://target.com -w /wordlists/raft-large-directories.txt
Pre-built Binary
curl -sL https://raw.githubusercontent.com/epi052/feroxbuster/main/install-nix.sh \
| bash -s $HOME/.local/bin
Core Concepts
Recursive by Default
Feroxbuster automatically recurses into every directory it finds that returns a 2xx or 3xx
response. This means a scan of / will automatically spawn sub-scans of /admin/, /api/,
/api/v1/, etc., without manual intervention. Control depth with -d.
Auto-Tune
The --auto-tune flag monitors the ratio of errors to successes and dynamically reduces the
request rate when the server starts struggling. This prevents killing slow targets while still
maximising speed on fast targets.
Response Filtering Strategy
Rather than relying purely on status codes, feroxbuster filters based on:
- Status codes:
-C (filter OUT), -s (filter IN — show only)
- Response size:
--filter-size (filter exact byte count), --filter-similar-size
- Word count:
--filter-words
- Line count:
--filter-lines
- Regex on response body:
--filter-regex
CLI Reference
Basic Usage
feroxbuster -u http://target.com
feroxbuster -u http://target.com \
-w /usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt
feroxbuster -u https://target.com \
-w /usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt
Extensions
feroxbuster -u http://target.com \
-w /usr/share/seclists/Discovery/Web-Content/raft-large-files.txt \
-x php,html,txt,bak,zip,sql,js,json
feroxbuster -u http://target.com/api \
-w /usr/share/seclists/Discovery/Web-Content/api/objects.txt \
-x json
feroxbuster -u http://target.com \
-w /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt \
-x bak,backup,old,orig,save,swp,tmp,.DS_Store
Status Code Filtering
feroxbuster -u http://target.com -C 404,403
feroxbuster -u http://target.com -s 200,301
feroxbuster -u http://target.com -C 404,400,500
feroxbuster -u http://target.com -C 404 --auto-tune
feroxbuster -u http://target.com -s 200 --filter-size 1234
Response Size and Content Filtering
feroxbuster -u http://target.com --filter-size 1234
feroxbuster -u http://target.com --filter-similar-size 1300
feroxbuster -u http://target.com --filter-words 42
feroxbuster -u http://target.com --filter-lines 10
feroxbuster -u http://target.com --filter-regex "Not Found|Error 404"
Recursion Control
feroxbuster -u http://target.com --no-recursion
feroxbuster -u http://target.com -d 2
feroxbuster -u http://target.com --depth 3 -s 200,301,302,403
Threading and Rate Limiting
feroxbuster -u http://target.com -t 100
feroxbuster -u http://target.com -t 10
feroxbuster -u http://target.com --rate-limit 50
feroxbuster -u http://target.com --auto-tune
feroxbuster -u http://target.com --auto-tune --rate-limit 100
Output Options
feroxbuster -u http://target.com -o results.txt
feroxbuster -u http://target.com --json -o results.json
feroxbuster -u http://target.com -q
feroxbuster -u http://target.com --silent
feroxbuster -u http://target.com --no-color -o clean.txt
Resuming Scans
feroxbuster -u http://target.com \
-w /usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt \
--output scan_state.txt \
--json
feroxbuster --resume-from scan_state.json
feroxbuster --resume-from .ferox_resume.json
Proxy Support
feroxbuster -u http://target.com -p http://127.0.0.1:8080
feroxbuster -u http://target.com -p socks5://127.0.0.1:1080
feroxbuster -u http://target.com \
--replay-proxy http://127.0.0.1:8080 \
--replay-codes 200,201,204,301,302,307,401,403
Headers and Authentication
feroxbuster -u http://target.com \
-H "Authorization: Bearer eyJhbGc..." \
-H "X-Custom-Header: value"
feroxbuster -u http://target.com \
-H "Cookie: session=authenticated_token"
feroxbuster -u http://target.com \
--username admin --password password
feroxbuster -u http://target.com \
-H "User-Agent: Mozilla/5.0 (Windows NT 10.0)"
Link Extraction and Word Collection
feroxbuster -u http://target.com --dont-extract-links
feroxbuster -u http://target.com --collect-words \
-o collected_words.txt
feroxbuster -u http://target.com --collect-extensions
Multiple Targets
feroxbuster --stdin -w /usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt \
< targets.txt
cat targets.txt | feroxbuster --stdin \
-w /usr/share/seclists/Discovery/Web-Content/common.txt
Timeout and Connection Settings
feroxbuster -u http://target.com --timeout 15
feroxbuster -u http://target.com --retries 2
feroxbuster -u https://target.com --insecure
Common Workflows
Standard Web App Discovery (OSCP/CTF)
feroxbuster -u http://target.com \
-w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt \
-C 404 -d 2 -t 50 -o phase1_dirs.txt
feroxbuster -u http://target.com \
-w /usr/share/seclists/Discovery/Web-Content/raft-large-files.txt \
-x php,html,txt,bak,zip,sql -C 404 -d 1 -o phase2_files.txt
feroxbuster -u http://target.com \
-w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-large.txt \
-C 404,400 --auto-tune -o phase3_deep.txt
API Endpoint Discovery
feroxbuster -u http://target.com/api \
-w /usr/share/seclists/Discovery/Web-Content/api/api-endpoints.txt \
-x json -s 200,201,400,401,403 \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-C 404 -d 3
Authenticated Application Scan
feroxbuster -u http://target.com/dashboard \
-H "Cookie: PHPSESSID=your_authenticated_session" \
-w /usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt \
-C 404,302 -d 3 --auto-tune
Soft 404 Handling
curl -si "http://target.com/definitely_not_real_$(date +%s)" | \
grep -i "content-length"
feroxbuster -u http://target.com \
-w /usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt \
-s 200 --filter-size 1523
Post-Discovery Filtering Pipeline
cat results.json | jq -r 'select(.status==200) | .url' | sort -u > live_paths.txt
grep -iE "admin|backup|config|\.sql|\.zip|\.bak|login|upload" results.txt
grep -E " 301 " results.txt | awk '{print $NF}' > found_dirs.txt
Tool Comparison
| Feature | feroxbuster | ffuf | gobuster | dirsearch |
|---|
| Language | Rust | Go | Go | Python |
| Auto-recursion | Yes (default) | No (manual) | No | Yes (opt-in) |
| Auto-tune | Yes | No | No | No |
| Resume scans | Yes | No | No | Yes |
| Response filtering | Rich (size/words/lines/regex) | Good | Basic | Good |
| POST fuzzing | No | Yes | No | No |
| Speed | Very fast | Very fast | Fast | Moderate |
| Config file | Yes | Yes | No | No |
| Best for | Recursive dir enum | All-purpose fuzzing | Simple dir/DNS | Python workflow |
When to use ffuf instead: POST fuzzing, FUZZ in headers/body, vhost discovery, parameter
fuzzing — ffuf's FUZZ keyword approach is more flexible for non-path targets.
When to use gobuster instead: DNS subdomain bruteforce (dns mode), S3 bucket enumeration
(s3 mode), very simple flat scans where recursion is not needed.
Advanced Techniques
Configuration File
wordlist = "/usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt"
status_codes = [200, 204, 301, 302, 307, 308, 401, 403, 405]
threads = 50
depth = 4
timeout = 7
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) feroxbuster"
auto_tune = true
Chaining with Nuclei for Vulnerability Detection
feroxbuster -u http://target.com \
-w /usr/share/seclists/Discovery/Web-Content/raft-large-files.txt \
--silent -s 200,403 --json -o ferox.json
cat ferox.json | jq -r '.url' > endpoints.txt
nuclei -l endpoints.txt -t /opt/nuclei-templates/ -severity medium,high,critical
Building Target-Specific Wordlist
feroxbuster -u http://target.com \
-w /usr/share/seclists/Discovery/Web-Content/common.txt \
--collect-words -o /dev/null
feroxbuster -u http://target.com \
-w collected_words_*.txt \
-C 404 --auto-tune
Integration with Other Tools
nmap -p 80,443,8080,8443 --open -T4 10.10.10.0/24 -oG - | \
grep "80/open\|443/open\|8080/open" | \
awk '{print "http://"$2}' | \
feroxbuster --stdin \
-w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt
Troubleshooting
Too many false positives (all paths return 200)
curl -s "http://target.com/fake_$(date +%s%N)" | wc -c
feroxbuster -u http://target.com --filter-size 2048
Scan kills the server / connection refused
feroxbuster -u http://target.com -t 5 --rate-limit 10 --auto-tune
HTTPS SSL errors
feroxbuster -u https://target.com --insecure
Recursion spawning too many sub-scans
feroxbuster -u http://target.com -d 2 --no-recursion
feroxbuster -u http://target.com/admin/ -d 3
Resume not working
ls -la .ferox_resume.json
feroxbuster --resume-from .ferox_resume.json
Built by Red Hound InfoSec — On-demand offensive security expertise for SMBs.
20+ years of Fortune 500 experience. Penetration testing, attack surface analysis, and security consulting.
redhound.us | GitHub | Book a consultation