當前位置:
首頁 > 新聞 > 關於電子郵件詐騙的一些分析

關於電子郵件詐騙的一些分析

0x00 這是個啥?

一般來說,我們收到一封電子郵件後,都會首先看發件人,如果是比較重要的郵件,我們可能會去看一下發件人地址。但是,如果這個郵件的發件人是偽造的,你還能知道到底是誰在給你發郵件么?

當我們在谷歌搜索「發件人偽造」相關內容的時候,可以看到很多很多的網站提供了實現這種功能的方法與思路:

因為筆者並沒有對這些網站的內容進行測試,也不知道這些方法能不能成功偽造,但是可以肯定的是,確實是有方法可以偽造電子郵件的發件人。

那到底是什麼導致的發件人偽造呢?下面我們來分析分析造成發件人偽造的成因。

0x01 SMTP是什麼?

要想了解成因,我們需要首先了解一下什麼是SMTP。

首先先了解一下幾個概念:

MUA:Mail User Agent(用戶郵件代理),用戶通過MUA接收發送郵件,例如Outlook, FoxMail等。

MTA:Mail Transfer Protocol(郵件傳輸代理),是SMTP的一種實現,MTA僅僅負責郵件的傳輸。如果信件的目的地並不是本身的用戶,且該封信的相關數據符合使用MTA的權力,那麼MTA就會將該封信再傳送到下一部主機上。這即是所謂的轉遞的功能。

MDA:Mail Deliver Agent(郵件分發代理),負責將接收到的郵件保存在郵件伺服器上,在這裡可以設置對郵件進行過濾或自動回復。

MRA:Mail Receive Agent(郵件接收代理),用來實現IMAP,POP3協議,負責與MUA交互,將伺服器上的郵件通過IMAP以及POP3傳輸給客戶端。

SMTP全稱是Simple Mail Transfer Protocol,直譯過來就是簡單郵件傳輸協議,主要的工作就是把郵件信息從發件人的郵件伺服器中傳送到接收人的郵件伺服器中,偶爾我們使用MUA來發送郵件的話,也承載傳輸用戶郵件到發件伺服器的功能。但是SMTP存在一個問題,就是沒有對發送方進行一個身份驗證。用下面的圖來說明一下郵件的投遞過程。

1、用戶利用MUA寄信到MTA,這裡面包含了幾個項:

2、當MTA收到信件後,會通過DNS的MX記錄進行查詢,如果email.server是MTA自己,此時MTA就會把郵件交給MDA處理,放置到收信者的信箱中。

3、如果email.server不是自己,那麼這個信件就會被轉送出去。

4、當遠程MTA收到本地MTA轉發的郵件後,會將信件交給它的MDA處理,等待用戶的讀取或下載。

正是由於MTA之間轉發郵件是不需要認證的,所以這就成了可以偽造發件人的原因。

0x02 怎麼搭建SMTP Server?

如何快速搭建自己的SMTP Server?這個網上有很多教程,這裡為了快速搭建,可以選擇使用ewomail,代碼是開源的,搭建起來也比較方便,也有很好的說明文檔。EwoMail是基於postfix和Dovecot,按照說明文檔很快就可以部署完畢了,部署完畢以後需要添加用戶賬號:

之後就可以通過添加的賬號來發送郵件了。

0x03 如何偽造域名?

關於偽造域名有一個很好用的工具SimpleEmailSpoofer,下面我們就使用這個工具來測試一下:

python SimpleEmailSpoofer.py -t 目標郵箱 -f 要偽造的發件人地址 -n From_name -e 郵件內容 -j 郵件主題 -s 你自己的smtp地址 -p 25 --user 你添加的用戶 --pass 你添加用戶的密碼

smtpd_sender_login_maps = mysql:/etc/postfix/mysql/mysql-sender-login-maps.cf,pcre:/etc/postfix/login_maps.pcre

新建/etc/postfix/login_maps.pcre

找到smtpd_recipient_restrictions,刪除reject_unknown_sender_domain,這樣就不會對發送的域進行驗證了。

修改完成以後,執行以下命令:

postmap /etc/postfix/login_maps.pcrepostfix reload

修改完成以後,再次發送:

查看gmail:

當然,在原始郵件裡面,還是有自己的域名信息。至於如何盡量減少自己的信息,可以參考這篇文章(https://major.io/2013/04/14/remove-sensitive-information-from-email-headers-with-postfix/)。

經過測試,如果收信伺服器對SPF校驗不通過的郵件未作處理,仍然可以偽造添加過SPF記錄的域。如QQ郵箱檢查SPF失敗就直接拒絕接收郵件,但是Gmail仍然接收。這裡要注意一點,SPF中如果配置為~all,則表示為接受來信,但是做標記,QQ郵箱里就會接收到此類偽造的郵件,不過會放置於垃圾郵件里。

0x04 如何檢測?

這裡有一個工具可以用來檢測域名是否可以被偽造:spoofcheck,使用很簡單,比如baidu:

0x05 如何解決?

為了使得域名不會被偽造,需要為域名正確配置SPF、DKIM、DMARC。只配置SPF是不行的,關於SPF的配置可以參考這裡(http://blog.51cto.com/10602188/1882947),關於DKIM的配置可以看這裡(https://www.zoho.com.cn/mail/help/adminconsole/dkim-configuration.html),關於DMARC的配置可以參考這裡(https://support.google.com/a/answer/2466563?hl=zh-Hans)。

0x06 參考

1、https://www.jianshu.com/p/610d9bf0ae8b

2、http://lomu.me/post/SPF-DKIM-DMARC-PTR

3、https://serverfault.com/questions/318334/how-to-enforce-sender-address-to-be-logged-in-userexample-org-in-postfix

4、https://major.io/2013/04/14/remove-sensitive-information-from-email-headers-with-postfix/

5、https://realtechtalk.com/Postfix_how_to_secure_outgoing_authenticated_emails_for_privacy_and_hide_the_IP_address_mailer_and_other_things-1573-articles

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

迫於壓力,特斯拉將進一步擴展「漏洞懸賞項目」
由於聯合國配置失誤導致大量敏感數據泄露事件

TAG:嘶吼RoarTalk |