Gophish 開源免費的企業釣魚首選方案

Gophish 是一個強大且開源的釣魚模擬工具,專為企業設計,用於測試員工對釣魚攻擊的防禦能力。本文將深入探討其功能與應用。

Gophish 核心功能與優勢

Gophish 是一個免費、開源的釣魚模擬測試框架,讓安全團隊可以建立、發送並追蹤釣魚郵件活動。其直覺式的網頁管理介面,讓使用者可以:

  • 建立釣魚郵件範本: 支援 HTML 編輯器,可高度自訂郵件內容,並使用變數如 {{.FirstName}} 和 {{.URL}},讓郵件看起來更具說服力
  • 設計登入頁面: 建立假的登入頁面,用來測試員工是否會輸入帳號密碼或執行特定操作;支援「匯入網站」功能,可直接複製既有網站的外觀
  • 管理目標群組: 透過 CSV 檔批次匯入員工清單,並依不同測試需求分割群組,進行不同場景的釣魚模擬測試
  • 發送與即時追蹤: 安排釣魚郵件的發送時間,即時監控開啟率、點擊率與帳號密碼提交率,並產出詳細報表
  • 高安全性與彈性: 可部署在企業內部伺服器,確保員工資料與測試結果不會外洩

Gophish 安裝指南

Gophish 提供預先編譯的執行檔,無需複雜的環境設定。請至 Gophish GitHub Releases 頁面 下載最新的 ZIP 壓縮檔。

Linux 安裝步驟

# 解壓縮(替換成你的實際版本號)
unzip -d gophish gophish-v0.12.1-linux-64bit.zip
cd gophish

# 授予執行權限
chmod +x gophish

# 啟動 Gophish
sudo ./gophish

⚠️ 重要:config.json 設定(正式上線前必做)

Gophish 的根目錄內含 config.json 檔案。正式部署前,請調整以下關鍵設定:

{
  "admin_server": {
    "listen_url": "127.0.0.1:3333",  // 管理介面:建議維持僅在 localhost 監聽
    "use_tls": true,                  // 建議啟用 TLS(需憑證)
    "cert_path": "gophish_admin.crt",
    "key_path": "gophish_admin.key"
  },
  "phish_server": {
    "listen_url": "0.0.0.0:80",      // 釣魚伺服器:對外在 80 或 443 監聽
    "use_tls": false,
    "cert_path": "example.crt",
    "key_path": "example.key"
  }
}

重要安全提醒: 管理介面(3333 埠)預設綁定在 127.0.0.1,如果在遠端 VPS 部署 Gophish,請勿將 admin_server.listen_url 改為 0.0.0.0:3333 進行公開暴露。正確做法是透過 SSH 通道 連接管理介面:

# 建立 SSH 通道,將本機 3333 埠轉發到遠端 VPS 的 127.0.0.1:3333
ssh -L 3333:127.0.0.1:3333 your_user@your_vps_ip

# 通道建立後,於本機瀏覽器開啟管理介面
# 注意:除非在 config.json 啟用 TLS,否則預設為 HTTP(非 HTTPS)
[http://127.0.0.1:3333](http://127.0.0.1:3333)

登入管理介面

  1. 程式啟動後,請立即檢查終端機輸出。系統會在日誌中顯示一次性亂數管理員密碼:
    time="..." level=info msg="Please login with the username admin and the password 4r7Xk2mP9qLw"
    此密碼只會顯示一次——請立刻複製。 如果錯過,可重啟 Gophish 重新產生,或事先設定環境變數 GOPHISH_INITIAL_ADMIN_PASSWORD(此做法有利於自動化部署)。
  2. 開啟瀏覽器,前往 http://127.0.0.1:3333(或透過 SSH 通道連接)
  3. 使用帳號 admin 搭配終端機顯示的一次性密碼登入
  4. 首次登入後,系統會強制要求設定新密碼
版本提醒: 亂數密碼生成機制適用於 v0.10.1 及之後的版本。對於 v0.10.1 與更早版本,預設帳號為 admin / gophish — 部署後請立即更改。

Gophish 實作使用指南

要執行一次完整的釣魚模擬測試(Campaign),請依左側選單順序,依序完成以下五個設定步驟:

1. 發送設定(設定郵件伺服器)

設定用來發送釣魚郵件的 SMTP 伺服器資訊。你可以整合公司內部測試用的郵件伺服器,也可使用第三方電子郵件服務。設定完成後,請點選「Send Test Email」測試連線是否正常。

2. 使用者與群組(建立目標群組)

點選「New Group」並上傳 CSV 檔案,批次匯入受測員工清單。CSV 欄位通常包含 First Name、Last Name 和 Email。

3. 登入頁面(設計目標頁面)

設計使用者點擊郵件連結後所看到的假網頁:

  • 使用 Import Site 功能,貼入既有網站的 URL(例如 Microsoft 登入頁面),系統會自動複製該頁面的外觀
  • 勾選 Capture Submitted Data,可記錄表單提交內容;勾選 Capture Passwords 會直接記錄明文密碼(實際作業中,多數企業僅追蹤點擊與提交次數以保護隱私——不建議實際記錄明文密碼)

4. 郵件範本(撰寫郵件內容)

使用 HTML 編輯器撰寫釣魚郵件內容。Gophish 支援以下重要變數:

  • {{.FirstName}}、{{.LastName}}:自動填入收件人姓名,加強真實度
  • {{.URL}}:必須設定 — 系統會自動替換為 Landing Page 的追蹤 URL(含唯一識別代碼)
  • {{.Tracker}}:嵌入一個 1×1 像素的隱藏追蹤像素,用來偵測郵件開啟行為(即使使用者沒有點擊任何連結)

5. 活動(啟動測試)

將先前設定的各項元素組合起來:

  • 名稱: 為本次測試命名(例如 2026 第一季釣魚測試)
  • 郵件範本與登入頁面: 選取已建立的範本與頁面
  • URL: 輸入 Gophish 釣魚伺服器的外部 IP 或域名(也就是 {{.URL}} 會展開的基礎網址),此位址為 80/443 釣魚伺服器,不是 3333 管理介面
  • 選取對應的發送設定與群組
  • 點選 Launch 立即發送,或使用排程功能設定發送時間

活動啟動後,可於儀表板即時監控所有員工的開啟率、點擊率與帳號密碼提交率,並產出報表,據此安排後續資安意識教育訓練。">

更多資安新聞