网络嗅探器的设计与实现
基于winpcap的嗅探器设计与实现毕业设计
计算机与信息学院《计算机网络系统实践》报告设计题目:嗅探器的设计与实现学生姓名:***学号:2010****专业班级:信息安全****2013 年9 月25一、设计要求1.不限平台,可以使用Libpcap、WinPcap 或 Linux的原始套接字;2.实现一个功能比较简单的、具有图形界面的Sniffer,主线程响应用户界面操作,工作线程完成抓包等工作;3.能够解析出IP层和传输层的协议头,能够过滤TCP、UDP等数据包;4.能够输出文本方式传送的数据包的内容;5.能够进行简单的流量统计。
二、开发环境与工具操作系统:windows7开发工具:visual studio开发语言:C++附加库:Winpcap三、设计原理网络嗅探器是一种常用的监听网络的工具。
所谓嗅探器( Sniffer) ,是一种利用计算机网络接口截获网络数据的软件或硬件,可用于网络管理、网络协议分析以及网络安全等众多方面。
嗅探器不同于一般的键捕获工具,后者只能捕获当地终端控制台上的按键内容,而嗅探器所“嗅”到的是动态的以信息包形式( 如IP 数据包或者以太网包) 封装的信息流。
其中可能携带了重要数据或敏感信息。
可以将这些捕获到的信息包存档,以利用相应工具可以作进一步分析。
计算机网络的设计为嗅探器的使用创造了最基本的条件。
在目前的网络环境中,所有计算机节点都是共享传输介质,任意节点发出或发往任意节点的数据帧必将经过网内每一个节点的网络接口,此时只需对嗅探节点的网络接口( 网卡) 进行适当的设置便可为实现嗅探的做好准备工作。
在计算机网络系统中,网卡是用来接收网络上其他节点发来的数据帧,其内嵌的单片处理程序会检测数据帧来源的MAC 地址,并根据网卡所设置的接收方式来是否接收处理数据,如果认为应该处理,则网卡就会产生中断信号通知中央处理器,接收该数据帧并传输给操作系统处理。
否则就简单丢弃,所对应节点的网卡就截断,计算机的中央处理器并不参与。
(2020年编辑)网络嗅探器的设计与实现
《网络与信息安全》课程设计报告班级学号:姓名:题目:评阅:成绩:2011年1月目录一、开发背景1、网络安全现状。
2、开发意义。
二、设计分析1、实现目标。
2、开发技术简介。
三、详细设计1、嗅探原理。
2、代码设计。
四、测试运行五、总结六、参考文献摘要网络嗅探器是作用在网络上的一种监听程序,它是系统管理员的一个得力助手,管理员可以用它来分析网络。
例如当网络繁忙时可利用它来查找是哪一段网络繁忙,数据报文是属于哪一种协议,这样可以计算出哪种业务受欢迎。
但是当有黑客使用它时,它又变得很可怕。
它可以非法获取一些保密性信息,如帐号、密码等,它带来的负面破坏是非常大的。
作为从事网络安全技术方面的人员来说,要想有效地利用它、防范它就得深入地学习、分析网络嗅探技术。
1、本设计的基本任务是设计一个嗅探软件,实现对常用网络数据包抓取、分析。
2、软件所要完成对本机在网络中的通信数据,比如协议类型,源、目的地址和端口、数据包的大小等加以分析的功能。
3、本设计用到的开发工具为Microsoft Visual Studio 2010 开发环境为Windows 7。
4、程序由韩瑞彬同学和我共同完成,本人主要负责主界面的设计和网络数据包的抓取,韩瑞彬同学负责对数据包的解析设计。
关键字:嗅探器,安全,黑客,数据报文一、开发背景1、网络安全现状随着各种新的网络技术的不断出现、应用和发展,计算机网络的应用越来越广泛,其作用也越来越重要。
但是由于计算机系统中软硬件的脆弱性和计算机网络的脆弱性以及地理分布的位置、自然环境、自然破坏以及人为因素的影响,不仅增加了信息存储、处理的风险,也给信息传送带来了新的问题。
计算机网络安全问题越来越严重,网络破坏所造成的损失越来越大。
Internet 的安全已经成为亟待解决的问题。
多数黑客入侵成功并植入后门后的第一件事就是选择一个合适当前网络的嗅探器,以获得更多的受侵者的信息。
嗅探器是一种常用的收集有用数据的方法,可以作为分析网络数据包的设备。
基于C#的网络嗅探器设计与实现【开题报告】
毕业设计开题报告计算机科学与技术基于C#的网络嗅探器设计与实现一、选题的背景、意义1.历史背景网络嗅探器,它与当前的网络生活有很大的关系,一些网络管理员普遍采用它,也有很多黑客通过使用它来获得他们想要的信息资料。
与电话线路不同,计算机网络是共享通信通道的,这就意味着计算机能够接收到发给其他计算机的信息。
捕获在网络中传输的数据信息就称为“窃听” [3]。
在内部网上,黑客想要迅速获得大量的账号,最有效的手段是使用嗅探程序。
这种方法要求运行嗅探器程序的主机和被监听的主机必须在同一个以太网段上。
以太网窃听则是对以太网设备上传送的数据包进行侦听,来探测感兴趣的包。
如果发现符合条件的包,就把它存下来[1]。
网络嗅探器通常运行在路由器或有路由功能的主机,这样就能对大量的数据进行监控。
信息革命正在改造我们的生活,这场革命早在工业化进程中就开始孕育。
20世纪50年代前的电报电话等基础通信技术和计算机技术的出现,为20世纪60年代计算机联网实验提供了最初的条件,20世纪70年代半导体微电子技术的飞跃以及数字技术的成熟为计算机网络走出军事的封锁环境、研究所和校园的象牙塔奠定了技术基础。
美国著名的未来学家阿尔温深刻地指出:“电脑网络的建立与普及将彻底改变人类的生存及生活模式,而控制与掌握网络的人就是人类未来的主宰,谁掌握了信息,控制了网络,谁就拥有整个世界[2]。
”为了发觉信息革命的巨大潜能,美国率先提出了信息高速公路的构思,提倡实施国家信息基础设施,西方发达国家紧跟着提出全球信息基础设施的提倡。
我国也大力推动信息化,普通老百姓在家里上Internet 周游世界已经成为今天的社会现实。
人们热情高涨地推动着信息化,期盼着信息化带来的理想成真[6]。
信息技术一个面促进了生产力的发展,提高了生产的效率,但同时对社会的稳定、生产秩序、经济基础的危险也在加大。
从历史上看,每次生产力的飞跃往往带来更为残冷的战争,使人类遭受更大的痛苦。
课程设计--基于C#的网络嗅探器的设计和实现
网络与信息安全课程设计网络嗅探器的设计和实现学院:计算机科学与技术班级:网络工程08-1班姓名:学号:指导老师:目录一、什么是嗅探器--------------------------------------------1二、嗅探器的作用---------------------------------------------1三、网络嗅探器的原理-----------------------------------------1四、反嗅探技术----------------------------------------------7五、网络嗅探器的设计-----------------------------------------8六、结语---------------------------------------------------14参考书目--------------------------------------------------14网络嗅探器的实际与实现一、什么是嗅探器嗅探器,可以理解为一个安装在计算机上的窃听设备它可以用来窃听计算机在网络上所产生的众多的信息。
简单一点解释:一部电话的窃听装置, 可以用来窃听双方通话的内容,而计算机网络嗅探器则可以窃听计算机程序在网络上发送和接收到的数据。
可是,计算机直接所传送的数据,事实上是大量的二进制数据。
因此, 一个网络窃听程序必须也使用特定的网络协议来分解嗅探到的数据,嗅探器也就必须能够识别出那个协议对应于这个数据片断,只有这样才能够进行正确的解码。
计算机的嗅探器比起电话窃听器,有他独特的优势:很多的计算机网络采用的是“共享媒体"。
也就是说,你不必中断他的通讯,并且配置特别的线路,再安装嗅探器,你几乎可以在任何连接着的网络上直接窃听到你同一掩码范围内的计算机网络数据。
我们称这种窃听方式为“基于混杂模式的嗅探”(promiscuous mode)。
基于Winpcap的网络嗅探器设计与实现
1
基于网络协议分析和网络数据捕获的技术,从广义上来讲,通常被叫作协议分析仪(ProtocofAnalyzer)。这样定义的原因在于我们常常将一些纯软件的,并且更侧重于捕获网络数据和进行协议分析的系统叫做嗅探器(Sniffer).而在实际用中,基于硬件或者软硬件结合的网络数据捕获和分析系统我们称之为协议分析仪。当然,我们并不是在所有的场合都对两者之间的概念进行区分,因为他们在功能上都能完成类似的工作.举例子来说,一些网络管理软件及一些网络协议分析仪都使用了嗅探器技术。
嗅探器是一柄双刃剑,具有正反两个方面的作用。作为正面用途,嗅探器主要分析网络流量,作为发现和修补网络故障的重要手段.例如,当网络某个部分运行出现异常,报文发送速度下降时,网络管理员无法确切找出问题的关键所在时,嗅探器即可做出精确的判断。此外,网络管理员还可以利用嗅探器诊断出网络内大量不可见的模糊问题,比如,哪个网络协议传输了多少流量,占主要通讯协议的主机,大多数通讯的目的地址,报文发送的时间和主机间报文传送的时间间隔等.另一方面,嗅探器也可以被别有用心的人用于非法行为。被嗅探器所截取的数据经过处理可以向用户还原显示数据包中所封装的信息,该信息包括用户标识符和口令以及机密的或者专用的信息,用于危害邻居网络的安全或获取更高级别的访问权限。
本次课程设计通过基于Winpcap的网络嗅探器设计与实现,网络嗅探器对网络上传输的数据包的捕获与分析功能的进一步了解,做到知己知彼。通过网络嗅探器对网络上传输的数据包进行捕获和分析,获取所需要的信息,利用对这些信息进行网络安全分析。因此,网络嗅探器的研究具有重要意义。
基于winpcap的嗅探器设计与实现
操作系统: windows7 开发工具: visual studio 开发语言: C++ 附加库 : Winpcap
三、设计原理
网络嗅探器是一种常用的监听网络的工具。所谓嗅探器 ( Sniffer) ,是 一种利用计算机网络接口截获网络数据的软件或硬件,可用于网络管理、网 络协议分析以及网络安全等众多方面。嗅探器不同于一般的键捕获工具,后 者只能捕获当地终端控制台上的按键内容,而嗅探器所“嗅”到的是动态的 以信息包形式 ( 如 IP 数据包或者以太网包 ) 封装的信息流。其中可能携带 了重要数据或敏感信息。可以将这些捕获到的信息包存档,以利用相应工具 可以作进一步分析。 聞創沟燴鐺險爱氇谴净。
IDM_ABOUTBOX,
strAboutMenu);渗釤呛俨匀谔鱉调硯錦。
}
}
SetIcon(m_hIcon, TRUE);
// 设置大图标
SetIcon(m_hIcon, FALSE);
// 设置小图标
ShowWindow(SW_MINIMIZE);
m_listCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRI
图1. 嗅探器总体结构
五、设计步骤
嗅探器的设置模块 a . 获取已连接的网络设备列表 , winPcap 提供了 pcap_findalldevs_ex() 函 数, 这个函数返回一个 PcaP-if 结构的链表 , 每个这样的结构都包含了一个 适配器的详细信息。 厦礴恳蹒骈時盡继價骚。 b. 打开网络设备 ,winPcap 提供了 pcap_open() 函数 , 该函数第一参数制定要 捕获数据包的哪些部分 , 第二参数用来制定适配器是否为混杂模式 , 第三 参数为读取数据的超时时间 , 当适配器被打开后 , 就可以进行捕获工作了 ;
网络嗅探器的设计与实现-毕业设计
毕业论文题目:网络嗅探器的设计与实现学院:数学与信息工程学院专业:计算机科学与技术此毕业设计还包括以下文件,需要的下载后留下邮箱方便发给大家网络嗅探器的设计与实现摘要:嗅探器,英文可以翻译为Sniffer,是一种基于被动侦听原理的网络分析方式。
使用这种技术方式,可以监视网络的状态、数据流动情况以及网络上传输的信息。
实际上Sniffer技术被广泛地应用于网络故障诊断、协议分析、应用性能分析和网络安全保障等各个领域。
本次设计完成了一个较为简单的嗅探器,它实现了对本机的网络监控的作用,对IP包进行了分析,获得其运行的信息。
信息包括了源IP地址,目标IP地址,协议,时间,吞吐量,识别码,校验码,长度等等。
也可以保存所需要的包信息,也可选择所要嗅探的协议类型,以便获得要想的信息。
同时,通过POP3服务器设置端口的值来获取数据包,得到登入邮箱的帐号和密码。
关键词:嗅探器;协议;数据包;监听;吞吐量Design and Implementation of snifferZhang yin(College of Mathematics and Information Engineering, Jinxing University)Abstract:Sniffer, can be translated into English Sniffer,is a passive network analysis method based on the principle of listener. The use of such technology, can monitor the status of networks, data flows and information of network transmission. In fact Sniffer technology is widely used in network diagnosis, analysis of the agreement, performance analysis of the application and network security, and other fields.The design complete a relatively simple sniffer, it realized that the local network monitoring role, analysis the information of IP packet and get their information about the running system. Information includes the source address,destination address, protocol, time, throughput, identification, checking code, length and so on. It can save the information of required packet, and can choose the type of protocol to be sniffing, in order to get to the information.Meanwhile,it can get the Email’s log-mail account and password by analysis the port valu of the POP3 Server.Keywords:Sniffer; Protocol; Data packet; Monitor; Throughput目录1 绪论 (5)1.1 课题背景 (5)1.2 网络嗅探器的概述 (6)1.2.1 网络嗅探器的概念与原理 (6)1.2.2 网络嗅探的检测和防范 (7)1.2.3 网络嗅探器软件需要解决的问题 (8)2 网络嗅探器设计相关技术简述 (8)2.1 在交错环境下的嗅探技术 (8)2.1.1 ARP欺骗 (8)2.1.2 交换机MAC地址表溢出 (9)2.1.3 MAC地址伪造 (9)2.1.4 ICMP路由器发现协议欺骗 (9)2.1.5 ICMP重定向攻击 (9)2.2 C#语言编程 (10)2.3 网络协议 (10)2.3.1 IP (10)2.3.2 TCP (11)2.3.3 UDP (11)3 系统需求分析 (12)3.1 系统性能要求 (12)3.2 软件实现的功能 (12)4 网络嗅探器的相关拓展 (14)总结 (16)致谢 (16)参考文献 (17)附件 (18)1 绪论嗅探器,Sniffer是一种常用的收集有用数据方法,这些数据可以是用户的帐号和密码,可以是一些商用机密数据等等。
网络嗅探器的设计与实现
网络攻防技术实验报告嗅探器的设计与实现姓名:张梦学号:一、嗅探器的设计原理嗅探器作为一种网络通讯程序,也是通过对网卡的编程来实现网络通讯的,对网卡的编程也是使用通常的套接字(socket )方式来进行。
但是,通常的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取到达的数据包。
而网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包即可以是发给它的也可以是发往别处的。
显然,要达到此目的就不能再让网卡按通常的正常模式工作,而必须将其设置为混杂模式。
二、嗅探器的开发基础1、嗅探器的实现目标(1)实现网络嗅探器的界面。
(2)实现抓取数据包的功能。
(3)实现暂停抓取数据包功能。
(4)实现清空列表功能。
2、嗅探器的技术支持简介(1)TCP/IP 协议分析TCP/IP 是供已连接因特网的计算机进行通信的通信协议。
TCP/IP 定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准。
TCP/IP 是一个四层的分层体系结构。
高层为传输控制协议,它负责聚集信息或把文件拆分成更小的包。
这些包通过网络传送到接收端的TCP层,接收端的TCP层把包还原为原始文件。
低层是网际协议,它处理每个包的地址部分,使这些包正确的到达目的地。
网络上的网关计算机根据信息的地址来进行路由选择。
即使来自同一文件的分包路由也有可能不同,但最后会在目的地汇合。
TCP/IP 使用客户端/ 服务器模式进行通信。
TCP/IP通信是点对点的,意思是通信是网络中的一台主机与另一台主机之间的。
TCP/IP 与上层应用程序之间可以说是“没有国籍的”,因为每个客户请求都被看做是与上一个请求无关的。
正是它们之间的“无国籍的”释放了网络路径,才是每个人都可以连续不断的使用网络。
网络嗅探器设计与实现
信息安全概论·课程设计网络嗅探器的设计与实现网络嗅探器的设计与实现Design and implementation of network sniffer摘要随着网络技术的发展和网络应用的普及,越来越多的信息资源放在了互联网上,网络的安全性和可靠性显得越发重要。
因此,对于能够分析、诊断网络,测试网络性能与安全性的工具软件的需求也越来越迫切。
网络嗅探器具有两面性,攻击者可以用它来监听网络中数据,达到非法获得信息的目的,网络管理者可以通过使用嗅探器捕获网络中传输的数据包并对其进行分析,分析结果可供网络安全分析之用。
本文对网络嗅探技术进行了简要分析,研究了网络数据包的捕获机制,如winpcap、原始套接字。
文中首先分析了嗅探的原理和危害,并介绍了几种常见的嗅探器,然后研究了入侵检测系统中使用的包捕获技术。
本文利用原始套接字在windows平台下实现了一个网络嗅探器程序,完成了对数据包进行解包、分析数据包的功能。
关键词:网络嗅探器数据包捕获数据包分析原始套接字目录摘要 (2)关键词 (2)1 网络嗅探概述 (4)1.1 网络嗅探的简介 (4)1.2 相关的网络知识 (4)1.3 基于网卡混杂模式的嗅探原理 (7)1.4 基于arp欺骗的嗅探原理 (7)1.5 网络嗅探的安全威胁 (7)1.6 网络嗅探的防范 (8)2 基于原始套接字的嗅探程序 (9)2.1 嗅探实现 (9)2.2 嗅探运行结果 (25)3 网络嗅探工具应用----Win Sniffer 使用方法 (27)3.1 Win Sniffer简介 (27)3.2 Win Sniffer嗅探功能使用方法 (27)小结 (29)参考资料 (29)1 网络嗅探概述1.1 网络嗅探的简介网络嗅探器又称为网络监听器,简称为Sniffer子系统,放置于网络节点处,对网络中的数据帧进行捕获的一种被动监听手段,是一种常用的收集有用数据的方法,这些数据可以是用户的账号和密码,可以是一些商用机密数据等等。
基于C#的网络嗅探器设计与实现文献综述
基于C#的网络嗅探器设计与实现文献综述文献综述基于C#的网络嗅探器设计与实现一、前言部分写作目的随着网络技术的发展和网络应用的普及,越来越多的信息资源放在了互联网上,网络的安全性和可靠性显得越发重要。
因此,对于能够分析、诊断网络,测试网络性能与安全性的工具软件的需求也越来越迫切。
网络嗅探器就是一种用于网络分析的好工具,且它具有两面性,攻击者可以用它来监听网络中数据,达到非法获得信息的目的,网络管理者可以通过使用嗅探器捕获网络中传输的数据包并对其进行分析,分析结果可供网络安全分析之用。
于是编写一个网络嗅探器就极其重要了。
有关概念、综述范围网络嗅探器是一种网络分析工具,用于监听流经网络接口的信息,网络管理员可以用它来分析数据包,而黑客可以用它来窃听数据。
网卡的混杂模式:处于该模式的网卡能接受所有通过它的数据流,无论是什么格式,什么地址。
网卡的混杂模式是为网络分析提供的[11]。
Winpcap:它是一个基于Win32的开源的包捕获驱动构架,它弥补了windows系统内核本身提供很少包捕获接口的劣势,可以直接捕获到链路层的数据帧,而且基于它开发的监听程序具有很好的移植性。
它包含了一个内核级的数据包过滤器NPF,一个底层动态链接 Packet.dll 和一个高层的独立于系统的库Wpcap.dll。
NPF 模块过滤数据包, 将数据包不做任何改动的传递给用户。
Packet.dll 模块提供了Win32 平台下的捕获包的驱动接口,基于Packet.dll编写的程序可以不经过重新编译就在各种Win32 平台下实现捕获数据包[4]。
网络监听:一种监视网络状态、数据流程以及网络上信息传输的管理工具,它可以将网络界面设定成监听模式,并且可以截获网络上所传输的信息。
也就是说,当黑客登录网络主机并取得超级用户权限后,若要登录其它主机,使用网络监听便可以有效地截获网络上的数据,这是黑客使用最好的方法。
但是网络监听只能应用于连接同一网段的主机,通常被用来获取用户密码等[13]。
网络嗅探器设计与实现
天津机电职业技术学院TIANFSDFJIN VOCATIONAL COLLEGE OF MECHANICS AND ELECTRICITY《网络安全(基于软件)》大作业报告书姓名:崔宏学号:20145305035班级:网管14(3+2)指导教师:冯骏完成日期:2015.6.2成绩:论网络嗅探器设计与实现目录一系统分析1设计概述1.1实现目标1.2开发环境2开发相关技术简介2.1C#语言简介2.2嗅探器技术简介2.3TCP/IP协议2.4数据包简介3可行性分析二详细设计1设计原理2功能说明三论文总结一设计概述基于C#的网络嗅探器的设计与实现,首先就是要设定好实现的目标,确定开发的环境。
有个合理的设计目标使得在设计过程中不茫然,思路更清楚。
而一个好的开发环境对提高开发的效率同样起着很重要的作用。
1.1实现目标实现一个简单的网络嗅探器。
具备以下功能:1、实现一个简洁的易操作的计算机操作用户界面2、实现抓取数据包的功能3、实现暂停抓取数据包的功能4、实现清空列表的功能5、实现显示数据包详细信息的显示功能1.2开发环境Microsoft Visual Studio2005,Windows XP二开发相关技术简介本节将对本设计中用到的一些主要技术进行简单的介绍。
2.1C#语言简介C#(C Sharp)是微软于2000年提出的一种源于C++、类似于Java的面向对象编程语言,适合于分布式环境中的组件开发。
C#是专门为.NET设计的,也是.NET编程的首选语言。
C#的产生是因为微软在.NET上需要一种类Java的语言,而Java本身却不能胜任这一需求。
C#太像C++了,以至于它很难给人带来体验新事物时的那种兴奋。
不过,绝大部分的C++开发者将会因为C#保留了C++中大部分其喜欢的、强大的、令人激动的功能而选择使用它。
C#通过避免一般的编程错误和自动资源管理,使得C#的稳定性得到了极大的增强。
另外,C#语言功能强大且可以实现对象之间的转换,轻松实现各种对象转换成字符串。
网络嗅探器的设计与实现论文总结
目录1 引言 (1)1.1 开发背景 (1)1.2 开发意义 (1)2 系统分析 (2)2.1 设计概述 (2)2.1.1 实现目标 (2)2.1.2 开发环境 (2)2.2 开发相关技术简介 (2)2.2.1 C#语言简介 (2)2.2.2 嗅探技术简介 (3)2.2.3 TCP/IP协议 (4)2.2.4 数据包简介 (6)2.3 可行性分析 (8)3 详细设计 (9)3.1 设计原理 (9)3.2 功能说明 (12)3.3 系统实施 (12)3.4 系统测试 (14)4 论文总结 (19)5 参考文献 (20)6 致谢 (21)1 引言1.1 开发背景随着各种新的网络技术的不断出现、应用和发展,计算机网络的应用越来越广泛,其作用也越来越重要。
但是由于计算机系统中软硬件的脆弱性和计算机网络的脆弱性以及地理分布的位置、自然环境、自然破坏以及人为因素的影响,不仅增加了信息存储、处理的风险,也给信息传送带来了新的问题。
计算机网络安全问题越来越严重,网络破坏所造成的损失越来越大。
Internet的安全已经成为亟待解决的问题。
多数黑客入侵成功并植入后门后的第一件事就是选择一个合适当前网络的嗅探器,以获得更多的受侵者的信息。
嗅探器是一种常用的收集有用数据的方法,可以作为分析网络数据包的设备。
网络嗅探器就是利用计算机的网络接口截获其他计算机的数据报文的一种工具,而且它与一般的键盘捕获程序不同。
键盘捕获程序捕获在终端上输入的键值,而嗅探器捕获的则是真实的网络报文.如果把网络嗅探器放置于网络节点处,对网络中的数据帧进行捕获的一种被动监听手段,是一种常用的收集有用数据的方法,可以分析各种信息包并描述出网络的结构和使用的机器,由于它接收任何一个在同一网段上传输的数据包,所以也就存在着捕获密码、各种信息、秘密文档等一些没有加密的信息的可能性。
这成为黑客们常用的扩大战果的方法,用来夺取其他主机的控制权。
当然嗅探器的正当用处主要是网络管理人员分析网络的流量,以便找出所关心的网络中潜在的问题。
网络嗅探器
网络嗅探器的设计与实现网络嗅探器的设计与实现摘要:网络嗅探器是作用在网络上的一种监听程序,是利用计算机网络接口截获送往目的地为其他计算机的数据报文的一种技术。
网络嗅探器是来分析网络流量,优化网络的强有力工具。
入侵者也可以通过网络嗅探器来截获数据流获取敏感信息。
本文阐述网络嗅探器的概念及其技术原理,探讨其在网络管理方面的有效应用,同时,对网络造成的隐患及网络安全和网络管理的防范措施。
介绍在windows环境下利用visual c ++开发平台实现一个网络嗅探器程序的方法过程。
关键字:网络嗅探器,流量监控,网络安全,数据报文.Design and pealization of Network Sniffer Abstarct:The Network sniffer role on the network is in a surveillance program, it is a technique using computer network interfaces to capture data packets which are sent to other computer . Sniffer is also a power tool for analyzing the network traffic and optimizing the network .An attacker can capture the data stream in order to get the secret information by using sniffer. The article explains the concept and technical principles of sniffer and explores its effective applications in network management. Meanwhile, considered its hidden trouble, this study also puts forword some preventive measures of network security and management.And the paper illustrates a concrete developing process for sniffer program bases on visual c ++ 6.0 development platform in windows.Key word: sniffer, monitoring traffic,network security, data message.。
网络嗅探器的设计与实现
计算机网络课程设计报告网络嗅探器的设计与实现目录第一章设计目的、任务与要求 (1)1.1设计的目的 (1)1.2设计的任务与要求 (1)第二章系统分析设计 (1)2.1需求分析 (1)2.2 原理分析 (1)2.3网络中数据传送过程以及数据包结构 (2)2.3.1信息传送过程 (2)2.3.2 数据包的结构 (2)第三章系统实现 (4)3.1 Winpcap技术 (4)3.2系统主要模块 (7)3.3 实现界面 (9)第四章心得体会 (10)4.1 程序总结 (10)4.2 个人总结 (10)参考文献 (10)附录 (11)第一章设计目的、任务与要求1.1设计的目的编写程序实现捕获网络中的IP数据包,解析数据包的内容,将结果显示在标准输出上,并同时写入日志文件。
1.2设计的任务与要求IP数据包的捕获与分析,程序能够自动的收集局域网中的IP数据包,能在程序运行时进行显示。
实现在标准输出和日志文件中写入捕获的IP包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源IP地址和目的IP地址等内容。
程序的具体要求如下:1)在标准输出和日志文件中写入捕获的IP包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源IP地址和目的IP地址等内容。
2)形成记录结果的日志文件。
第二章系统分析设计2.1需求分析在通常情况下,网络通讯的Socket程序只能响应与自己硬件地址想匹配的或者是以广播形式发出的数据桢,对于其他形式的数据桢,比如已到达网络接口但却不是发给此地址的数据桢,网络接口在验证目的MAC并非自身地址之后,将不进行响应,也就是说应用程序无法收取与自己无关的数据包。
所以,我们要想实现截获流经网络设备的所有数据包,都要采取一点特别的手段了:将网卡设置为混杂模式,这样以来,该主机的网卡就可以捕获所有流经其网卡的数据包和帧。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{计算机网络课程设计题目网络嗅探器的设计与实现]系 (部)姓名学号指导教师#2015年7月18日计算机网络课程设计任务书网络嗅探器的设计与实现摘要:网络嗅探器是对网络中的数据帧进行捕获的一种被动监听手段,是一种常用的收集有用数据的方法。
本设计是关于网络嗅探器的设计与实现,其功能包括实现网络层抓包,对获得包的源和目的地址、端口、协议等进行分析和实现简单的包嗅探器功能。
关键字:网络嗅探器;数据包捕获; 套接字引言由于网络技术的发展,计算机网络的应用越来越广泛,其作用也越来越重要。
计算机网络安全问题更加严重,网络破坏所造成的损失越来越大。
但是由于计算机系统中软硬件的脆弱性和计算机网络的脆弱性以及地理分布的位置、自然环境、自然破坏以及人为因素的影响,不仅增加了信息存储、处理的风险,也给信息传送带来了新的问题。
嗅探器是一种常用的收集有用数据的方法,可以作为网络数据包的设备。
嗅探器是通过对网卡的编程来实现网络通讯的,对网卡的编程是使用通常的套接字(socket)方式来进行。
通常的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取到达的数据包。
而网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包即可以是发给它的也可以是发往别处的。
1基本概念1.1嗅探器每一个在局域网(LAN)上的工作站都有其硬件地址,这些地址唯一地表示了网络上的机器。
当用户发送一个数据包时,这些数据包就会发送到LAN上所有可用的机器。
在一般情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的数据包则不予响应。
嗅探器工作在网络的底层,在网络上监听数据包来获取敏感信息。
从原理上来说,在一个实际的系统中,数据的收发是由网卡来完成的,网卡接收到传输来的数据,其内的单片程序接收数据帧的目的MAC地址,根据计算机上的网卡驱动程序设置的接收模式判断该不该接收,认为该接收就接收后产生中断信号通知CPU,认为不该接收就丢掉不管,所以不该接收的数据网卡就截断了,计算机根本就不知道。
对于网卡来说一般有四种接收模式:a)广播方式:该模式下的网卡能够接收网络中的广播信息。
b)组播方式:设置在该模式下的网卡能够接收组播数据。
c)直接方式:在这种模式下,只有目的网卡才能接收该数据。
d)混杂模式:在这种模式下的网卡能够接收一切通过它的数据,而不管该数据是否是传给它的。
嗅探程序是一种利用以太网的特性把网络适配卡(NIC,一般为以太网卡)置为混杂模式状态的工具,一旦网卡设置为这种模式,它就能接收传输在网络上的每一个信息包,而不管该数据是否传给它的。
1.2相关协议IP协议网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。
IP层接收由更低层(网络接口层,例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层--TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。
IP 数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。
IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。
TCP协议如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP 层。
TCP将包排序并进行错误检查,同时实现虚电路间的连接。
TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。
TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。
应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。
UDP协议UDP与TCP位于同一层,但对于数据包的顺序错误或重发。
因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。
相对于FTP或Telnet,这些服务需要交换的信息量较小。
使用UDP的服务包括NTP (网落时间协议)和DNS(DNS也使用TCP)。
欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。
1.3数据包“包”(Packet)是TCP/IP协议通信传输中的数据单位,一般也称“数据包”。
TCP/IP 协议是工作在OSI模型第三层(网络层)、第四层(传输层)上的,而帧是工作在第二层(数据链路层)。
上一层的内容由下一层的内容来传输,所以在局域网中,“包”是包含在“帧”里的。
数据包的结构非常复杂,主要由“目的IP地址”、“源IP地址”、“净载数据”等部分构成。
正是因为数据包具有这样的结构,安装了TCP/IP协议的计算机之间才能相互通信。
我们在使用基于TCP/IP协议的网络时,网络中其实传递的就是数据包。
比如说当你上网时打开某个网页,这个简单的动作,就是你先发送数据包给那个网站,它接收到了之后,根据你发送的数据包的IP地址,返回给你网页的数据包,也就是说,网页的浏览,实际上就是数据包的交换。
2网络嗅探器的作用嗅探器是网络的抓包工具,可以对网络中大量数据抓取,从而方便使用者对网络中用户的一些信息进行分析,所以,通常被黑客运用于网络攻击。
我们如果也能掌握网络嗅探器的原理和设计,可以将它运用与网络故障检测、网络状况的监视,还可以加强企业信息安全防护。
3网络嗅探器原理嗅探器作为一种网络通讯程序,也是通过对网卡的编程来实现网络通讯的,对网卡的编程也是使用通常的套接字(socket)方式来进行。
但是,通常的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取到达的数据包。
而网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包即可以是发给它的也可以是发往别处的。
显然,要达到此目的就不能再让网卡按通常的正常模式工作,而必须将其设置为混杂模式。
具体到编程实现上,这种对网卡混杂模式的设置是通过原始套接字(raw socket)来实现的,这也有别于通常经常使用的数据流套接字和数据报套接字。
在创建了原始套接字后,需要通过setsockopt()函数来设置IP头操作选项,然后再通过bind()函数将原始套接字绑定到本地网卡。
为了让原始套接字能接受所有的数据,还需要通过ioctlsocket()来进行设置,而且还可以指定是否亲自处理IP头。
至此,实际就可以开始对网络数据包进行嗅探了,对数据包的获取仍象流式套接字或数据报套接字那样通过recv()函数来完成。
但是与其他两种套接字不同的是,原始套接字此时捕获到的数据包并不仅仅是单纯的数据信息,而是包含有 IP头、 TCP头等信息头的最原始的数据信息,这些信息保留了它在网络传输时的原貌。
通过对这些在低层传输的原始信息的分析可以得到有关网络的一些信息。
由于这些数据经过了网络层和传输层的打包,因此需要根据其附加的帧头对数据包进行分析。
下面给出数据包的总体结构:3.1UDP数据段头数据在从应用层到达传输层时,将添加TCP数据段头,或是UDP数据段头。
其中UDP数据段头比较简单,由source port(源端口号) 、destination port(目的端口号) 、udp length(udp长度) 、udp checksum(udp校验和)组成。
UDP报头结构体为:typedef struct udphdr {unsigned short sport; /*source port(源端口号)*/unsigned short dport; /*destination port(目的端口号)*/unsigned short len; /*udp length(udp长度)*/unsigned short cksum; /*udp checksum(udp校验和)*/}UDP_HDR;3.2TCP数据段头TCP数据头则比较复杂,以20个固定字节开始,在固定头后面还可以有一些长度不固定的可选项,由source port(源端口号)、destination port(目的端口号) 、顺序号、确认号、TCP头长、校验和紧急指针、可选项(0或更多的32位字)、数据(可选项)。
组成。
TCP报头结构体为:typedef struct tcpheader {unsigned short int sport; /*source port (源端口号)*/unsigned short int dport; /*destination port(目的端口号)*/unsigned int th_seq; /*sequence number(包的序列号)*/unsigned int th_ack; /*acknowledgement number(确认应答号)*/ unsigned char th_x:4; /*unused(未使用)*/unsigned char th_off:4; /*data offset(数据偏移量)*/unsigned char Flags; /*标志全*/unsigned short int th_win; /*windows(窗口)*/unsigned short int th_sum; /*checksum(校验和)*/unsigned short int th_urp; /*urgent pointer(紧急指针)*/}TCP_HDR;3.3IP数据段头在网络层,还要给TCP数据包添加一个IP数据段头以组成IP数据报。
IP数据头以大端点机次序传送,从左到右,版本字段的高位字节先传输(SPARC是大端点机;Pentium是小端点机)。
如果是小端点机,就要在发送和接收时先行转换然后才能进行传输。
IP数据段头格由版本 IHL 服务类型总长、标志、分段偏移、头校验和、源地址、目的地、选项(0或更多)组成。
IP数据报头的结构体为:struct ipheader {unsigned char ip_hl:4; /*header length(报头长度)*/unsigned char ip_v:4; /*version(版本)*/unsigned char ip_tos; /*type os service服务类型*/unsigned short int ip_len; /*total length (总长度)*/unsigned short int ip_id; /*identification (标识符)*/unsigned short int ip_off; /*fragment offset field(段移位域)*/unsigned char ip_ttl; /*time to live (生存时间)*/unsigned char ip_p; /*protocol(协议)*/unsigned short int ip_sum; /*checksum(校验和)*/unsigned int ip_src; /*source address(源地址)*/unsigned int ip_dst; /*destination address(目的地址)*/} ;4网络嗅探器的设计在以太网中, 信息是以明文的形式在网络上传输 , 当将网络适配器设置为混杂模式时, 由于采用以太网广播信道争用的方式, 使得监听系统与正常通信的网络能够并联连接, 并可捕获任何一个在同一冲突域上传输的数据包。