⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dns spoofing 兼谈ip隐藏.txt

📁 当今
💻 TXT
字号:
发信人: aeroboy (为人民服务), 信区: security 

标  题: DNS SPOOFING 兼谈IP隐藏 

发信站: 北大 (Tue Mar 28 23:32:55 2000), 转信 

  

作者:bibble 

  【简述】 

   

  熟悉网络的人都知道,当客户向一台服务器请求服务时,服务器方一 

般会根据客户的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 服务器,那么可以通过监听、响应的方法实现DNS欺骗。 

   

  即先sniff传到局域网来的DNS查询包,然后代替本网段的DNS服务器给 

出应答信息(罗嗦了这么多,这里最重要,呵呵)。 

   

  但是本网段的DNS服务器也会同时给出应答信息,这样我们构造的包与 

它的包会有冲突,通常是我们的慢:(。这样的DNS欺骗是不成功的。 

   

  为了获得稳定的DNS欺骗的效果,这就涉及到DNS实现的第二个“好” 

的性质: 

   

  当DNS服务器发查询包时,它在包内设有一query id,answer只有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地址,且query id为2346=2345+1。 

   

  大功告成!##$##^ 

   

  

-- 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -