ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:22.46KB ,
资源ID:24588465      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24588465.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(网络嗅探器的设计与实现.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

网络嗅探器的设计与实现.docx

1、网络嗅探器的设计与实现文献综述题 目 网络嗅探器的设计与实现 院、系(部) 计算机科学与技术学院 专业及班级 计 科0901 班 姓 名 陈 宁 日 期 2012年4月 网络嗅探器的设计与实现前言随着网络发展的不断延续,网络应用日益复杂,以满足人们对信息的大量需求,但伴随而来的是,大量网络故障及网络病毒冲击着网络与终端用户,因此对于网络安全管理与网络日常的要求日益加重。嗅探器有着至关重要的作用。嗅探器,可以理解为一个安装在计算机上的窃听设备它可以用来窃听计算机在网络上所产生的众多的信息。嗅探器是利用计算机网络接口截获所需网络内部数据报文的一种工具,它广泛地应用于流量分析、安全监控的实现中。正文

2、1) 什么是网络嗅探器网络嗅探器又称为网络监听器,简称为Sniffer子系统,放置于网络节点处,对网络中的数据帧进行捕获的一种被动监听手段,是一种常用的收集有用数据的方法,这些数据可以是用户的账号和密码,可以是一些商用机密数据等等。网络嗅探器是利用计算机的网络接口截获目的地为其他计算机的数据报文的一种工具。网络嗅探器的正当用处主要是分析网络的流量,以便找出所关心的网络中潜在的问题。例如,假设网络的某一段运行得不是很好,报文的发送比较慢,而我们又不知道问题出在什么地方,此时就可以用嗅探器截获网络中的数据包,分析问题的所在。而嗅探器也可作为攻击工具被黑客所利用为其发动进一步的攻击提供有价值的信息。

3、2) 网络嗅探器的作用嗅探器是网络的抓包工具,可以对网络中大量数据抓取,从而方便使用者对网络中用户的一些信息进行分析,所以,通常被黑客运用于网络攻击。我们如果也能掌握网络嗅探器的原理和设计,可以将它运用与网络故障检测、网络状况的监视,还可以加强企业信息安全防护。3) 网络嗅探器的原理 嗅探器作为一种网络通讯程序,也是通过对网卡的编程来实现网络通讯的,对网卡的编程也是使用通常的套接字(socket)方式来进行。但是,通常的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不

4、引起响应,也就是说应用程序无法收取到达的数据包。而网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包即可以是发给它的也可以是发往别处的。显然,要达到此目的就不能再让网卡按通常的正常模式工作,而必须将其设置为混杂模式。具体到编程实现上,这种对网卡混杂模式的设置是通过原始套接字(raw socket)来实现的,这也有别于通常经常使用的数据流套接字和数据报套接字。在创建了原始套接字后,需要通过setsockopt()函数来设置IP头操作选项,然后再通过bind()函数将原始套接字绑定到本地网卡。为了让原始套接字能接受所有的数据,还需要通过ioctlsocket()来进行设置,而且还可以

5、指定是否亲自处理IP头。至此,实际就可以开始对网络数据包进行嗅探了,对数据包的获取仍象流式套接字或数据报套接字那样通过recv()函数来完成。但是与其他两种套接字不同的是,原始套接字此时捕获到的数据包并不仅仅是单纯的数据信息,而是包含有 IP头、 TCP头等信息头的最原始的数据信息,这些信息保留了它在网络传输时的原貌。通过对这些在低层传输的原始信息的分析可以得到有关网络的一些信息。由于这些数据经过了网络层和传输层的打包,因此需要根据其附加的帧头对数据包进行分析。下面先给出结构.数据包的总体结构:数据包IP头 TCP头(或其他信息头) 数据数据在从应用层到达传输层时,将添加TCP数据段头,或是U

