昨天Mantasano上的一篇文章描述了Dan Kaminsky的DNS域名服务器攻击的细节。该文章发表了几分钟之后即被删掉了。
虽然Dan Kaminsky已经联合厂商发布了补丁,但是仍处于补丁推送阶段,目前仍有相当一部分域名服务器还没有打补丁。如果被恶意利用的话,对整个互联网还是很有威胁的。这也是为什么Dan 希望 “not speculate publicly”。
大概看了一下那篇hypothesis,基本上还是利用了”Cache 投毒”(cache poisoning)的方法,不过使用了一些新的技巧。
DNS查询是如何进行的?对于绝大多数桌面系统来说,DNS的查询并不是由自己的机器完成的,DNS查询会提交给另一台DNS服务器(这台服务器通常是由 ISP或者公司提供),然后这台服务器再去进行真正的查询操作。这样做的好处是DNS的查询结果可以由这台机器给缓存下来,从而提高查询效率并降低由 DNS带来的流量开销。
一台缓存DNS服务器(与权威DNS相对,这类系统提供的)下面的桌面系统可能有几百、几千、几万甚至几十万台桌面系统。
DNS缓存中毒攻击指的是更改了DNS服务器的DNS缓存中某项,这样缓存中与主机名相关的IP地址就不再指向正确的位置。例如,如果 www.example.com映射到IP地址192.168.0.1且DNS服务器的缓存中存在这个映射,则成功向这个服务器的DNS缓存投毒的攻击者就可以将www.example.com映射到10.0.0.1。在这种情况下,试图访问www.example.com的用户就可能与错误的Web服务器联络。
当攻击者试图请求查询某站点的域名时,DNS服务器首先会检查自己的DNS缓存中是否存在该域名,如果存在则将该域名所对应的IP地址返回给请求者,如果不存在则向上一级DNS或者权威DNS查询。这就会给攻击者带来一定的困难,如果是大一点的站点的话,攻击者发起DNS查询时,DNS服务器直接从缓存应答了,根本不会去请求权威域名服务器。怎么才能解决这个问题呢?云舒在他的DNS缓存中毒漏洞的一点推测中也提到过。
比如我们要攻击www.google.com.首先向目的DNS服务器查询根本不存在的二级域名,比如:aaa.google.com. DNS服务器在缓存中查找aaa.google.com,没有找到,则会向上级DNS或者权威DNS查询 。这时我们可以生成伪造的DNS Response数据包并发送这些的伪造DNS Response数据包给目的服务器。让目的DNS在上级DNS或者权威DNS服务器响应到达之前,接受到恶意的应答。
从表面上看这样只是截持了一个不存在的二级域名,只能用来钓钓鱼罢了。
其实DNS Response数据包可以不仅仅包含aaa.google.com的IP地址,还可以在DNS 数据包的Additional resource record中包含www.google.com的IP地址(当然该IP地址可以是伪造的)。当目的DNS收到该数据报时会将伪造的IP地址与 www.google.com关联起来并刷新到缓存上。这样就完成了主域名的截持。
DNS缓存投毒细节泄露
通过emule做DDOS是否可行?
by 云舒
今天抽空看了下emule协议几个可能会出问题的地方,初步感觉是可能真的有问题。下了代码回来看了,不过代码太大,目前还没找到地方,没法对想法进行印证。我简单的说下,看哪位代码牛人能够在项目中找到对应的代码。
首先是在客户端连接到服务器之后,搜索文件时,服务器返回结果的报文。报文中返回的结果是一个集合,每个集合表示一条记录。但是每条记录中,并不包含拥有该文件的客户端的IP地址,而是返回的拥有该文件的客户端的ClientID和端口。这里我猜测ClientID的计算是可逆的,搜索发起者可以根据这个 ClientID计算出IP地址,然后连接,请求下载文件。具体报文结构如下:
| 名称 | 大小(字节) | 默认值 | 注释 |
| 协议类型 | 1 | 0xE3 | |
| 大小 | 4 | 不包含报文和大小域的报文大小 | |
| 类型 | 1 | 0×16 | 操作码 OP SEARCHRESULT 的值 |
| 结果数 | 4 | N/A | 此报文中包含的结果数目 |
| 结果列表 | 可变 | N/A | 一个结果的列表 |
搜索结果列表项格式:
| 名称 | 大小(字节) | 默认值 | 注释 |
| 文件HASH | 16 | N/A | 用于识别文件的 Hash 值 |
| 客户端 ID | 4 | N/A | eMule服务器分配给客户端的ID |
| 客户端端口 | 2 | N/A | 客户端的监听的TCP端口 |
| 标志数 | 4 | N/A | 其后的属性标志个数 |
| 标志列表 | 可变 | N/A | 标志列表 |
其次的第二个地方是下载文件的地方,客户端要求下载一个文件时,服务器会返回一个源查找结果报文。该报文也是只包含源的ClientID和端口,客户端应该是按照ClientID计算出IP地址,再去连接下载文件的。具体报文如下:
| 名称 | 大小(字节) | 默认值 | 注释 |
| 协议类型 | 1 | 0xE3 | |
| 大小 | 4 | N/A | 不包含报文头和大小域的报文大小 |
| 类型 | 1 | 0×42 | 操作码 OP FOUNDSOURCES 的值 |
| 文件HASH | 16 | N/A | 相关文件的 Hash 值 |
| 源数量 | 1 | N/A | 拥有该文件的机器的数量 |
| 源列表 | 可变 | N/A | 源列表内容,每一条是一个可用源 |
每一条源的报文格式如下:
| 名称 | 大小(字节) | 默认值 | 注释 |
| 客户端 ID | 4 | N/A | 共享该文件的客户端的 ID |
| 客户端端口 | 2 | N/A | 共享该文件的客户端端口 |
可以看到,搜索某个文件时,服务器返回的搜索列表中按照ClientID来区分不同的其它客户端。在开始下载一个文件时,服务器返回的可用源列表中,每个源也是以一个ClientID来表示的。也就是说,没一个ClientID就可以确定一个源,区分开彼此。而emule可以根据这个ClientID找到对应的客户端,去连接指定端口,请求文件。那么,现在的问题是这个ClientID是哪里来的?
原来这个ClientID在正常情况下,是我们连接到emule服务器时,服务器分配给我们的。但是注意到,在连接之后,我们可以像服务器提供我们所拥有的文件列表,报文格式如下:
| 名称 | 大小(字节) | 默认值 | 注释 |
| 协议类型 | 1 | 0xE3 | |
| 大小 | 4 | 不包含报文和大小域的报文大小 | |
| 类型 | 1 | 0×15 | 操作码 OP SEARCHRESULT 的值 |
| 文件数 | 4 | N/A | 共享列表中的文件数,这个数不超过 200 |
| 文件列表 | 可变 | N/A | 可选的文件列表,单个项的描述见下 |
单个文件条目描述我就不细写了,比较有用的字段是文件Hash码,ClientID,以及端口。这样看来,我们在连接到服务器之后,告诉它baidu的IP地址,TCP80端口,有赤壁下载,或者有XXX片下载,别人下载的时候,emule客户端会不会从服务器返回的可用源列表中,找到这条记录,并且去连接?
关键问题到了ClientID的计算,协议中这样描述的:假设 IP 地址为 X.Y.Z.W,则客户端 ID 按公式 X+28*Y+216*Z+24*W (Big Endian[6])计算。如果想法是正确的,那么我们可以先计算出百度的IP地址的ClientID,端口设置为80,然后通知服务器,这个 ClientID有高树的片子可以看……
无题
老师经常表扬我,写作文有条理,恩!
1、那天在公交车上突然觉得中小学关于”这篇文章的中心思想是”之类的培养是必要的。因为一位童鞋讲”贫民窟的百万富翁”是关于挣钱不容易的电影。另一位童鞋指出了论据是电影结束时哥哥安息在了撒满钱的浴缸里。当然这样一个观察电影视角也是很独特的,相当独特。
2、推荐一部电影《巴黎,我爱你》,貌似是06的片子。谈不上感人,十个左右的小故事,一个故事十分钟左右,两个小时左右,我每天睡觉看一点,看了三天…
3、哪位懂joone或jgap的,咪我。
Getting Started With JGAP
To use JGAP in an application, there are five basic things that you must do:
Through the course of this tutorial, we’ll build a simple example program that makes use of JGAP. The goal of our program will be to produce a user-specified amount of change in the fewest possible American coins (quarters, dimes, nickels, and pennies).
Windows XP的无线桥接
目前大部分的笔记本都是有两块网卡,一块是普通网卡,一块是无线网卡。一般有网口的地方会用普通网卡,通过网线连接上网,以获得较好的性能,没有网口的地方,会用无线上网。通常情况下,即使在同一个局域网里面,如果手工配置IP地址,必须为这两个不同的链接配置不同的IP地址,因为windows不允许为两个不同的适配器配置相同的IP地址。在特殊情况下,例如,使用电驴并在路由器上做了端口映射,于是需要在两种情况下都使用相同的IP地址,又不想每次都重新手工配置,这个时候可以用Windows自带的桥接模式来解决这个问题。
(全文…)
我欣赏你的思路(X)
数学女教师提问心不在焉的彼得。
女教师:”有三只鸟在电线上,你用汽枪打下其中一只,那电线上还有几只?”
彼得:”一只都不剩。”
女教师:”为什么?”
彼得:”因为另两只受到枪声惊吓飞走了。”
女教师:”从数学上来讲,应该还剩两只。不过我很喜欢你的思路。”
彼得:”老师,我有一个问题想请教您。有三位女人在公园里各买了一根冰棒,有一位舔
着吃,一位咬着吃,还有一位含着吃,您认为哪一位是已经结婚的?”
女教师想了想,红着脸嗫嚅道:”我想应该是含着吃的那位。”
彼得得意地说:”不对,是带着结婚戒指的那位。不过我很喜欢您的思路。”
中国四大=大逃杀
当一个片子充满了绝望、暴力和血腥,并且让40多条鲜活的生命在2个小时内一个一个地自相残杀给你看,会是什么样的感觉?
(四大每年招人,从100,200,300,到现在400甚至更多…宣讲会上HR、老板都是说某某10年做了P,某某怎么怎么Fast Promote,只不过老板们没告诉你们,在今后的十年内,你们这些人中最多只有一两个人能活着成为百万年薪的胜利者,这就是整个游戏的过程)Pe
日本中学一个班级的42名学生,乘坐大巴参加毕业旅行,突然集体晕倒,醒来后发现身处孤岛,全体被逼参加BR(Battle Royale)法案,就是说他们必须在3天之内互相残杀,直至剩下最后一个人才可以活下去。 (全文…)
无题系列
适逢有缘,入女生宿处,偶遇两女。其一曰有异类,其二曰,乃一修缮者也。二女由远极近渐远。忽大吼”强电危险”。遂庐山瀑布汗,青筋跳起,欲逐之,后弃,长叹一声,猪也,(恐)龙猪不可雕也。同行友人曰:吾乃挨踢民工是也。三人仰天而笑。
大不折腾及港澳台联合王国
西游记不是奇文,这才是
唐僧为什么要屡次赶走孙行者,这个问题被不同的人讨论过很多次,通常的观点无非是围
绕以下方面来说的:行者自小顽劣,惹是生非,虽然被压五行山下五百年,但是其内心深
处的躁动还是不能被压制住,屡次轻慢佛法,妄杀生灵,而唐僧内心深处又是一个软弱而
且嫉妒的人,行者的行为某种程度上是在刺激他的神经,因此唐僧以佛门的清规戒借口,
屡次赶走行者。
(全文…)



Recent Comments
@评论开启
@今天过生日
@国猪
@今天过生日
@今天过生日