您的位置:首页 > 其它

邮件那些事4—浅析伪造发信人的原理与识别

2015-10-21 16:50 309 查看
如果你接受到一封银行的邮件让你点击文档进行查账单、如果你接受工资条的文档,老板说给你涨工资了让你查看工资条~那么你极有可能收到了伪造发件人的假邮件!!

根据SMTP协议的规范,隐藏着一个安全漏洞,那就是,收信人是可以伪造的。在没有详细说明伪造过程之前我们先从如何通过命令行发送邮件说起。

通常我们多数人通过网页登陆邮箱,或者通过邮件客户端来发送和接受邮件,那么有了这些封装工具,更难让我们接触邮件发送的真实过程。那么我们先来使用CMD命令行发送一封邮件.

发送过程:

在命令行窗口输入 telnet smtp.163.com 25(也可以等其他邮件,具体邮件服务器地址到邮件客户端查询)

Helo *** (随意)

auth login

输入通过base64加密过的用户名和密码(用户名不加@以及后面的字符)这是协议规定

输入邮箱的发件人和收件人按如下格式:

mail from : <zhangsan@163.com>

rcpt to :
lisi@qq.com

当服务器返回正确时,进行输入

data回车

服务器提示,输入以英文句号.回车的字符串时回车,开始发送邮件。

此处注意:此处可以填写可选项

输入 from:发件人名称 ,此项可任意填入,将显示在收件箱的‘发件人’一栏
输入 to:收件人名称 ,可任意填入,将显示在收件箱的‘收件人’一栏
输入 subject:信件主题 ,显示在收件箱的‘主题’一栏中
此处的from,填写什么收件人就显示什么,所以此处为伪造发件人的关键环节。

最后邮件发送出去!

具体可参见:http://blog.sina.com.cn/s/blog_6dbfc2a901014yqx.html

由于笔者随机填写字符串应该为服务器识别为垃圾邮件,所以并未发送成功。另外经过笔者多次尝试设置mail from的发件人地址为其他地址时,服务器均显示错误,不能执行,这一点和其他研究人员所述问题有点冲突,其他研究人员认为mail from也是伪造发件人地址的可用环节:http://blog.csdn.net/jackywangjia/article/details/7872406

整个环节的批处理过程如下:

telnet smtp.163.com 25

helo 163.com

auth login

******MDY3Mw==

******lhbmc=

mail from : <######@163.com>

rcpt to : <#########@antiy.com>

data

from: seak@qq.com

to: #####@qq.com

subject:weishaslajiyoujian,pingsha a!

you ara my good! ni shuo ni s s jiushia,weish.

下面开始测试伪造发件人的实例:

实例测试

将可选项from
字段填写成seak@QQ.com时,笔者邮件确实发生了一份发件人为seak@QQ.com的邮件







但是该邮件并没有发生成功,应该是由QQ服务器发现有伪造行为而拒绝接受。

但是可以看到发件人确实变成了seak@QQ.com,而如今邮件服务器安全性能的提升,在伪造发件人后面填写有真实的发件人代收,代收的地址才是真实的发件人,用户注意了如果收到类似邮件,请果断删除邮件,将真是邮件发送者拉入黑名单。

邮件头解析如下:



通过如上实例可以证实,伪造发件人的情况确实可以实行,而具体为什么能致使该漏洞的产生是邮件协议历史遗漏问题。那么既然能伪造发件人,那么怎么识别呢?

识别伪造发件人

还记得上篇讲解的邮件解析吧,邮件既然能通过伪造from而伪造发件人,那么当伪造完发件人后传输至服务器时,服务器添加的Received是不能由发件人控制的,所以我们要想识别是否伪造了发件人,那么我们就从Received入手,以下讲解几种伪造情况和例外情况

1 简单的伪造

并没有多余添加Received选项,仅仅伪造了发件人



例如如上截图所示发件人的邮件地址Barclays.co.uk是一个国外一个私人银行,通常如果是银行给您发信息因为涉及个人财产隐私问题,你就要多注意看看发件人是否被伪造了。截图所示邮件,邮件的发件人是国外的银行,那么通过第一个邮件发送系统接收邮件而添加的Received字段可以看出,有个IP地址,通过IP地址的归属地查看,我们发现了该IP来自国内北京。所以我们可以推测该邮件是伪造是发件人的,原因很简单IP是不符合的。通常这样简单的伪造我们可以通过这个方法来识别。

2、添加Received的伪造。

有些恶意代码作者,会添加多余的Received来迷惑分析人员。这种方式不是很常见,但是依然可以通过真实的Received来识别。但是不要被中继所误导,有些邮件中继也会出现多个Received。借用其他博主的例子



例如如上有两个Received字段,但这个unwilling.intermedia.com是个中继传输。具体如何辨别哪些是中继的哪些是多添加的,看:Message-Id字段

例如上述例子,Message-Id字段是中继添加的<w45qxz23-34ls5@unwilling.intermedia.com>
。而正常的是发送者添加的!所以说如果Message-Id是发送者添加的,并且有多余的嫌疑Received字段。那么这个邮件就有问题了

注:笔者也是现学现卖,如有不正确之处,敬请大神校正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: