Feroxbuster 递归目录扫描
Feroxbuster 是用 Rust 编写的高速递归目录枚举工具。与 Gobuster 的最大区别在于 Feroxbuster 原生支持递归扫描——发现子目录后自动进入继续枚举,不需要手动二次扫描。
安装
Kali Linux
Kali 2021.1+ 默认已预装:
feroxbuster --version
Debian / Ubuntu
sudo apt update && sudo apt install -y feroxbuster
Cargo
cargo install feroxbuster
macOS
brew install feroxbuster
二进制安装
curl -sL https://raw.githubusercontent.com/epi052/feroxbuster/main/install-nix.sh | bash
核心参数速查
| 参数 | 说明 | 示例 |
|---|---|---|
-u <url> | 目标 URL | -u http://192.168.1.108/ |
-w <wordlist> | 字典文件 | -w /usr/share/seclists/Discovery/Web-Content/common.txt |
-t <n> | 并发线程数(默认 50) | -t 30 |
-x <exts> | 追加扩展名 | -x php,txt,html,bak |
-o <file> | 输出到文件 | -o ferox.txt |
-d <depth> | 递归深度(默认 4) | -d 2 |
-n | 不递归 | -n |
-q | 安静模式 | -q |
-k | 跳过 TLS 证书验证 | -k |
-r | 跟随重定向 | -r |
-C <codes> | 过滤状态码 | -C 404,403 |
-S <size> | 过滤响应大小 | -S 0 |
-W <words> | 过滤响应字数 | -W 10 |
-L <lines> | 过滤响应行数 | -L 5 |
-H <header> | 自定义 Header | -H "Cookie: session=abc" |
-a <ua> | 自定义 User-Agent | -a "Mozilla/5.0" |
-s <codes> | 仅显示指定状态码 | -s 200,301 |
--rate-limit <n> | 每秒最大请求数 | --rate-limit 100 |
--time-limit <s> | 扫描超时时间 | --time-limit 5m |
--auto-tune | 自动调整速率 | --auto-tune |
-e | 提取页面中的链接 | -e |
常用扫描模式
1. 递归扫描(默认行为,最大优势)
Feroxbuster 默认递归深度为 4 层:
feroxbuster -u http://192.168.1.108/ -w /usr/share/seclists/Discovery/Web-Content/common.txt -x php,txt,html
发现 /app/ 后会自动扫描 /app/*,无需手动操作。
2. 限制递归深度
# 只递归 1 层(类似 Gobuster 行为 + 1 层深入)
feroxbuster -u http://target/ -w /usr/share/seclists/Discovery/Web-Content/common.txt -d 1 -x php
# 不递归(等同 Gobuster)
feroxbuster -u http://target/ -w /usr/share/seclists/Discovery/Web-Content/common.txt -n
3. 过滤噪音
# 过滤 404 和 403
feroxbuster -u http://target/ -w wordlist.txt -C 404,403
# 过滤特定大小的响应(通配符页面)
feroxbuster -u http://target/ -w wordlist.txt -S 1234
# 过滤特定行数
feroxbuster -u http://target/ -w wordlist.txt -L 5
4. 带认证扫描
feroxbuster -u http://target/ -w wordlist.txt -H "Cookie: PHPSESSID=abc123" -H "Authorization: Bearer xxx"
5. 速率控制
# 限制每秒 50 个请求
feroxbuster -u http://target/ -w wordlist.txt --rate-limit 50
# 自动调整(遇到错误自动降速)
feroxbuster -u http://target/ -w wordlist.txt --auto-tune
6. 链接提取
# 从响应页面中提取链接,加入扫描队列
feroxbuster -u http://target/ -w wordlist.txt -e
交互式控制
Feroxbuster 运行期间支持键盘交互:
| 按键 | 功能 |
|---|---|
Enter | 显示所有扫描状态 |
数字 n + Enter | 取消第 n 个扫描任务 |
w + Enter | 增加线程数 |
s + Enter | 减少线程数 |
这对于发现大量递归子目录导致扫描失控时非常有用——可以按需取消不相关的分支。
配置文件
Feroxbuster 支持 TOML 配置文件,避免每次输入长命令。默认路径 /etc/feroxbuster/ferox-config.toml。
# ~/.config/feroxbuster/ferox-config.toml
wordlist = "/usr/share/seclists/Discovery/Web-Content/common.txt"
extensions = ["php", "txt", "html"]
threads = 30
depth = 2
status_codes = [200, 301, 302]
filter_status = [404, 403]
output = "ferox-results.txt"
使用配置文件后只需:
feroxbuster -u http://target/
与 Gobuster 的选择
| 场景 | 推荐工具 | 理由 |
|---|---|---|
| 快速扫描已知路径结构 | Gobuster | 简单直接,不递归不浪费时间 |
| 需要深入探索目录树 | Feroxbuster | 自动递归,省去手动二次扫描 |
| 子域名/VHost 枚举 | Gobuster | Feroxbuster 不支持 |
| 大型 Web 应用深度审计 | Feroxbuster | 链接提取 + 递归 + 自动调速 |
| 不确定用哪个 | Gobuster | 先快扫,有需要再上 Feroxbuster |
靶场建议:先 Gobuster
common.txt快扫,如果发现多层嵌套目录结构,切换到 Feroxbuster 递归深扫。
靶场实战速查
| 场景 | 命令 |
|---|---|
| 递归扫描 | feroxbuster -u http://target/ -w /usr/share/seclists/Discovery/Web-Content/common.txt -x php,txt,html -d 2 |
| 大字典深扫 | feroxbuster -u http://target/ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php -t 50 |
| 静默输出保存 | feroxbuster -u http://target/ -w /usr/share/seclists/Discovery/Web-Content/common.txt -q -o results.txt |
| HTTPS 目标 | feroxbuster -u https://target/ -w /usr/share/seclists/Discovery/Web-Content/common.txt -k |
| 限速扫描 | feroxbuster -u http://target/ -w /usr/share/seclists/Discovery/Web-Content/common.txt --rate-limit 50 --auto-tune |
相关知识
- Gobuster 目录与子域名枚举 — 不支持递归但支持子域名/VHost,快速扫描首选
- RustScan 端口扫描 — 发现 HTTP 端口
- Nmap 服务识别与脚本扫描 — 确认 Web 服务器类型