免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345下一页
最近访问板块 发新帖
查看: 8517 | 回复: 40
打印 上一主题 下一主题

[Mail] 匿名(垃圾)邮件的根源[原创] [复制链接]

论坛徽章:
1
金牛座
日期:2014-05-29 15:55:47
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-03-04 13:31 |只看该作者 |倒序浏览
匿名(垃圾)邮件的根源
                                     ——网络上几乎所有服务器都不可避免的“漏洞”
作者:刘宏光(iceblood)
E-Mail:iceblood@163.com
日期:2003-1-19
我的一点思考:大家在看到这篇文章的小标题的时候,或许很多人都知道了这个“漏洞”,而有的人在看文章的过程中,知道这个“漏洞”,也有的人或许会惊诧,因为小标题好像说得太过严重,不过不管看这篇文章的人是什么样的水平,或什么样的心理,我的目的只是把网络上这个缺陷进行一个更细节的介绍,因为我相信,只有大家都看到了这样的“漏洞”,网络才会慢慢的改善,才会有进步。
发送匿名邮件在Internet上已经是一个古老的话题,很多电子邮件服务器的管理员都采取了很多措施来防止匿名邮件的发送,比如:IP漫游记录,SMTP认证等,并且取得了相当不错的效果,但是近日通过我对发送邮件的过程的追踪,尽管有了以上方法能防止一部分人发送匿名邮件,但实际上仍然可以畅通无阻的发送的匿名邮件,这种漏洞到目前为止应该是100%的邮件服务器的通病,并且是无法避免的“漏洞”,这主要是因为现在的SMTP服务的不完善造成的,实际上很多发送垃圾邮件的工具,其原理也就是我在这篇文章里所介绍的原理。目前国内的邮件服务器应该都有这样的漏洞,包括网易、新浪、搜狐等大型网站都无法逃脱,假如这几大网站的管理员看到了这篇文章,有兴趣的话,可以跟着我来测试。
首先我来简单的说一下电子邮件传送的原理,假定自己的邮件服务器的DOMAIN为cdefg.com,要发送一封 test@cdefg.com 的电子邮件,电子邮件的正常的传送都需要靠DNS的MX纪录来查找对应服务器的的IP地址,然后再开始发送邮件,同理cdefg.com邮件服务器会查找 abcd.com 的邮件纪录,然后把邮件发送到 abcd.com所对应的IP地址,假设找到了xxx.xxx.xxx.xxx这个IP,并且xxx.xxx.xxx.xxx有smtp服务,这时服务器会连接到xxx.xxx.xxx.xxx的25号端口(SMTP服务所监听的端口),并且把邮件发送进去。
说到这里或许有很多人等不急了吧?好了,让我开始介绍“漏洞”吧,Internet上的任何服务器都会无条件的接受匿名邮件、垃圾邮件,任何人的电子邮件也都可以被伪造,或许有些人惊诧的想,能伪造所有的?他们是如何做到的?可能也有人说这不是漏洞,只是邮件传输的机制。但这确实能对Internet构成很大的威胁,比如伪造电子邮件,网络上伪造一个人的电子邮件实在太简单,它不象现实中的书信,能看笔迹。而在网络,所有的笔都是键盘,唯一能进行识别的就是数字认证,但在经济还不发达的我国,想要每个人都拥有数字认证,是非常困难的事,所以只有完善SMTP服务才是最好的办法。
网络上是如何实现这个匿名邮件、伪造邮件发送的过程的呢?很简单,我来给大家介绍,比如伪造 webmaster@domain.com 给 username@domainname.com 发送一封电子邮件,首先由于要给 username@domainname.com 发送邮件,所以先找要到这个邮件地址的SMTP服务器,在命令行下使用nslookup这个小工具很快就能查出来,如下:
C:\>;nslookup
Default Server:  ns.hncsptt.net.cn
Address:   202.103.96.68   //开始运行nslookup,并且默认的DNS服务器为该IP地址。
>;set type=mx    //设置显示类型为MX纪录。
>;domainname.com    //查询domainame.com 的MX纪录。
domainname.com    MX preference = 10, mail exchanger = mail.domainname.com
mail.domainname.com     internet address = xxx.xxx.xxx.xxx
>;exit
很快通过上面的命令就查出了domainname.com这个域的STMP服务器地址为xxx.xxx.xxx.xxx
好了,让我们继续,
C:\>;telnet xxx.xxx.xxx.xxx 25
会出现:
220 mail.domainname.com
在这里也可能是别的,因为可能默认域不是domianname.com的域,而且其他的,但不管这些,你只要看到220这个数字就行了。
现在再接着输入命令:
HELO domain.com
返回:
250 mail.domainname.com Hello [x.x.x.x]
这里表示和邮件服务器握手成功,其中x.x.x.x就是你的IP地址。
好了,我们冒充的最关键地方开始了:
MAIL FROM: webmaster@domain.com
250 OK
这里告诉服务器,我们将用 webmaster@domain.com 这个电子邮件来发送这封电子邮件,很可惜任何的SMTP服务器都不会验证这个电子邮件的真实性,所以这里就被服务器给认可了,于是服务器返回250 OK,表示接受,继续等待下面的命令。
RCPT TO: username@domainname.com
250 OK
告诉服务器邮件发送给 username@domainname.com ,但是服务器在这里仅仅只检查domainname.com这个域是不是在自己的转发列表里,由于我们是直接查的dommainname.com这个域的SMTP服务器,所以当然也绝对会在列表了,所以服务器的返回OK,而不会做更多的验证。
DATA
354 Start mail input; end with <CRLF>;.<CRLF>;
这里输入DATA,告诉服务器要开始输入邮件内容了,邮件服务器会返回354信息,以及上面说的邮件以“.”结束。
开始输入邮件内容了,但一般邮件都会有邮件头,为了更真实的伪造邮件,我们可以按下面的输入:
From: webmaster@domain.com    //让Outlook,foxmail等这样的客户端工具显示发送者为 webmaster@domain.com
To:username@domainname.com    //同样让客户端工具显示接收者为 username@domainname.com
Subject: send anonymous mail       //邮件主题
Test                        //邮件内容,这里想怎么写就怎么写了。
.                //最后输入一个“.”结束邮件。
250 send OK
服务器返回250,说邮件发送成功,这时你就成功的冒充 webmaster@domain.com 给 username@domainname.com 发送了一封邮件,不过如果对方看邮件头,能看到你的IP地址,可是很可惜的是90%以上的电子邮件用户根本就不会在乎发送电子邮件的人的IP是什么的,而且更多的人是没有这样的专业知识,所以他们只能凭邮件内容来辨别真伪,可是又有多少人很快的想到他现在看的这封邮件是一封伪造的呢?同样的既然能伪造邮件,自然也就能发送匿名邮件了,因为都是同一个方法。而网络上所使用的那些专门发送匿名邮件,以及广告邮件用的工具软件,所利用的原理基本都是这样。
看到这里大家也都知道了吧,只要你知道谁的电子邮件地址,然后根据邮件地址的域,查出SMTP服务器,就能很快的给他发送一封匿名的电子邮件,或伪造的电子邮件,因为所有的SMTP服务器都不会去验证发送者是真还是假,而服务器对于发送到它自己的用户的所有邮件,也不会做任何的验证,这就是SMTP服务的不完善,而导致了这样一个非常严重的“漏洞”,也正是这个漏洞,使得网络上的垃圾邮件,广告邮件越来越猖狂,可以说是匿名(垃圾)邮件的根源。
声明:利用文章所介绍的技术发送恶意的垃圾邮件、伪造邮件是违法的,文章中发送邮件的内容仅供网络管理员参考使用,请勿做其他用途,否则后果自负!!

论坛徽章:
0
2 [报告]
发表于 2003-03-04 14:27 |只看该作者

匿名(垃圾)邮件的根源[原创]

我试了啊。。。对网易,新浪,21cn,163.net都不行啊。。。但是在我自己的邮件服务器上好使啊。。。。。。完了。。。郁闷了。。。。。

论坛徽章:
0
3 [报告]
发表于 2003-03-04 15:41 |只看该作者

匿名(垃圾)邮件的根源[原创]

那我应该怎么办呢?smtp对本域又没有作用。。。我是菜鸟。。。

论坛徽章:
0
4 [报告]
发表于 2003-03-04 17:35 |只看该作者

匿名(垃圾)邮件的根源[原创]

不过,SMTP这样也并不一定就是坏事,我以前还用你现在说的这个方法验证SMTP是否是正常的。

论坛徽章:
0
5 [报告]
发表于 2003-03-04 19:33 |只看该作者

匿名(垃圾)邮件的根源[原创]

原帖由 "iceblood" 发表:

这里表示和邮件服务器握手成功,其中x.x.x.x就是你的IP地址。
好了,我们冒充的最关键地方开始了:
MAIL FROM: webmaster@domain.com
250 OK
这里告诉服务器,我们将用 webmaster@domain.com 这个电子邮件来发..........


