用winpcap实现局域网DNS欺骗之二(DNS包的包结构)

原创 2006年05月23日 17:07:00

晕了,刚才写着写着死机了,没保存,郁闷

再写一次

          随便转载,转载请注明出处http://blog.csdn.net/leotangcw/

    欢迎大家和我交流Email:tangchengwen@163.com

现在我们来看看如何构造这个DNS包呢:

      要构造包首先要捕获包,因为包中的一些东西我们在构造的时候是需要用到的。那么如何捕获呢?这要看你的局域网使用的交换机种类,如果是一个HUB,就像我们现在寝室楼层的一样,那我们只要把网卡设置成混杂模式就可以捕获到所有包了,因为HUB只会做包广播。关于在这种情况下捕获,你可以参看我前面的文章一步一步尝试在MFC下开发基于winpcap的数据包捕获和分析软件.(开发总结,建议先看)如果是3层(网络层)交换机的话就麻烦一些因为他是通过IP转发的,数据包只会发送到特定的端口。这样你就需要做ARP+DNS欺骗。下回再说,这回先只讨论前一种情况。

     首先我们来看DNS的包结构,我们知道DNS可以通过TCP也可以通过UDP传输,不过实际使用中99%以上使用UDP所以下面只是对DUP的DNS做阐述。DNS包结构是: 以太网头+IP头+UDP头+DNS部分

从以太网头开始:B代表字节

目的MAC(6B)|源MAC(6B)|0x0800(2B表示上层是IP)

IP头:

协议版本和IP头长度(1B)|服务(1B)|IP包长度(2B,去以太网头的长度)|ID号(2B)|标识(1B)|偏移(1B)|TTL(1B)|0x11(上层协议UDP)|IP校验和(2B)|源IP(4B)|目的IP(4B)

UDP头:

源端口(2B)|目的端口(2B)|UDP包长度(2B,去以太网头和IP头)|UDP校验和(2B)

DNS部分:

ID号(2B很重要)|标识(2B)|问题数目(2B)|回答数目(2B)|权威回答数目(2B)|附加数目(2B)|问题字段(长度不定)|回答字段(长度不定)|权威字段(长度不定)|附加字段(长度不定)

问题和回答,权威,附加都是RR记录格式,格式如下:

名字(2B)|类型(2B)|类(2B)|存活时间(4B)|数据长度(2B)|IP地址(4B)

我们本着越简单越好的做法,构造尽量短的回复,所以回答个数为1,权威和附加都为0

如果是请求包,到问题字段就完了,如果是回答,还有构造回答字段。

下面开始构造伪造包:

    以太网部分:交换源和目的的MAC地址

  IP部分:计算修改包长度为你构造的假包IP部分长度,标识改为0x04(不分段),校验和改为你计算的IP首部校验和,交换源和目的IP

UDP部分:交换源和目的端口号,包长度改为你构造的假包UDP部分长度。校验和可以添0x0000或者自己算(是可选字段,不推荐自己算,首先计算费时间,影响发包速度,其次容易算错,我算了3天,老是错,原来要加一个UDP伪头,参考《TCP/IP祥解》)

DNS部分:问题数0x0001,回答数0x0001,权威0x0000,附加0x0000,问题字段直接拷贝,回答字段如下:名字0xc00c,类和类型都是0x0001,时间添长点,长0x0004,IP:你想转向的IP地址

到这里假的应答就伪造好了。

其他工作请听下回分解。吃饭过后再继续写。

用winpcap实现局域网DNS欺骗之三(代码部分及深入研究)http://blog.csdn.net/leotangcw/archive/2006/05/23/751839.aspx

用winpcap实现局域网DNS欺骗之一(基础知识)

          随便转载,转载请注明出处http://blog.csdn.net/leotangcw/    欢迎大家和我交流Email:tangchengwen@163.com     学校网络...

用winpcap实现局域网DNS欺骗之三(代码部分及深入研究)

      先简要说说代码,这里只有构造DNS回应部分的代码,我还做了网址匹配,也就是说只有别人输入相应的网址才给转向不过出于一些原因就不放上来了。这里的代码只是对所有DNS都转向的代码,你可以自己加...

一分钟快速搭建Windows防污染DNS服务器——Pcap_DNSProxy

Pcap_DNSProxy是一款国人开发的运行与Windows下的DNS服务程序,可以有效防止DNS污染,并且可以缓存DNS结果,设置DNS上游服务器链,区分国内外地址的DNS解析服务器,通过HTTP...

从pcap的DNS流量中分离出隐藏信息

参考: http://blog.csdn.net/u011500307/article/details/2583807589504e470d0a1a打开文件是一个pcap文件,在wireshark里...

pcap输出5元组和DNS记录

http://stackoverflow.com/questions/10207423/code-to-analyze-pcap-file http://www.secdev.org/project...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

WinPcap权威指南(四):UDP与DNS欺骗

上一节介绍了ARP协议之后,群里面有朋友说ARP欺骗不是很简单么?实际上,实现ARP欺骗是很简单的,难点在于数据转发的速度。2004年我们做隔山打牛的时候,曾经去过一家网吧测试,刚开始是开了ARP欺骗...
  • rocklee
  • rocklee
  • 2016年03月30日 17:52
  • 844

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

backtrack5实现局域网DNS欺骗

前言:
  • ibey0nd
  • ibey0nd
  • 2014年06月15日 20:32
  • 2329
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用winpcap实现局域网DNS欺骗之二(DNS包的包结构)
举报原因:
原因补充:

(最多只允许输入30个字)