6、DP数据段头。其中UDP数据段头比较简单,由一个8字节的头和数据部分组成,具体格式如下:16位 16位源端口 目的端口UDP长度 UDP校验和而TCP数据头则比较复杂,以20个固定字节开始,在固定头后面还可以有一些长度不固定的可选项,下面给出TCP数据段头的格式组成:16位 16位源端口 目的端口顺序号确认号TCP头长 (保留)7位 URG ACK PSH RST SYN FIN 窗口大小校验和 紧急指针可选项(0或更多的32位字)数据(可选项)对于此TCP数据段头的分析在编程实现中可通过数据结构_TCP来定义:typedef struct _TCP WORD SrcPort; / 源端口WO

7、RD DstPort; / 目的端口DWORD SeqNum; / 顺序号DWORD AckNum; / 确认号BYTE DataOff; / TCP头长BYTE Flags; / 标志(URG、ACK等)WORD Window; / 窗口大小WORD Chksum; / 校验和WORD UrgPtr; / 紧急指针 TCP;typedef TCP *LPTCP;typedef TCP UNALIGNED * ULPTCP;在网络层,还要给TCP数据包添加一个IP数据段头以组成IP数据报。IP数据头以大端点机次序传送,从左到右,版本字段的高位字节先传输(SPARC是大端点机;Pentium是小

8、端点机)。如果是小端点机,就要在发送和接收时先行转换然后才能进行传输。IP数据段头格式如下:16位 16位版本 IHL 服务类型 总长标识 标志 分段偏移生命期 协议 头校验和源地址目的地址选项(0或更多)同样,在实际编程中也需要通过一个数据结构来表示此IP数据段头,下面给出此数据结构的定义:typedef struct _IPunion BYTE Version; / 版本BYTE HdrLen; / IHL;BYTE ServiceType; / 服务类型WORD TotalLen; / 总长WORD ID; / 标识union WORD Flags; / 标志WORD FragOff;

9、/ 分段偏移;BYTE TimeToLive; / 生命期BYTE Protocol; / 协议WORD HdrChksum; / 头校验和DWORD SrcAddr; / 源地址DWORD DstAddr; / 目的地址BYTE Options; / 选项 IP;typedef IP * LPIP;typedef IP UNALIGNED * ULPIP;在明确了以上几个数据段头的组成结构后,就可以对捕获到的数据包进行分析了。嗅探器的具体实现根据前面的设计思路,不难写出网络嗅探器的实现代码,下面就给出一个简单的示例,该示例可以捕获到所有经过本地网卡的数据包,并可从中分析出协议、IP源地址、I

10、P目标地址、TCP源端口号、TCP目标端口号以及数据包长度等信息。由于前面已经将程序的设计流程讲述的比较清楚了,因此这里就不在赘述了,下面就结合注释对程序的具体是实现进行讲解,同时为程序流程的清晰起见,去掉了错误检查等保护性代码。主要代码实现清单为:/ 检查 Winsock 版本号,WSAData为WSADATA结构对象WSAStartup(MAKEWORD(2, 2), &WSAData);/ 创建原始套接字sock = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);/ 设置IP头操作选项,其中flag 设置为ture,亲自对IP头进行处理setsockopt

11、(sock, IPPROTO_IP, IP_HDRINCL, (char*)&flag, sizeof(flag);/ 获取本机名gethostname(char*)LocalName, sizeof(LocalName)-1);/ 获取本地 IP 地址pHost = gethostbyname(char*)LocalName);/ 填充SOCKADDR_IN结构addr_in.sin_addr = *(in_addr *)pHost-h_addr_list0; /IPaddr_in.sin_family = AF_INET;addr_in.sin_port = htons(57274);/

12、把原始套接字sock 绑定到本地网卡地址上bind(sock, (PSOCKADDR)&addr_in, sizeof(addr_in);/ dwValue为输入输出参数,为1时执行,0时取消DWORD dwValue = 1;/ 设置 SOCK_RAW 为SIO_RCVALL,以便接收所有的IP包。其中SIO_RCVALL/ 的定义为: #define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)ioctlsocket(sock, SIO_RCVALL, &dwValue);前面的工作基本上都是对原始套接字进行设置,在将原始套接字设置完毕,使其能按预期目的工作时,就可以了

13、。4) 网络嗅探器的设计在以太网中, 信息是以明文的形式在网络上传输 2 , 当将网络适配器设置为混杂模式时, 由于采用以太网广播信道争用的方式, 使得监听系统与正常通信的网络能够并联连接, 并可捕获任何一个在同一冲突域上传输的数据包。IEEE802. 3 标准的以太网采用的是持续CSMA 的方式, 正是由于以太网采用这种广播信道争用的方式, 使得各个站点可以获得其他站点发送的数据。运用这一原理使信息捕获系统能够拦截我所要的信息, 这是捕获数据包的物理基础。首先,抓包系统必须绕过操作系统的协议栈来访问在网络上传输的原始数据包, 这就要求一部分运行在操作系统核心内部, 直接与网络接口驱动交互。这

14、个部分是系统依赖的, 在W inpcap 的解决方案里它被认为是一个设备驱动, 称作NPF ( NetgroupPacket F ilter) 。W inpcap 提供了两个不同的库: Packet. dll 和W pcap. dll。Wpcap. dll提供了更加友好、功能更加强大的函数调用。W inPcap 的优势在于提供了一套标准的抓包接口, 与libpcap 兼容, 可使得原来许多UN IX 平台下的网络分析工具快速移植过来,便于开发各种网络分析工具, 充分考虑了各种性能和效率的优化, 包括对于NPF 内核层次上的过滤器支持, 支持内核态的统计模式, 提供了发送数据包的能力。前者提供了

15、一个底层AP I, 伴随着一个独立于M icrosoft 操作系统的编程接口, 这些AP I可以直接用来访问驱动的函数; 后者导出了一组更强大的与libpcap 一致的高层抓包函数库( capture prmi itives) 。这些函数使得数据包的捕获以一种与网络硬件和操作系统无关的方式进行。网络嗅探器工作在网络环境的底层, 拦截所有正在网络上传送的数据, 并且通过相应的解析处理, 可以实时分析这些数据的内容, 进而分析所处的网络状态和整体拓扑布局。含了相应设备的名称和描述。取得网卡列表后就在屏幕上显示出来, 如果网卡没有被发现就显示有关错误, pcap _ findalldevs ( )

16、同其他的libpcap函数一样有一个errbuf参数, 当有异常情况发生时,这个参数会被pcap填充为某个特定错误字串。程序功能示意如下:# inelude pcap. hvo id m ain ( )P cap _if_ t * alldevs; : / /用于存储网卡信息Char errbuf PCAP _ERRBuF _SIZE ; / /用于存储错误信息if( pcap_findalldevs (& alldevs, errbuf) = = - 1 )/ /这个API用来获得本机网卡列表fprintf ( stderr, Error in Pcap _ findalldevs: % s

17、 n , errbuf) ;ex it( l) ;pcap_freealldevs ( alldevs ) ; / /最后用pcap_ free􀀁alldevs ( ) 释放内存资源获得网卡的信息后就可以按数据捕获的要求打开网卡。但是 大部分的包捕获程序都将混杂模式设为默认。数据包的过滤通过设置数据流过滤规则来实现,数据包过滤处理时嗅探技术中的难点和重点,WinPcap提供了最强大的数据流过滤引擎。它才用了一种高效的方法来捕获网络数据流的某些数据且常常和系统的捕获机制相集成。过滤数据的函数定 UDP的起始位置,就可以解析出原端口和目的端口。总结通过本次课程设计,深入的学习了网

