Windows下DNS ID欺骗的原理与实现 一

Windows下DNS ID欺骗的原理与实现 一 - 网络安全 - 电脑教程网

Windows下DNS ID欺骗的原理与实现 一

日期:2006-11-06   荐:
  本文相关程序 T-DNS 支持对局域网内任意主机发起DNS ID欺骗攻击,使其所访问的任何网站均被指向一个您自定义的WEB服务器,如您自己的个人主页。    域名系统(DNS)是一种用于TCP/IP应用程序的分布式数据库,它提供主机名字和IP地址之间的转换信息。通常,网络用户通过UDP协议和DNS服务器进行通信,而服务器在特定的53端口监听,并返回用户所需的相关信息。一> DNS协议的相关数据结构DNS数据报:typedef strUCt dns{  unsigned short id;  //标识,通过它客户端可以将DNS的请求与应答相匹配;  unsigned short flags;  //标志:[QR opcode AA TC RD RA zero rcode ]  unsigned short quests;  //问题数目;  unsigned short answers;  //资源记录数目;  unsigned short author;  //授权资源记录数目;  unsigned short addition;  //额外资源记录数目;}DNS,*PDNS;在16位的标志中:QR位判断是查询/响应报文,opcode区别查询类型,AA判断是否为授权回答,TC判断是否可截断,RD判断是否期望递归查询,RA判断是否为可用递归,zero必须为0,rcode为返回码字段。DNS查询数据报:typedef struct query{  unsinged char  *name;  //查询的域名,这是一个大小在0到63之间的字符串;  unsigned short type;  //查询类型,大约有20个不同的类型  unsigned short classes;  //查询类,通常是A类既查询IP地址。}QUERY,*PQUERY;DNS响应数据报:typedef struct response{  unsigned short name;  //查询的域名  unsigned short type;  //查询类型  unsigned short classes;  //类型码  unsigned int   ttl;  //生存时间  unsigned short length;  //资源数据长度  unsigned int   addr;  //资源数据}RESPONSE,*PRESPONSE;  二> windows下DNS ID欺骗的原理    我们可以看到,在DNS数据报头部的id(标识)是用来匹配响应和请求数据报的。现在,让我们来看看域名解析的整个过程。客户端首先以特定的标识向DNS服务器发送域名查询数据报,在DNS服务器查询之后以相同的ID号给客户端发送域名响应数据报。这时客户端会将收到的DNS响应数据报的ID和自己发送的查询数据报ID相比较,如果匹配则表明接收到的正是自己等待的数据报,如果不匹配则丢弃之。    假如我们能够伪装DNS服务器提前向客户端发送响应数据报,那么客户端的DNS缓存里域名所对应的IP就是我们自定义的IP了,同时客户端也就被带到了我们希望的网站。条件只有一个,那就是我们发送的ID匹配的DSN响应数据报在DNS服务器发送的响应数据报之前到达客户端。下图清楚的展现了DNS ID欺骗的过程:Client 小结与后记    局域网内的网络安全是一个值得大家关注的问题,往往容易发起各种欺骗攻击,这是局域网自身的属性所决定的--网络共享。本文所讲解的DNS ID欺骗是基于ARP欺骗之上的网络攻击,如果在广域网上,则比较麻烦。不过也有一些例外情况:如果IE中使用代理服务器,欺骗不能进行,因为这时客户端并不会在本地进行域名请求;如果你访问的不是网站主页,而是相关子目录的文件,这样你在自定义的网站上不会找到相关的文件,登陆以失败告终。如果你不幸被欺骗了,先禁用本地连接,然后启用本地连接就可以清除DNS缓存。
[1] [2]  

(出处:http://www.sheup.com)


 [1] [2] 

标签: