如果我用 Email 釣魚,這樣可以釣到真正的美人魚嗎
🧂 前言
Email - 我們常常在生活中會使用到,透過 Email 我們可以不受距離限制的跟其他人溝通,十分方便,但這方便也會帶來資安風險,最常遇到的就是釣魚信件了,釣魚信件常常會偽裝成正常的組織或公司,引誘使用者點擊,如果使用者點擊了釣魚信件的網址或者下載了附件,有可能洩漏電腦的機密資料或者讓電腦中毒,並且釣魚信件使用門檻較低但殺傷力很大,是 APT 組織攻擊時最常用的初始攻擊向量,因此今天想要分享的是 Email Security
Email Security
一個 Email 帳號的組成,會由一個小老鼠@ 將左右隔開
- 左半部分是依照使用者設定的字串,因此可以取名為
aaaabbbccc123、admin、me皆可 - 右半部分是組織的 Domain Name,像是常見的
gmail.com;如果自己有架設 Email Server,就會是自己的 domain,如:yunshiuan.com

source: https://flickr.com/photos/jameschen1/24160994516/
到這邊就會有一個偽造正常信件的方式:如果攻擊者註冊了一個與正常組織幾乎相同、只差一個字的 domain,甚至直接冒用正常組織的 Domain Name 來欺騙使用者,只要使用者一個不注意就可能把它當成正常信件而被釣到,這個攻擊被稱為 Email Spoofing
Email Spoofing
攻擊者會試圖使用與常見組織相似或相同的 email 欺騙使用者認為是正常郵件。
ex : 可以透過 這個網頁 偽造 Email 傳給使用者,這邊將 Email 偽造成support@paypal.com 並傳一封帳號異常的信給使用者

那這樣只單看 Email 是很難分辨是否為釣魚信件,所以會透過郵件驗證協定 DMARC 來偵測郵件偽造攻擊。
DMARC
DMARC 是一種郵件驗證協定,它讓郵件網域擁有者能聲明當收到未通過驗證的郵件時該如何處理。
我在 demo 時寄到我個人的信箱,使用 Cloudflare 的 Email Routing 功能轉發郵件;因此當我把釣魚信寄到自己的信箱時,因未通過 DMARC 驗證而被拒收。

如果DMARC 驗證通過的話會像下方圖示的一樣。

