[資安工具] 008 Gobuster 網站目錄爆破工具入門指南

1. 這是什麼

Gobuster 是一款用 Go 語言編寫的高效能暴力破解工具,主要用於網站目錄/檔案探測、DNS 子域名列舉、虛擬主機發現等任務。它是資安專業人員和滲透測試人員常用的偵察工具之一。

簡單來說,Gobuster 會拿著一份「字典檔」(wordlist),逐一嘗試目標網站上可能存在的路徑或子域名,藉此發現隱藏的資源。


2. 什麼時候使用

Gobuster 適用於滲透測試的偵察階段(Reconnaissance),常見使用情境包括:

  • 想找出網站上未公開的管理後台(如 /admin/login
  • 需要發現目標的子域名(如 dev.example.comapi.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 是一款強大且易上手的偵察工具。對紅隊而言,它能快速發現目標的攻擊面;對藍隊而言,理解其特徵是建立有效偵測機制的基礎。

無論站在哪一方,記得:永遠在授權範圍內進行測試

飛飛
飛飛

講師學歷:臺科資工所、逢甲資工系畢業。
技術專長:OSINT、滲透測試、網站開發、專業易懂教育訓練。
證照書籍:OSCP、OSCE³、著《資安這條路:領航新手的 Web Security 指南》。
教學經驗:60+ 企業教學經驗、指導過上百位學員。
教學特色:新手友善、耐心指導、擅長圖解(流程圖、心智圖)引導學習。
社群經驗:目前經營全臺資安社群 CURA,曾任臺科資安社社長、逢甲黑客社社長。
社群交流:LINE 社群《飛飛的資安大圈圈》,即時分享經驗、鼓勵交流。
社群分享:FB 粉專《資安這條路,飛飛來領路》,分享文章與圖卡整理。
個人網站:feifei.tw 分享資安技術文章;pbtw.tw 分享 AI 相關應用;ssdlc.feifei.tw 分享軟體安全開發流程文章。