郵件偽造技術與檢測
釣魚郵件是指黑客偽裝成同事、合作伙伴、朋友,通過傳送電子郵件的方式,誘使使用者點選嵌入郵件正文的惡意連結或者開啟郵件附件以植入木馬或間諜程式,進而竊取使用者敏感資料,而偽造郵件更加是在釣魚郵件基礎加了上了一層障眼法。
0x01郵件偽造技術
SMTP郵件服務商互相傳送郵件是不需要認證的,郵件偽造是利用這個特性來實現偽造任意發件人。
SMTP郵件傳輸共三個階段:
1.建立SMTP連線
2.資料庫之間傳輸
3.連線關閉
在步驟一中建立SMTP連線也就是通過TCP三次握手進行通訊,郵件偽造實質內容在第二步驟,第二步資料傳輸階段行為可控,所以簡單來說我們郵件偽造主要在第二步。
先來認識SMTP最基礎五條命令:
Helo /Ehlo: 表示與伺服器內處理郵件的程序開始通話"介紹自己"
Mail from:郵件資訊的來源地址,也就是要偽造的地址
Rcpt to:郵件接收者/受害者
Data:郵件的具體內容/可以新增附件等
Quit :退出郵件
瞭解這些知識以後我們可以到伺服器搭建一個SMTP伺服器實驗,環境是Windows2008R2 ,搭建過程很簡單:
1.開啟控制面板-新增功能-SMTP伺服器
一直下一步會自動勾選IIS伺服器,選擇確定。直到安裝完畢,安裝成功在Internet資訊服務中可以看到SMPT服務,SMTP伺服器會預設監聽25埠如圖,如果跟我一樣那麼恭喜安裝成功了。
當然如果你需要一些其他的設定的話可以在屬性值來修改,例如新增域,驗證賬戶密碼等等。
2.SMTP伺服器預設監聽25埠。
3.接下來開始進行一個簡單的通訊。
首先連線上我們的SMTP伺服器,這裡使用Telnet連線
Telnet smtp伺服器 25 埠連線上
輸入:"Helo" 給它打個招呼,成功打上招呼,如下圖所示:
4.下面開始偽造郵件,運用上面5條命令進行郵件偽造欺騙。
Mail from: [email protected]
Rcpt to: [email protected]
Data: “test 666”
Quit: 退出郵件
傳送釣魚如圖使用Telnet,這樣的話就完成了一次郵件偽造,在提示Mail For delivery郵件投遞後,說明釣魚郵件傳送成功。下圖為郵件偽造的內容:
0x02郵件偽造內容檢測
檢查:郵件原文/檢視郵件
若只有 一個 Received ,且列出的 IP 與宣稱的地址不一致,則就是偽造的。
雖然 Received 頭可以偽造,但是新的 Received 頭會新增在訊息的頭部,所以,如果存在偽造的 Received,那麼它總是在後面。其次查詢一下發送過來的域名是否為主機所在IP地址。
另外如果mail_from (實際發件人) 和 from (宣稱的發件人) 不一致,則收到的郵件會顯示 本郵件由<實際發件人>代發, 以提醒收件人兩者的不同。
其郵件資訊偽造排查攻略 引用這一張圖:
0x03 關於防止垃圾郵件的兩種技術
SPF與DKIM技術
SPF是 Sender Policy Framework 的縮寫,一種以IP地址認證電子郵件發件人身份的技術。 接收郵件方會首先檢查域名的SPF記錄,來確定發件人的IP地址是否被包含在SPF記錄裡面,如果在,就認為是一封正確的郵件,否則會認為是一封偽造的郵件進行退回。
SPF可以防止別人偽造你來發郵件,是一個反偽造性郵件的解決方案。當你定義了你域名的SPF記錄之後, 接收郵件方會根據你的SPF記錄來確定連線過來的IP地址是否被包含在SPF記錄裡面,如果在,則認為是一封正確的郵件,否則則認為是一封偽造的郵件。
DKIM
DKIM讓企業可以把加密簽名插入到傳送的電子郵件中,然後把該簽名與域名關聯起來。簽名隨電子郵件一起傳送,而不管是沿著網路上的哪條路徑傳送,電子郵件收件人則可以使用簽名來證實郵件確實來自該企業。