?

Jun 29 2019

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

首頁 » 滲透測試 » 關于電子郵件詐騙的一些分析   

導語:一般來說,我們收到一封郵件之后,都會首先看發件人,如果是比較重要的郵件,我們可能會去看發件人地址,但是,如果發件人是偽造的,你還能知道是誰在給你發郵件么?

0x00 這是個啥?

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

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

1.png

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

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

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存在一個問題,就是沒有對發送方進行一個身份驗證。用下面的圖來說明一下郵件的投遞過程。

2.png

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

發信人與發信網站,例如 [email protected]。其中evi1cg.me就是發信網站,即收信件的MTA。 

收信人與收信網站,例如 [email protected],其中admin就是email.server里的一個賬號。 

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,按照說明文檔很快就可以部署完畢了,部署完畢以后需要添加用戶賬號:

3.png

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

0x03 如何偽造域名?

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

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

在這里可以看到報錯了,Sender address rejected: not owned by user xxx, 這里是postfix設置的問題。需要進行一下修改/etc/postfix/main.cf 找到smtpd_sender_login_maps,修改為:

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

新建/etc/postfix/login_maps.pcre

/^(.*)$/ [email protected]

:意思是允許用戶[email protected]的用戶使用任意domain。

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

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

postmap /etc/postfix/login_maps.pcre
postfix reload

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

5.png

查看gmail:
6.png

7.png

然,在原始郵件里面,還是有自己的域名信息。至于如何盡量減少自己的信息,可以參考這篇文章

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

0x04 如何檢測?

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

8.png

0x05 如何解決?

為了使得域名不會被偽造,需要為域名正確配置SPF、DKIM、DMARC。只配置SPF是不行的,關于SPF的配置可以參考這里,關于DKIM的配置可以看這里,關于DMARC的配置可以參考這里

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

正文部分到此結束

文章標簽: 郵箱偽造

版權聲明:若無特殊注明,本文皆為( mOon )原創,轉載請保留文章出處。

也許喜歡: 如何低成本搭建dnslog服務器»

你腫么看?

你還可以輸入 250/250 個字

? 微笑 大笑 拽 大哭 親親 流汗 噴血 奸笑 囧 不爽 暈 示愛 害羞 吃驚 驚嘆 愛你 嚇死了 呵呵

評論信息框

這篇文章還沒有收到評論,趕緊來搶沙發吧~

?
?
河北11选5开奖