Gobuster,這是在滲透測試和 Web 安全偵察階段一款極其常用且高效的工具。如果說 Nmap 負責探測「門窗」(通訊埠),那麼 Gobuster 就負責找出那些地圖上沒有標示的「密道」和「暗門」(隱藏的目錄與檔案)。
Gobuster 是一款使用 Go 語言編寫的、專為暴力破解 (Brute-force) 設計的命令列工具。它的核心目標是進行內容發現 (Content Discovery)。
在一個網站上,並不是所有的頁面和資源都會被直接連結到。開發者可能會留下一些測試頁面、管理後台登入頁面、設定檔、備份檔案等,這些內容如果被攻擊者發現,就可能成為入侵的突破口。Gobuster 的任務就是拿著一本「字典」(Wordlist),快速地去猜測這些隱藏資源的路徑是否存在。
Gobuster 的最大特色:
dirb
)。Gobuster 有多種運作模式,其中最常用的是以下幾種:
dir
模式 - 目錄/檔案暴力破解這是 Gobuster 最核心、最常用的功能。
https://example.com
,但你懷疑它可能有一個未公開的管理後台。你可以用 Gobuster 搭配一個包含常見目錄名稱(如 admin
, login
, dashboard
)的字典檔去掃描。dns
模式 - 子網域暴力破解example.com
時,你想知道它是否還有 dev.example.com
, api.example.com
, internal.example.com
等不為人知的子網域。vhost
模式 - 虛擬主機暴力破解Host
標頭來決定要顯示哪個網站的內容。此模式會不斷變更 Host
標頭的值去進行猜解。example.com
的 IP 是 1.2.3.4
,你想知道這個 IP 上是否還託管了 internal-app.com
等其他網站。Gobuster 的成敗,一半靠工具本身的速度,另一半則完全取決於你使用的字典檔 (Wordlist)。一個好的字典檔是成功掃描的關鍵。
這是你的「猜測清單」。網路上有許多開源且非常優秀的字典檔專案,其中最著名的就是 SecLists。它包含了針對各種場景(目錄、子網域、密碼、Fuzzing)的大量字典。
dir
模式常用指令假設目標 URL 為 http://192.168.1.101
,字典檔路徑為 /usr/share/wordlists/dirb/common.txt
。
最基礎的目錄掃描:
gobuster dir -u http://192.168.1.101 -w /usr/share/wordlists/dirb/common.txt
-u
: 指定目標 URL (Url)。-w
: 指定要使用的字典檔 (Wordlist)。增加掃描速度:
gobuster dir -u http://... -w /path/to/wordlist.txt -t 50
-t
: 指定執行緒數量 (Threads),預設是 10。增加此數值可以顯著提升速度,但要小心不要把目標網站打掛了。掃描特定類型的檔案:
gobuster dir -u http://... -w /path/to/wordlist.txt -x php,txt,bak
-x
: 指定要掃描的檔案副檔名 (Extensions)。Gobuster 會在字典檔的每個詞後面都追加這些副檔名再進行測試(例如 admin.php
, admin.txt
, admin.bak
)。儲存掃描結果:
gobuster dir -u http://... -w /path/to/wordlist.txt -o results.txt
-o
: 將輸出結果儲存到指定檔案 (Output)。dns
模式常用指令假設目標網域為 megacorp.one
。
gobuster dns -d megacorp.one -w /path/to/subdomains.txt
-d
: 指定目標網域 (Domain)。Gobuster 的輸出非常直觀,通常是:[Found] /admin (Status: 301)
[Found] /images (Status: 200)
[Found] /server-status (Status: 403)
你需要關注的是 HTTP 狀態碼 (Status Code):
/admin
會被導向到 /admin/login.php
。這同樣是非常有用的資訊。所以Gobuster 是一款簡單、暴力、但極其有效的偵察工具。在任何 Web 滲透測試的初期階段,使用 Gobuster 快速掃描目標的隱藏內容,是繪製完整攻擊面 (Attack Surface) 的標準作業程序。它找到的任何一個意料之外的檔案或目錄,都可能成為整個測試的關鍵突破口。