可以看到主要的驗證方式會使用到 SPF 以及 DKIM。
SPF
SPF 是一種電子郵件驗證協定,它讓網域擁有者能夠指定哪些郵件伺服器有權代表該網域寄送郵件。這份「授權清單」會以 DNS TXT 記錄 的形式公開發布,接收方的郵件伺服器則可在收信時檢查寄件伺服器是否被授權,以判斷郵件是否可信。
可以使用 dig 指令查看 SPF
$ dig yunshiuan.com TXT | grep spf
yunshiuan.com. 377 IN TXT "v=spf1 include:_spf.mx.cloudflare.net ~all"
- v=spf1:指定 SPF 協定版本
- include:_spf.mx.cloudflare.net:授權清單由 Cloudflare 維護
- ~all:非授權來源標記為 SoftFail(可疑)
(若設定 -all 則代表 Fail,非授權來源應被拒絕)
DKIM
DKIM 是電子郵件驗證機制之一,讓收件方可以驗證一封郵件是否真正由該網域授權寄出,並確認郵件在傳送過程中是否被篡改;它透過數位簽章機制實現。寄件方使用私鑰對郵件內容進行簽名,收件方則從 DNS 查出對應的公鑰來驗證。
DKIM 的公鑰會被發布在 DNS TXT 紀錄中,格式如下:
<selector>._domainkey.<domain>
以 Cloudflare 舉例,它的 selector 是 cf2024-1,查詢 DKIM 也可使用 dig 指令
$ dig cf2024-1._domainkey.yunshiuan.com TXT | grep DKIM
cf2024-1._domainkey.yunshiuan.com. 377 IN TXT "v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiweykoi+o48IOGuP7GR3X0MOExCUDY/BCRHoWBnh3rChl7WhdyCxW3jgq1daEjPPqoi7sJvdg5hEQVsgVRQP4DcnQDVjGMbASQtrY4WmB1VebF+RPJB2ECPsEDTpeiI5ZyUAwJaVX7r6bznU67g7LvFq35yIo4sdlmtZGV+i0H4cpYH9+3JJ78k" "m4KXwaf9xUJCWF6nxeD+qG6Fyruw1Qlbds2r85U9dkNDVAS3gioCvELryh1TxKGiVTkg4wqHTyHfWsp7KD3WQHYJn0RyfJJu6YEmL77zonn7p2SRMvTMP3ZEXibnC9gz3nnhR6wcYL8Q7zXypKTMD58bTixDSJwIDAQAB"
總結來說 DMARC 驗證流程會是:接收方收到郵件後,先檢查 SPF 和 DKIM 認證,再根據 DMARC 政策決定郵件的處理方式(放行、隔離或拒絕)。
DMARC 記錄可以在 _dmarc.<domain> 找到
$ dig _dmarc.any.run TXT
; <<>> DiG 9.10.6 <<>> _dmarc.any.run TXT
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31385
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4095
;; QUESTION SECTION:
;_dmarc.any.run. IN TXT
;; ANSWER SECTION:
_dmarc.any.run. 377 IN TXT "v=DMARC1; p=quarantine; sp=quarantine;"
;; Query time: 226 msec
;; SERVER: 100.100.100.100#53(100.100.100.100)
;; WHEN: Thu Oct 09 20:09:24 CST 2025
;; MSG SIZE rcvd: 94
- v=DMARC1 : DMARC 版本
- p=quarantine : 主要政策,對主域名認證失敗的郵件進行隔離
- sp=quarantine : 子域名政策,對子域名認證失敗的郵件也進行隔離
但是DMARC 也不一定是萬能的,還是有可能會被 Bypass ,對於大公司來說如果員工點了釣魚信件,並且執行了信件內附件或者網址,會對公司造成巨大的危害,因此社交工程演練是非常重要的
社交工程演練是模擬真實攻擊情境,測試員工對釣魚郵件、電話詐騙等社交工程攻擊的識別和應對能力,並透過教育訓練提升整體資安意識的安全演練活動。
關於釣魚信件的社交工程演練,有一個開源的平台可以使用 - Gophish
Gophish
下載連結:https://github.com/gophish/gophish/releases
Gophish 是一個開源的釣魚模擬平台,用於進行社交工程演練,可以快速建立和發送釣魚郵件,追蹤點擊率和提交率,幫助組織測試員工的資安意識並提供教育訓練。
source : https://ui-code.com/archives/779
安裝很簡單,將 ZIP 下載之後執行裡面的執行檔就能架起

如果要遠端也可以登入admin 介面,要去config.json 將admin 網址改成0.0.0.0:3333
若要遠端也能登入 Admin 介面,請在 config.json 將 Admin 位址改成 0.0.0.0:3333
架起來後會給你帳號密碼,網頁進入0.0.0.0:3333後登入就可以開始使用了

裡面的功能非常豐富,包括
- 活動管理: 建立/排程釣魚活動,指定目標群組、郵件模板、登入頁與寄件設定,並即時監控結果。
- 目標群組: 管理收件人清單,支援手動新增與 CSV 匯入。
- 郵件模板: 視覺化編輯與變數插入(如 {{.FirstName}}),可預覽與測試寄送。
- 登入頁: 匯入/客製 HTML,選擇是否擷取提交資料,支援點擊後/提交後導向。
- 寄件設定: 設定 SMTP(主機、帳密、TLS/SSL、自訂寄件者/標頭),支援測試連線。
- 即時追蹤: 記錄寄送、開啟、點擊、提交資料(含 IP、User-Agent);可選「回報」事件。
- 儀表板與報表: 活動概況、成效趨勢,結果支援 CSV 匯出。
- REST API: 提供完整 API 以自動化建立活動、上傳模板/名單、擷取結果。
- 網域與證書: 自訂追蹤/寄送網域與 TLS 憑證配置,提升可信度與達投遞率。

source : https://ui-code.com/archives/779
總結
對於藍隊來說,預防釣魚信件是資安防護的重要一環。今天介紹的 Email 驗證機制(DMARC、SPF、DKIM)以及 Gophish 釣魚信件社交工程演練平台,都是預防釣魚信件攻擊的關鍵技術與工具。