RFC没有要求在“HELO domain.com ”时检查此时的domain.com的ip地址是否client连接服务器的地址,也不会试图对client地址反解来验证client地址是否对应domain.com,有一些补丁可以做这两件事;问题在于,很多smtp server的ip没有反解的,这样很多的信就会被拒绝~哎~~

论坛徽章:
0
6 [报告]
发表于 2003-03-05 05:59 |只看该作者

匿名(垃圾)邮件的根源[原创]

为了增强Sendmail服务器的安全性,禁止用户telnet 到端口25作vrfy ,and expn操作。可以更改sendmail.cf如下:
O PrivacyOptions=authwarnings change to:
O PrivacyOptions=authwarnings,noexpn,novrfy

论坛徽章:
0
7 [报告]
发表于 2003-03-05 16:26 |只看该作者

匿名(垃圾)邮件的根源[原创]

不好意思要打击楼主一下。
楼主在哪里看了最简单的smtp协议的入门的东西,很多概念没清楚,就乱说一气。

匿名发信和垃圾邮件是两回事!

邮件中继和接收匿名邮件也是两回事!
系统管理员要防止的是自己的邮件转发被打开而不是别的。

如果垃圾邮件厂商用自己的邮件服务器发送邮件,那是可以查出的。我们要做的是不要openrelay!

防范垃圾邮件的关键在于立法,其次才是技术。

本文行文象是科普文章,那么只要用一句话就可以了:outlook的帐号设置的常规选项中,用户电子邮件地址是可以随意设置以隐藏用户信息的。

希望本文不要加精,否则会被笑死

论坛徽章:
1
金牛座
日期:2014-05-29 15:55:47
8 [报告]
发表于 2003-03-05 20:39 |只看该作者

匿名(垃圾)邮件的根源[原创]

如果垃圾邮件厂商用自己的邮件服务器发送邮件,那是可以查出的。我们要做的是不要openrelay!


      就这一句话我也不怕打击你一下,我的文章说的是最简单的原理,文章里的有些东西聪明的人,变通一下,可以让整个网络混乱,我也不会把最有危害性的一面直接写出来,而你却还是井底之蛙,单纯得就知道不要openrelay。谁打击谁还不知道呢。

论坛徽章:
0
9 [报告]
发表于 2003-03-06 08:31 |只看该作者

匿名(垃圾)邮件的根源[原创]

RFC就没有一个补救的措施吗?
也学学micro打个补丁也行呀

论坛徽章:
0
10 [报告]
发表于 2003-03-06 10:53 |只看该作者

匿名(垃圾)邮件的根源[原创]

原帖由 "iceblood" 发表:
如果垃圾邮件厂商用自己的邮件服务器发送邮件,那是可以查出的。我们要做的是不要openrelay!


      就这一句话我也不怕打击你一下,我的文章说的是最简单的原理,文章里的有些东西聪明的人,变通一下,可以让?.........


呵呵,楼主生气了。
对于有关smtp的东西,我只能说我阅读过 rfc821和rfc1869,对它有一定了解。
互联网上的知识太多,楼主说我一句井底之蛙,我想也是实话。

但是我对您的帖子的看法还是没有变,它最多只算是科普性的东西。给内行人看太浅;给外行人看又容易误导。

关于垃圾邮件的讨论,已经不是一年两年了。大部分垃圾邮件,你都能找到是谁在做广告,从内容看他们都不是匿名的,而且会留下详细的联系方法。立法是第一要素已经是公认的原则。技术只是追查来源,确认证据。

所以在我们这个专业论坛里,我还是建议取消精华。如此而已。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP