zhaa778899 发表于 2007-1-21 00:01 只看TA 1楼 |
---|
|
[交流] DNS欺骗 本文仅用于研究目的!与此相关所产生的一切作者概不负责!【摘要】 DNS欺骗可以用来上BBS隐藏ip,但其作用远远不止这些。 【简述】 熟悉网络的人都知道,当客户向一台服务器请求服务时,服务器方一般会 根据客户的ip反向解析出该ip对应的域名。这种反向域名解析就是一个查DNS (Domain Name Service)的过程。 如果客户的ip对应有域名,那么DNS查询会返回其域名。服务器端得到这 一机器名后会将其记录下来并传递给应用程序,于是我们可以看到有人上bbs 来自argo.zsu.edu.cn,其实她来自202.116.64.6——“逸 仙 时 空” BBS。 细心的人会发现BBS上显示ip的栏是有长度局限的,因此若客户机的域名足够 长便可隐藏住自己机器名,如parallelcomput其实是parallelcomputing.xx. xxx.xxx.xx。这便是隐藏ip的方法之一,此法要和网管比较熟或者咱自己就 是DNS网管。;) 但是您和网管熟吗?反正偶不熟。:( 让我们换个思路:如果服务器在进行DNS查询时能够人为地给它我们自己 的应答信息结果会怎样呢?答案显然不用我说了,这就是著名的DNS欺骗(dns spoofing)。说实话,DNS欺骗威力巨大,把它用来在BBS上隐藏ip实在是杀 鸡用牛刀。 ![]() 【详述】 现有的大多数DNS服务实现存在两个比较“好”的性质。 其一为当DNS服务器收到一合法的DNS应答信息时它会接受这一返回包中的 所有信息,并存入CACHE。举一个例子:在10.10.1.2的用户要TELNET到100.100 .100.100上,100.100.100.100使用的DNS为100.100.100.200。三次握手后100. 100.100.100会向100.100.100.200发一PTR类型的DNS查询(由IP查主机名): 100.100.100.100 -> 100.100.100.200 [Query] NQY: 1 NAN: 0 NNS: 0 NAD: 0 QY: 2.1.10.10.in-addr.arpa PTR 而100.100.100.200并没有关于用户IP对应域的信息。它首先根据DNS协议 极其配置查找出10.10.1.2的授权DNS服务器——10.10.1.5。然后向其发出查 询包: 100.100.100.200 -> 10.10.1.5 [Query] NQY: 1 NAN: 0 NNS: 0 NAD: 0 QY: 2.1.10.10.in-addr.arpa PTR 这里隐蔽了iterative与recursive两种方式的区别,一般的DNS设置为 iterative,recursive为可选。详见rfc1034。 10.10.1.5收到该查询信息后便可返回10.10.1.2对应的域名: 10.10.1.5 -> 100.100.100.200 [Answer] NQY: 1 NAN: 2 NNS: 1 NAD: 1 QY: 2.1.10.10.in-addr.arpa PTR AN: 2.1.10.10.in-addr.arpa PTR client.host.com AN: client.host.com A 10.10.1.2 NS: 1.10.10.in-addr.arpa NS ns.host.com AD: ns.host.com A 10.10.1.5 返回的包中给出了10.10.1.2对应的域名为client.host.com,并指出 client.host.com对应的IP为10.10.1.2(请注意这两个对应的是不同的概念!) 。如果这个返回包能由我们给出,岂不是爽呆了! 那么怎么做呢?可以控制住你的DNS,然后你想设成什么就是什么。但是 太暴力了,偶不推荐这种方式 ![]() 服务器,那么可以通过监听、响应的方法实现DNS欺骗。 即先sniff传到局域网来的DNS查询包,然后代替本网段的DNS服务器给出 应答信息(罗嗦了这么多,这里最重要,呵呵)。 但是本网段的DNS服务器也会同时给出应答信息,这样我们构造的包与它 的包会有冲突,通常是我们的慢:(这样的DNS欺骗是不成功的。 为了获得稳定的DNS欺骗的效果,这就涉及到第二个DNS实现的“好”的 性质: 当DNS服务器发查询包时,它在包内有一query id,应答信息只有query id及ip都对上时才能为服务器所接受。而这一id每次加一,所以可以通过第 一次向要欺骗的DNS SERVER发一个查询并监听到该id值,随后再发一查询,紧 接着马上send我们构造好的应答包,包内的query id为预测的query id值(可 以指定一个范围,比如从previous_id+1到previous_id+100)。 接上例,如10.10.1.2的用户要欺骗100.100.100.100,他可以对100.100. 100.200进行欺骗: 11.11.11.11 -> 100.100.100.200 [Query] NQY: 1 NAN: 0 NNS: 0 NAD: 0 QY: 12345.host.com A 由于host.com的域名由10.10.1.5控制,100.100.100.200向10.10.1.5发 查询包: 100.100.100.200 -> 10.10.1.5 [Query] NQY: 1 NAN: 0 NNS: 0 NAD: 0 QID: 2345 QY: 12345.host.com A 10.10.1.2的用户可以监听到给包,得到QID: 2345。然后再向100.100. 100.200发第二次查询: 11.11.11.11 -> 100.100.100.200 [Query] NQY: 1 NAN: 0 NNS: 0 NAD: 0 QY: 67890.host.com A 紧接着发带预测QID的应答包: 10.10.1.5 -> 100.100.100.200 [Answer] NQY: 1 NAN: 0 NNS: 0 NAD: 0 QID: 2346 QY: 2.1.10.10.in-addr.arpa PTR AN: 2.1.10.10.in-addr.arpa PTR you.want.name you.want.name就是用户自己指定的域名。注意发这个包时应该用10.10. 1.5这一IP地址。 大功告成!##$##^ 【后记】 如果您对DNS不熟甚至根本不知其为何物那么请您先参考有关DNS的文档, 我建议有时间读一读rfc1304、rfc1305。 恳请您不要用它来对国内一些脆弱站点进行恶意攻击。作者使用的源码暂 不公开。如果着急可以去ROOTSHELL下载snoof;)。 |
0 |
|
---|
作者的其他主题 |
---|
DNS欺骗 |
代理服务器(Proxy)完全解析 |
浮想连篇 |
变态msn名字大集合 |
该用户匿名发帖 发表于 2007-1-21 02:03 只看TA 2楼 |
---|
这行为本身就是常说的Man In the Middle网络攻击。这和网游里存在的外挂是一个理论:截取package, 修改其中的header信息,发送。这类攻击作为非常好探测的一种网络hack行为,网管根本不会错过。认真去搜索一下的话,很多网管工具都带有自动侦测此类行为的功能。 大家就不要尝试了。 如果楼主的意思就是让人家不知道你在哪里,完全没必要费这么大劲,冒着极大风险来干这个。不就是隐藏个IP么。去Google查一下匿名网络浏览器,或者去找超级匿名代理服务器,都可以轻松实现。 唉~~~~~~ [ 本帖最后由 liuay002 于 2007-1-21 02:09 AM 编辑 ] |
0 |