1. 這是什麼
Gobuster 是一款用 Go 語言編寫的高效能暴力破解工具,主要用於網站目錄/檔案探測、DNS 子域名列舉、虛擬主機發現等任務。它是資安專業人員和滲透測試人員常用的偵察工具之一。
簡單來說,Gobuster 會拿著一份「字典檔」(wordlist),逐一嘗試目標網站上可能存在的路徑或子域名,藉此發現隱藏的資源。
2. 什麼時候使用
Gobuster 適用於滲透測試的偵察階段(Reconnaissance),常見使用情境包括:
- 想找出網站上未公開的管理後台(如
/admin、/login) - 需要發現目標的子域名(如
dev.example.com、api.example.com) - 尋找遺忘或未受保護的備份檔案(如
.bak、.old) - 探測雲端儲存桶(S3、GCS)是否存在且公開
- 進行虛擬主機(Virtual Host)列舉
3. 為什麼需要使用
許多網站存在「隱藏」的目錄或檔案,這些資源可能:
- 沒有被搜尋引擎索引
- 沒有從主頁連結
- 是開發人員遺忘的測試頁面或備份
這些隱藏資源往往成為攻擊者的突破口。Gobuster 的優勢在於:
- 速度快:多執行緒設計,可同時發送大量請求
- 彈性高:支援多種模式(目錄、DNS、虛擬主機等)
- 輕量簡潔:單一執行檔,無需複雜相依性
4. 怎麼安裝
方法一:使用 Go 安裝(推薦)
go install github.com/OJ/gobuster/v3@latest
需要 Go 1.24 以上版本。
方法二:下載預編譯版本
前往 GitHub Releases 頁面 下載對應作業系統的執行檔。
最新版本 v3.8.2 可用檔案:
| 作業系統 | 架構 | 檔案名稱 |
|---|---|---|
| Windows | x86_64 | gobuster_Windows_x86_64.zip |
| Windows | i386 | gobuster_Windows_i386.zip |
| Windows | ARM64 | gobuster_Windows_arm64.zip |
| Linux | x86_64 | gobuster_Linux_x86_64.tar.gz |
| Linux | i386 | gobuster_Linux_i386.tar.gz |
| Linux | ARM64 | gobuster_Linux_arm64.tar.gz |
| macOS | Intel (x86_64) | gobuster_Darwin_x86_64.tar.gz |
| macOS | Apple Silicon (M1/M2) | gobuster_Darwin_arm64.tar.gz |
Windows 安裝步驟:
# 1. 下載檔案(以 x86_64 為例)
# 從 https://github.com/OJ/gobuster/releases 下載 gobuster_Windows_x86_64.zip
# 2. 解壓縮到指定目錄
Expand-Archive -Path gobuster_Windows_x86_64.zip -DestinationPath C:\Tools\gobuster
# 3. 加入環境變數 PATH(以系統管理員身份執行)
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Tools\gobuster", "Machine")
# 4. 重新開啟 PowerShell,驗證安裝
gobuster --version
Linux 安裝步驟:
# 1. 下載檔案(以 x86_64 為例)
wget https://github.com/OJ/gobuster/releases/download/v3.8.2/gobuster_Linux_x86_64.tar.gz
# 2. 解壓縮
tar -xzf gobuster_Linux_x86_64.tar.gz
# 3. 移動到系統路徑
sudo mv gobuster /usr/local/bin/
# 4. 賦予執行權限
sudo chmod +x /usr/local/bin/gobuster
# 5. 驗證安裝
gobuster --version
macOS 安裝步驟:
# 1. 下載檔案
# Apple Silicon (M1/M2/M3)
wget https://github.com/OJ/gobuster/releases/download/v3.8.2/gobuster_Darwin_arm64.tar.gz
# Intel Mac
wget https://github.com/OJ/gobuster/releases/download/v3.8.2/gobuster_Darwin_x86_64.tar.gz
# 2. 解壓縮
tar -xzf gobuster_Darwin_arm64.tar.gz
# 3. 移動到系統路徑
sudo mv gobuster /usr/local/bin/
# 4. 賦予執行權限
sudo chmod +x /usr/local/bin/gobuster
# 5. 如果出現安全性警告,執行以下指令解除限制
xattr -d com.apple.quarantine /usr/local/bin/gobuster
# 6. 驗證安裝
gobuster --version
驗證檔案完整性(選用):
下載後可透過 SHA256 校驗確保檔案未被竄改:
# Linux/macOS
sha256sum gobuster_Linux_x86_64.tar.gz
# 對照官方提供的 checksum
# 例如 Linux x86_64 的 SHA256:
# c8a8c6a966eeb011d682a0ef2305a3e3a86b8b3fabe744350c00a766cc0f8021
方法三:使用 Docker
docker pull ghcr.io/oj/gobuster:latest
docker run --rm -it ghcr.io/oj/gobuster:latest --help
方法四:Kali Linux
Kali 通常已預裝 Gobuster,直接執行即可:
gobuster --help
5. 怎麼用(常用參數說明)
基本語法
gobuster [模式] [選項]
主要模式
| 模式 | 用途 |
|---|---|
dir |
網站目錄/檔案列舉 |
dns |
DNS 子域名列舉 |
vhost |
虛擬主機探測 |
s3 |
Amazon S3 儲存桶列舉 |
gcs |
Google Cloud Storage 列舉 |
fuzz |
自訂模糊測試 |
常用參數
| 參數 | 說明 |
|---|---|
-u |
目標 URL |
-w |
字典檔路徑 |
-t |
執行緒數量(預設 10) |
-x |
要探測的副檔名(如 php,html,txt) |
-s |
只顯示特定狀態碼(如 200,301,403) |
-o |
輸出結果到檔案 |
-q |
安靜模式,減少輸出 |
-H |
自訂 HTTP Header |
-c |
設定 Cookie |
-a |
自訂 User-Agent |
--timeout |
請求逾時秒數 |
--delay |
請求間隔時間 |
實用範例
目錄掃描
gobuster dir -u https://example.com -w /usr/share/wordlists/dirb/common.txt
加上副檔名
gobuster dir -u https://example.com -w wordlist.txt -x php,html,bak,txt
DNS 子域名列舉
gobuster dns -d example.com -w subdomains.txt -t 50
虛擬主機探測
gobuster vhost -u https://example.com -w vhosts.txt --append-domain
6. 紅隊怎麼用
在攻擊方視角,Gobuster 是偵察階段的利器:
場景一:尋找管理後台
gobuster dir -u https://target.com -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt -x php,asp,aspx
場景二:發現 API 端點
gobuster dir -u https://api.target.com/v1/ -w /usr/share/seclists/Discovery/Web-Content/api/api-endpoints.txt
場景三:子域名接管偵察
gobuster dns -d target.com -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -t 100
場景四:繞過 WAF 的技巧
gobuster dir -u https://target.com -w wordlist.txt \
-a "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" \
-t 5 \
--delay 500ms
降低執行緒數、加入延遲、偽裝 User-Agent 可降低被偵測機率。
7. 藍隊怎麼用(偵測特徵)
作為防守方,了解 Gobuster 的行為特徵有助於偵測與防禦:
常見特徵
| 特徵 | 說明 |
|---|---|
| 大量 404 回應 | 短時間內同一 IP 產生大量 404 錯誤 |
| 請求模式規律 | 請求路徑呈現字典檔的順序特徵 |
| User-Agent | 預設為 gobuster/3.x(但可被修改) |
| 高頻率請求 | 同一來源 IP 的 QPS 異常偏高 |
| 請求路徑異常 | 出現常見字典檔中的路徑(如 /admin、/backup、.git) |
偵測與防禦建議
Web Application Firewall(WAF)規則
– 偵測短時間內大量 4xx 回應
– 封鎖含有 gobuster 的 User-Agent(但攻擊者可繞過)
日誌監控
# 找出產生大量 404 的 IP
cat access.log | grep " 404 " | awk '{print $1}' | sort | uniq -c | sort -rn | head
Rate Limiting
– 對單一 IP 設定請求頻率上限
– 對 404 回應數量設定閾值告警
SIEM 規則範例(概念)
IF source_ip generates > 100 requests with status 404 within 60 seconds
THEN alert "Potential Directory Brute Force"
總結
Gobuster 是一款強大且易上手的偵察工具。對紅隊而言,它能快速發現目標的攻擊面;對藍隊而言,理解其特徵是建立有效偵測機制的基礎。
無論站在哪一方,記得:永遠在授權範圍內進行測試。
