Email - 我們常常在生活中會使用到,透過 Email 我們可以不受距離限制的跟其他人溝通,十分方便,但這方便也會帶來資安風險,最常遇到的就是釣魚信件了,釣魚信件常常會偽裝成正常的組織或公司,引誘使用者點擊,如果使用者點擊了釣魚信件的網址或者下載了附件,有可能洩漏電腦的機密資料或者讓電腦中毒,並且釣魚信件使用門檻較低但殺傷力很大,是 APT 組織攻擊時最常用的初始攻擊向量,因此今天想要分享的是 Email Security
一個 Email 帳號的組成,會由一個小老鼠@
將左右隔開
aaaabbbccc123
、 admin
、me
皆可gmail.com
;如果自己有架設 Email Server,就會是自己的 domain,如:yunshiuan.com
source: https://flickr.com/photos/jameschen1/24160994516/
到這邊就會有一個偽造正常信件的方式:如果攻擊者註冊了一個與正常組織幾乎相同、只差一個字的 domain,甚至直接冒用正常組織的 Domain Name 來欺騙使用者,只要使用者一個不注意就可能把它當成正常信件而被釣到,這個攻擊被稱為 Email Spoofing
攻擊者會試圖使用與常見組織相似或相同的 email 欺騙使用者認為是正常郵件。
ex : 可以透過 這個網頁 偽造 Email 傳給使用者,這邊將 Email 偽造成support@paypal.com
並傳一封帳號異常的信給使用者
那這樣只單看 Email 是很難分辨是否為釣魚信件,所以會透過郵件驗證協定 DMARC 來偵測郵件偽造攻擊。
DMARC 是一種郵件驗證協定,它讓郵件網域擁有者能聲明當收到未通過驗證的郵件時該如何處理。
我在 demo 時寄到我個人的信箱,使用 Cloudflare 的 Email Routing 功能轉發郵件;因此當我把釣魚信寄到自己的信箱時,因未通過 DMARC 驗證而被拒收。
如果DMARC 驗證通過的話會像下方圖示的一樣
可以看到主要的驗證方式會使用到 SPF 以及 DKIM。
SPF 是一種電子郵件驗證協定,它讓網域擁有者能夠指定哪些郵件伺服器有權代表該網域寄送郵件。這份「授權清單」會以 DNS TXT 記錄 的形式公開發布,接收方的郵件伺服器則可在收信時檢查寄件伺服器是否被授權,以判斷郵件是否可信。
可以使用 dig
指令查看 SPF
$ dig yunshiuan.com TXT | grep spf
yunshiuan.com. 377 IN TXT "v=spf1 include:_spf.mx.cloudflare.net ~all"
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
但是DMARC 也不一定是萬能的,還是有可能會被 Bypass ,對於大公司來說如果員工點了釣魚信件,並且執行了信件內附件或者網址,會對公司造成巨大的危害,因此社交工程演練是非常重要的
社交工程演練是模擬真實攻擊情境,測試員工對釣魚郵件、電話詐騙等社交工程攻擊的識別和應對能力,並透過教育訓練提升整體資安意識的安全演練活動。
關於釣魚信件的社交工程演練,有一個開源的平台可以使用 - 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
後登入就可以開始使用了
裡面的功能非常豐富,包括
source : https://ui-code.com/archives/779
對於藍隊來說,預防釣魚信件是資安防護的重要一環。今天介紹的 Email 驗證機制(DMARC、SPF、DKIM)以及 Gophish 釣魚信件社交工程演練平台,都是預防釣魚信件攻擊的關鍵技術與工具。