作者:
瞌睡龍
·
2013/08/29 20:20
0x00 背景
郵箱偽造技術,可被用來做釣魚攻擊。
即偽造管理員或者IT運維部等郵箱發郵件,獲取信任使對方開啟附帶的木馬檔案或者回復想要獲取的敏感資料等。
0x01 細節
SMTP協議中,允許發件人偽造絕大多數的發件人特徵資訊。
這就導致了可以偽造別人傳送郵件。
來看一下烏雲上的案例:
WooYun: ifeng exchange偽造源地址漏洞
WooYun: 騰訊郵箱伺服器允許源地址欺騙漏洞
WooYun: qq郵箱偽造發件地址,容易被釣魚利用
網上還有個網站比較方便直接傳送偽造郵件的:
http://emkei.cz/
0x02 防禦
為了防止郵箱偽造,就出現了SPF。
SPF(或是Sender ID)是Sender Policy Framework的縮寫。
當你定義了你域名的SPF記錄後,接收郵件方會根據你的SPF記錄來判斷連線過來的IP地址是否被包含在SPF記錄裡面,如果在,則認為是一封正確的郵件,否則則認為是一封偽造的郵件。現在絕大部份反垃圾郵件系統都支援SPF過濾,這種過濾一般不會有誤判,除非是郵件系統管理員自己把SPF記錄配置錯誤或遺漏.
至於domain key則是由Yahoo所提出的。必需配合軟體和加密技術,比較麻煩。目前使用的也不多。 Google目前所謂的支援domainkey也只是在寄信的時候加入,免得被yahoo退信,本身並沒有要求寄件者要有domainkey。
正確設定後郵件頭一般顯示如下:
Received-SPF: pass (google.com: domain of [email protected]_domain.com designates 72.47.192.112 as permitted sender) client-ip=72.47.192.112;
Authentication-Results: mx.google.com; spf=pass (google.com: domain of [email protected]_domain.com designates 72.47.192.112 as permitted sender) [email protected]_domain.com
關於SPF是否有設定的必要?一般認為有加上SPF比較好,怕萬一碰到哪個收件伺服器有采用SenderID機制來過濾信件的話就有用處了。
如何增加SPF記錄,非常簡單,在DNS裡面新增TXT記錄即可,可以使用下面兩個SPF生成檢查工具:
http://www.microsoft.com/mscorp/safety/content/technologies/senderid/wizard/default.aspx
http://old.openspf.org/wizard.html
a 你域名的A記錄,一般選擇yes,因為他有可能發出郵件,比如我上面提到的Wordpress的回信。
mx 一般也是yes,MX伺服器會有退信等。
ptr 選擇no,官方建議的。
inlude 如果有可能透過一個isp來發信,isp有自己的SPF記錄,則填入這個isp的域名。比如你使用Google Apps,應該增加include:google.com記錄,因為你的郵件時從Google伺服器發出去的。
ip4: 你還有沒有其他的ip發信?可能你的smtp伺服器是獨立出來的,那麼就填入你的IP地址或者網段。
~all: 意思是除了上面的,其他的都不認可。當然是yes了。
檢視SPF記錄的方法
Windows下進入DOS模式後用以下命令
nslookup -type=txt 域名
Unix作業系統下用:
# dig -t txt 域名
本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!