18、络嗅探器的相关知识,包括其工作原理,作用,和设计方法。网络监听技术作为一种工具,总是扮演着正反两方面的角色。对于入侵者来说,最喜欢的莫过于用户,通过网络监听可以很容易地获得这些关键信息。而对于入侵检测和追踪者来说,网络监听技术又能够在与入侵者的斗争中发挥重要的作用。嗅探器工作的时候就像一部被动声纳,默默的接收看来自网络的各种信息,通过对这些数据的分析,网络管理员可以深入了解网络当前的运行状况,以便找出网络中的漏洞。在网络安全日益被注意的今天.我们不但要正确使用嗅探器.还要合理防范嗅探器的危害.嗅探器能够造成很大的安全危害,主要是因为它们不容易被发现。鉴于目前的网络安全现状,我们应该进一步挖掘网

19、络监听技术的细节,从技术基础上掌握先机,才能在与入侵者的斗争中取得胜利。但是仍然存在一些不足之处,例如:1.由于时间和所学知识有限,只对数据包作了简单分析,分析内容不是很全面;2.本论文中的嗅探器适用于基于广播包的网络,而对于诸如交换机这类设备,由于它能够阻止广播,所以就不能够对子网内其他的机器进行监听,若想要对此子网进行监听,就必须处于与此交换机同级的包交换网络中。通过对该课题的研究,让我对嗅探技术有了进一步的了解,对其两面性在网络中产生的影响有了更深的认识,为了打破以上局限性,还需要结合已学知识对网络嗅探技术方面的知识作进一步的学习。参考文献1 求是科技,王正军.Visual C+6.0程

20、序设计从入门到精通M.北京:人民邮电出版社,2006。2 郑莉,董渊.C+语言程序设计(第二版)M.北京:清华大学出版社,2001。3 张仕斌,谭三,易勇,蒋毅.网络安全技术M.北京:清华大学出版社,2004。4刘志祥. Linux系统安全性研究及其新型Sniffer设计与实现D. 南昌:南昌大学硕士论文, 2005。5 李渤.嗅探技术的研究与应用开发D.北京:中国地质大学硕士论文,2005。6 刘胜斐.多Agent分布式入侵检测系统中通信机制和数据分析方法研究D.江苏:南开大学硕士论文,2004。7 孙晶艳.面向校园网的网络监听技术研究D.黑龙江:哈尔滨工业大学硕士论文。网络嗅探器的原理与实

21、现摘 要随着网络技术的发展和网络应用的普及,越来越多的信息资源放在了互联网上,网络的安全性和可靠性显得越发重要。因此,对于能够分析、诊断网络,测试网络性能与安全性的工具软件的需求也越来越迫切。网络嗅探器具有两面性,攻击者可以用它来监听网络中数据,达到非法获得信息的目的,网络管理者可以通过使用嗅探器捕获网络中传输的数据包并对其进行分析,分析结果可供网络安全分析之用。本文对网络嗅探技术进行了简要分析,研究了网络数据包的捕获机制,如winpcap、原始套接字。文中首先分析了嗅探的原理和危害,并介绍了几种常见的嗅探器,然后研究了入侵检测系统中使用的包捕获技术。本文利用原始套接字在windows平台下实

22、现了一个网络嗅探器程序,完成了对数据包进行解包、分析数据包的功能。关键词:网络嗅探器;数据包捕获;数据包分析;原始套接字 Network sniffers principle and realization Abstract Along with the development of network technology and popularization of the network applications, more and more of the information resources on the Internet, the safety and reliability of

23、the network is becoming more and more important. So, to be able to analysis and diagnosis network, the performance of the network security and the test tool software demand is more and more urgent. Network sniffer appliance has two sides, and attacker can use it to monitor network data, to achieve t

24、he purpose of illegal gain information, network managers can use sniffer capture network transmission in packets and to analyze it, the analysis results for network security analysis purposes. 关闭全屏阅读 In this paper, the network sniffer technology are briefly analyzed, and the network packets to captu

25、re mechanism, such as winpcap, original socket. This paper first analyzes the principle and the harm of sniffer, and introduces several common sniffer, and then studied the intrusion detection system used in the packet capture technology. By using the original socket in Windows the workbench implements a network sniffer program, completion of the packet to unpack, analysis of data packets function. Keywords: network sniffer; Packet capture; Packet analysis; Original socket 意

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1