网络嗅探器的实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络嗅探器的实现.doc

网络嗅探器的设计与实现 Design and implementation of network sniffer?   一种在Visual C++下来捕获并分析在网络上传输的数据包的简单方法关键词:网络嗅探器数据包捕获分析 目录 摘要 2 关键词 2 1 网络嗅探概述 4 1.1 网络嗅探的背景 4 1.2 相关的网络知识 4 1.3 嗅探器设计原理 5 1.4 嗅探器的具体实现 9 2 附录(源代码) 13 小 结 16 参考资料 16 网络嗅探概述 1.1 网络嗅探的背景 网络嗅探是指利用计算机的网络接口截获目的地为其它计算机的数据报文的一种手段。 网络嗅探需要用到网络嗅探器,其最早是为网络管理人员配备的工具,有了嗅探器网络管理员可以随时掌握网络的实际情况,查找网络漏洞和检测网络性能,当网络性能急剧下降的时候,可以通过嗅探器分析网络流量,找出网络阻塞的来源。嗅探器也是很多程序人员在编写网络程序时抓包测试的工具,因为我们知道网络程序都是以数据包的形式在网络中进行传输的,因此难免有协议头定义不对的。 网络嗅探的基础是数据捕获,网络嗅探系统是并接在网络中来实现对于数据的捕获的,这种方式和入侵检测系统相同,因此被称为网络嗅探。网络嗅探是网络监控系统的实现基础。 1.2 相关网络知识 我们通常所说的“Packet sniffer”指的是一种插入到计算机网络中的偷听网络通信的设备,就像是电话监控能听到其他人通过电话的交谈一样。与电话电路不同,计算机网络是共享通信通道的。共享意味着计算机能够接收到发送给其他计算机的信息。捕获在网络中传输的数据信息就称为Sniffing(窃听)。以太网是现在应用最广泛的计算机联网方式,它就是一个共享的介质。以太网协议是在同一回路向所有主机发送数据包信息。数据包头包含有目标主机的正确地址。一般情况下只有具有该地址的主机会接受这个数据包。如果一台主机能够接收所有数据包,而不理会数据包头内容,这种方式通常称为“混杂”模式。由于在一个普通的网络环境中,账号和口令信息以明文方式在以太网中传输,一旦入侵者获得其中一台主机的root权限,并将其置于混杂模式以窃听网络数据,从而有可能入侵网络中的所有计算机。计算机能够接收到发送给其他计算机的信息。这就意味着你不必打开配线盒来安装你的偷听设备,你几乎在连接到你的邻居的任何一条连接上对于你的邻居进行监听。这就被称为“混杂模式”的监听。但是这种的“共享”技术很快就被“交换”技术所取代,这样利用混杂模式进行监听已经不可能了,这就意味着你不得不进行实际的接线来实现监听。目前一些交换机的监视端口就提供了这种接听方式。在黑客的手中,嗅探器就变成了一个黑客利器,如利用ARP欺骗手段,很多攻击方式都要涉及到arp欺骗,如会话劫持和ip欺骗。首先要把网络置于混杂模式,再通过欺骗抓包的方式来获取目标主机的pass包,当然得在同一个交换环境下,也就是要先取得目标服务器的同一网段的一台服务器。arp是一种将ip转化成以ip对应的网卡的物理地址的一种协议,或者说ARP协议是一种将ip地址转化成MAC地址的一种协议,它靠维持在内存中保存的一张表来使ip得以在网络上被目标机器应答。ARP就是IP地址与物理之间的转换,当你在传送数据时,IP包里就有源IP地址、源MAC地址、目标IP地址,如果在ARP表中有相对应的MAC地址,那么它就直接访问,反之,它就要广播出去,对方的IP地址和你发出的目标IP地址相同,那么对方就会发一个MAC地址给源主机。而ARP欺骗就在此处开始,侵略者若接听到你发送的IP地址,那么,它就可以仿冒目标主机的IP地址,然后返回自己主机的MAC地址给源主机。因为源主机发送的IP包没有包括目标主机的MAC地址,而ARP表里面又没有目标IP地址和目标MAC地址的对应表。所以,容易产生ARP欺骗。 socket)方式来进行。但是,通常的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取到达的数据包。而网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包即可以是发给它的也可以是发往别处的。显然,要达到此目的就不能再让网卡按通常的正常模式工作,而必须将其设置为混杂模式。 具体到编程实现上,这种对网卡混杂模式的设置是通过原始套接字(raw socket)来实现的,这也有别于通常经常使用的数据流套接字和数据报套接字。在创建了原始套接字后,需要通过setsockopt()函数来设置IP头操作选项,然后再通过bind()函数将原始套接字绑定到本地网卡。为了让原始套接字能接受所有的数据,还需要通过ioctlsocket()来进行

文档评论(0)

wuyouwulu + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档