网络嗅探器的设计实现
- 格式:doc
- 大小:211.50 KB
- 文档页数:15
《网络与信息安全》课程设计报告班级学号:姓名:题目:评阅:成绩:2011年1月目录一、开发背景1、网络安全现状。
2、开发意义。
二、设计分析1、实现目标。
2、开发技术简介。
三、详细设计1、嗅探原理。
2、代码设计。
四、测试运行五、总结六、参考文献摘要网络嗅探器是作用在网络上的一种监听程序,它是系统管理员的一个得力助手,管理员可以用它来分析网络。
例如当网络繁忙时可利用它来查找是哪一段网络繁忙,数据报文是属于哪一种协议,这样可以计算出哪种业务受欢迎。
但是当有黑客使用它时,它又变得很可怕。
它可以非法获取一些保密性信息,如帐号、密码等,它带来的负面破坏是非常大的。
作为从事网络安全技术方面的人员来说,要想有效地利用它、防范它就得深入地学习、分析网络嗅探技术。
1、本设计的基本任务是设计一个嗅探软件,实现对常用网络数据包抓取、分析。
2、软件所要完成对本机在网络中的通信数据,比如协议类型,源、目的地址和端口、数据包的大小等加以分析的功能。
3、本设计用到的开发工具为Microsoft Visual Studio 2010 开发环境为Windows 7。
4、程序由韩瑞彬同学和我共同完成,本人主要负责主界面的设计和网络数据包的抓取,韩瑞彬同学负责对数据包的解析设计。
关键字:嗅探器,安全,黑客,数据报文一、开发背景1、网络安全现状随着各种新的网络技术的不断出现、应用和发展,计算机网络的应用越来越广泛,其作用也越来越重要。
但是由于计算机系统中软硬件的脆弱性和计算机网络的脆弱性以及地理分布的位置、自然环境、自然破坏以及人为因素的影响,不仅增加了信息存储、处理的风险,也给信息传送带来了新的问题。
计算机网络安全问题越来越严重,网络破坏所造成的损失越来越大。
Internet 的安全已经成为亟待解决的问题。
多数黑客入侵成功并植入后门后的第一件事就是选择一个合适当前网络的嗅探器,以获得更多的受侵者的信息。
嗅探器是一种常用的收集有用数据的方法,可以作为分析网络数据包的设备。
毕业设计开题报告计算机科学与技术基于C#的网络嗅探器设计与实现一、选题的背景、意义1.历史背景网络嗅探器,它与当前的网络生活有很大的关系,一些网络管理员普遍采用它,也有很多黑客通过使用它来获得他们想要的信息资料。
与电话线路不同,计算机网络是共享通信通道的,这就意味着计算机能够接收到发给其他计算机的信息。
捕获在网络中传输的数据信息就称为“窃听” [3]。
在内部网上,黑客想要迅速获得大量的账号,最有效的手段是使用嗅探程序。
这种方法要求运行嗅探器程序的主机和被监听的主机必须在同一个以太网段上。
以太网窃听则是对以太网设备上传送的数据包进行侦听,来探测感兴趣的包。
如果发现符合条件的包,就把它存下来[1]。
网络嗅探器通常运行在路由器或有路由功能的主机,这样就能对大量的数据进行监控。
信息革命正在改造我们的生活,这场革命早在工业化进程中就开始孕育。
20世纪50年代前的电报电话等基础通信技术和计算机技术的出现,为20世纪60年代计算机联网实验提供了最初的条件,20世纪70年代半导体微电子技术的飞跃以及数字技术的成熟为计算机网络走出军事的封锁环境、研究所和校园的象牙塔奠定了技术基础。
美国著名的未来学家阿尔温深刻地指出:“电脑网络的建立与普及将彻底改变人类的生存及生活模式,而控制与掌握网络的人就是人类未来的主宰,谁掌握了信息,控制了网络,谁就拥有整个世界[2]。
”为了发觉信息革命的巨大潜能,美国率先提出了信息高速公路的构思,提倡实施国家信息基础设施,西方发达国家紧跟着提出全球信息基础设施的提倡。
我国也大力推动信息化,普通老百姓在家里上Internet 周游世界已经成为今天的社会现实。
人们热情高涨地推动着信息化,期盼着信息化带来的理想成真[6]。
信息技术一个面促进了生产力的发展,提高了生产的效率,但同时对社会的稳定、生产秩序、经济基础的危险也在加大。
从历史上看,每次生产力的飞跃往往带来更为残冷的战争,使人类遭受更大的痛苦。
网络与信息安全课程设计网络嗅探器的设计和实现学院:计算机科学与技术班级:网络工程08-1班姓名:学号:指导老师:目录一、什么是嗅探器--------------------------------------------1二、嗅探器的作用---------------------------------------------1三、网络嗅探器的原理-----------------------------------------1四、反嗅探技术----------------------------------------------7五、网络嗅探器的设计-----------------------------------------8六、结语---------------------------------------------------14参考书目--------------------------------------------------14网络嗅探器的实际与实现一、什么是嗅探器嗅探器,可以理解为一个安装在计算机上的窃听设备它可以用来窃听计算机在网络上所产生的众多的信息。
简单一点解释:一部电话的窃听装置, 可以用来窃听双方通话的内容,而计算机网络嗅探器则可以窃听计算机程序在网络上发送和接收到的数据。
可是,计算机直接所传送的数据,事实上是大量的二进制数据。
因此, 一个网络窃听程序必须也使用特定的网络协议来分解嗅探到的数据,嗅探器也就必须能够识别出那个协议对应于这个数据片断,只有这样才能够进行正确的解码。
计算机的嗅探器比起电话窃听器,有他独特的优势:很多的计算机网络采用的是“共享媒体"。
也就是说,你不必中断他的通讯,并且配置特别的线路,再安装嗅探器,你几乎可以在任何连接着的网络上直接窃听到你同一掩码范围内的计算机网络数据。
我们称这种窃听方式为“基于混杂模式的嗅探”(promiscuous mode)。
毕业论文题目:网络嗅探器的设计与实现学院:数学与信息工程学院专业:计算机科学与技术此毕业设计还包括以下文件,需要的下载后留下邮箱方便发给大家网络嗅探器的设计与实现摘要:嗅探器,英文可以翻译为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 与上层应用程序之间可以说是“没有国籍的”,因为每个客户请求都被看做是与上一个请求无关的。
正是它们之间的“无国籍的”释放了网络路径,才是每个人都可以连续不断的使用网络。
基于C#的网络嗅探器设计与实现文献综述文献综述基于C#的网络嗅探器设计与实现一、前言部分写作目的随着网络技术的发展和网络应用的普及,越来越多的信息资源放在了互联网上,网络的安全性和可靠性显得越发重要。
因此,对于能够分析、诊断网络,测试网络性能与安全性的工具软件的需求也越来越迫切。
网络嗅探器就是一种用于网络分析的好工具,且它具有两面性,攻击者可以用它来监听网络中数据,达到非法获得信息的目的,网络管理者可以通过使用嗅探器捕获网络中传输的数据包并对其进行分析,分析结果可供网络安全分析之用。
于是编写一个网络嗅探器就极其重要了。
有关概念、综述范围网络嗅探器是一种网络分析工具,用于监听流经网络接口的信息,网络管理员可以用它来分析数据包,而黑客可以用它来窃听数据。
网卡的混杂模式:处于该模式的网卡能接受所有通过它的数据流,无论是什么格式,什么地址。
网卡的混杂模式是为网络分析提供的[11]。
Winpcap:它是一个基于Win32的开源的包捕获驱动构架,它弥补了windows系统内核本身提供很少包捕获接口的劣势,可以直接捕获到链路层的数据帧,而且基于它开发的监听程序具有很好的移植性。
它包含了一个内核级的数据包过滤器NPF,一个底层动态链接 Packet.dll 和一个高层的独立于系统的库Wpcap.dll。
NPF 模块过滤数据包, 将数据包不做任何改动的传递给用户。
Packet.dll 模块提供了Win32 平台下的捕获包的驱动接口,基于Packet.dll编写的程序可以不经过重新编译就在各种Win32 平台下实现捕获数据包[4]。
网络监听:一种监视网络状态、数据流程以及网络上信息传输的管理工具,它可以将网络界面设定成监听模式,并且可以截获网络上所传输的信息。
也就是说,当黑客登录网络主机并取得超级用户权限后,若要登录其它主机,使用网络监听便可以有效地截获网络上的数据,这是黑客使用最好的方法。
但是网络监听只能应用于连接同一网段的主机,通常被用来获取用户密码等[13]。
计算机与信息学院《计算机网络系统实践》报告设计题目:嗅探器的设计与实现学生姓名:***学号:2010****专业班级:信息安全****2013 年9 月25一、设计要求1.不限平台,可以使用Libpcap、WinPcap 或 Linux的原始套接字;2.实现一个功能比较简单的、具有图形界面的Sniffer,主线程响应用户界面操作,工作线程完成抓包等工作;3.能够解析出IP层和传输层的协议头,能够过滤TCP、UDP等数据包;4.能够输出文本方式传送的数据包的内容;5.能够进行简单的流量统计。
二、开发环境与工具操作系统:windows7开发工具:visual studio开发语言:C++附加库:Winpcap三、设计原理网络嗅探器是一种常用的监听网络的工具。
所谓嗅探器( Sniffer) ,是一种利用计算机网络接口截获网络数据的软件或硬件,可用于网络管理、网络协议分析以及网络安全等众多方面。
嗅探器不同于一般的键捕获工具,后者只能捕获当地终端控制台上的按键内容,而嗅探器所“嗅”到的是动态的以信息包形式( 如IP 数据包或者以太网包) 封装的信息流。
其中可能携带了重要数据或敏感信息。
可以将这些捕获到的信息包存档,以利用相应工具可以作进一步分析。
计算机网络的设计为嗅探器的使用创造了最基本的条件。
在目前的网络环境中,所有计算机节点都是共享传输介质,任意节点发出或发往任意节点的数据帧必将经过网内每一个节点的网络接口,此时只需对嗅探节点的网络接口( 网卡) 进行适当的设置便可为实现嗅探的做好准备工作。
在计算机网络系统中,网卡是用来接收网络上其他节点发来的数据帧,其内嵌的单片处理程序会检测数据帧来源的MAC 地址,并根据网卡所设置的接收方式来是否接收处理数据,如果认为应该处理,则网卡就会产生中断信号通知中央处理器,接收该数据帧并传输给操作系统处理。
否则就简单丢弃,所对应节点的网卡就截断,计算机的中央处理器并不参与。
目录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并非自身地址之后,将不进行响应,也就是说应用程序无法收取与自己无关的数据包。
所以,我们要想实现截获流经网络设备的所有数据包,都要采取一点特别的手段了:将网卡设置为混杂模式,这样以来,该主机的网卡就可以捕获所有流经其网卡的数据包和帧。
收稿日期:2008-11-053基金项目:黄石理工学院2008年科研项目(08yjz18B )作者简介:成俊(1980— ),男,湖北大冶人,助教,本科。
文章编号:1008-8245(2008)06-0022-04基于W inpcap 的网络嗅探器的设计与实现3成 俊 李 芳(黄石理工学院计算机学院,湖北黄石435003)摘 要:针对网络管理中的安全问题,以W inpcap 为开发平台,使用V isual C ++为开发工具,设计了一个网络嗅探器。
分析了网络嗅探器的基本工作原理,描述了W inpcap 捕获数据包的程序流程,最后给出具体实现的关键函数。
结果表明,这种网络嗅探器结构简单,捕获数据快,对网络的安全管理具有重要意义。
关键词:数据包捕获;嗅探;W inpcap 中图分类号:TP393.09 文献标识码:ADesi gn and I mple ment ati on ofNetwork Sn i ffer Based on W i n pcapCHENG Jun L I Fang(School of Computer Science,Huangshi I nstitute of Technol ogy,Huangshi Hubei 435003)Abstract:A i m ing at the security p r oble m s of net w ork management,the paper p r oposes a net w ork sniffer with W inpcap as devel opment p latfor m and V isual C++as devel opment t oolW inpcap and visual C++.The funda mental p rinci p le ofthe net w ork sniffer is analyzed and the p r ocedure during which W inpcap cap tures the packet is intr oduced .The key functi on is finally given.The results show that the net w ork sniffer has such advantages as si m p le structure and fast data cap ture,which is signifant t o the net w ork security and manage ment .Key words:packet cap ture;sniffer;W inpcap 随着I nternet 的迅猛发展,网络已日益成为工作和生活中不可或缺的工具。
一个简易网络嗅探器的实现一个简易网络嗅探器的实现摘要:本文介绍一个用C语言和网络数据包分析开发工具实现的简易网络Sniffer。
关键词:网络;数据包;Sniffer1 引言目前,已经有不少的Sniff工具软件,如Windows环境下,最富盛名的工具是Netxray 和Sniffer pro,用它们在 Windows环境下抓包来分析,非常方便。
在UNIX环境下如Sniffit,Snoop,Tcpdump,Dsniff 等都是比较常见的。
这里介绍一个用C语言和网络数据包和分析开发工具libpcap及winpcap 实现的简易网络Sniffer。
2网络嗅探器程序实现在c环境下编程,源码/* June 2nd,2002* Project for graduation qualification By Bby Team 19 */#include#include//必须加路径,必须把头文件包含进去#include "..“..“Include“"#include "..“..“Include“"#define Max_Num_Adapter 10// Prototypes原形//发包void PrintPackets(LPPACKET lpPacket); //设备列表charAdapterList[Max_Num_Adapter][1024]; // 主程序开始int main(){//define a pointer to an ADAPTER structure设备指针LPADAPTER lpAdapter = 0;//define a pointer to a PACKET structure包指针LPPACKET lpPacket;int i;DWORD dwErrorCode;DWORD dwVersion;DWORD dwWindowsMajorVersion;//Unicode strings (WinNT)WCHAR AdapterName[8192]; //网络适配器设备列表WCHAR *temp,*temp1;//ASCII strings (Win9x)char AdapterNamea[8192]; //网络适配器设备列表char *tempa,*temp1a;int AdapterNum=0,Open;ULONG AdapterLength;char buffer[256000]; // 容纳来自驱动器的数据的缓冲区struct bpf_stat stat;// 获得本机网卡名AdapterLength=4096;printf(" test application. Library version:%s“n", PacketGetVersion()); print f("Adapters installed:“n");i=0;下面这段代码是用来在不同版本下得到网络适配器名:Win9x 和WinNT中的网卡名称是分别用ASCII和UNICODE实现的,所以首先要得到本地操作系统的版本号.:dwVersion=GetVersion();dwWindowsMajorVersion=(DWORD)(LOBYTE(LOWORD(dwVersion))); 这里首先用到的函数是PacketGetAdapterNames,它在到来的包上设置了一个硬件过滤器,如操作成功,返回TRUE。
- - -.《网络与信息安全》课程设计报告2011年1月目录一、开发背景1、网络安全现状。
2、开发意义。
二、设计分析1、实现目标。
2、开发技术简介。
三、详细设计1、嗅探原理。
2、代码设计。
四、测试运行五、总结六、参考文献摘要网络嗅探器是作用在网络上的一种监听程序,它是系统管理员的一个得力助手,管理员可以用它来分析网络。
例如当网络繁忙时可利用它来查找是哪一段网络繁忙,数据报文是属于哪一种协议,这样可以计算出哪种业务受欢迎。
但是当有黑客使用它时,它又变得很可怕。
它可以非法获取一些XX性信息,如XX、密码等,它带来的负面破坏是非常大的。
作为从事网络安全技术方面的人员来说,要想有效地利用它、防X它就得深入地学习、分析网络嗅探技术。
1、本设计的基本任务是设计一个嗅探软件,实现对常用网络数据包抓取、分析。
2、软件所要完成对本机在网络中的通信数据,比如协议类型,源、目的地址和端口、数据包的大小等加以分析的功能。
3、本设计用到的开发工具为Microsoft Visual Studio 2010 开发环境为Windows 7。
4、程序由韩瑞彬同学和我共同完成,本人主要负责主界面的设计和网络数据包的抓取,韩瑞彬同学负责对数据包的解析设计。
关键字:嗅探器,安全,黑客,数据报文一、开发背景1、网络安全现状随着各种新的网络技术的不断出现、应用和发展,计算机网络的应用越来越广泛,其作用也越来越重要。
但是由于计算机系统中软硬件的脆弱性和计算机网络的脆弱性以及地理分布的位置、自然环境、自然破坏以及人为因素的影响,不仅增加了信息存储、处理的风险,也给信息传送带来了新的问题。
计算机网络安全问题越来越严重,网络破坏所造成的损失越来越大。
Internet 的安全已经成为亟待解决的问题。
多数黑客入侵成功并植入后门后的第一件事就是选择一个合适当前网络的嗅探器,以获得更多的受侵者的信息。
嗅探器是一种常用的收集有用数据的方法,可以作为分析网络数据包的设备。
网络嗅探器就是利用计算机的网络接口截获其他计算机的数据报文的一种工具,而且它与一般的键盘捕获程序不同。
键盘捕获程序捕获在终端上输入的键值,而嗅探器捕获的则是真实的网络报文.如果把网络嗅探器放置于网络节点处,对网络中的数据帧进行捕获的一种被动监听手段,是一种常用的收集有用数据的方法,可以分析各种信息包并描述出网络的结构和使用的机器,由于它接收任何一个在同一网段上传输的数据包,所以也就存在着捕获密码、各种信息、秘密文档等一些没有加密的信息的可能性。
这成为黑客们常用的扩大战果的方法,用来夺取其他主机的控制权。
当然嗅探器的正当用处主要是网络管理人员分析网络的流量,以便找出所关心的网络中潜在的问题。
例如,假设网络的某一段运行得不是很好,报文的发送比较慢,而我们又不知道问题出在什么地方,此时就可以用嗅探器截获网络中的数据包,分析问题的所在。
2、开发意义本次设计只是对抓取到的本机在网络中的通信数据,比如说协议类型,源、目的地址和端口、数据包的大小等加以分析,而无法做到像Sniffer 或者影音神探那种成熟的嗅探器所拥有的强大功能。
作为从事网络技术方面的人员来说,要想有效地利用它、防X它,就得深入地学习、分析网络嗅探技术。
最为重要的是,对于网络嗅探器的设计与实现,使我对网络通信,数据传输和网络信息安全等有了切身的体会与融入,同时也是对网络安全技术这门课的学以致用,不断提高自我的一种有效途径。
二、设计分析1、实现目标(1)实现网络嗅探器的界面。
(2)实现抓取数据包的功能。
(3)实现暂停抓取数据包功能。
(4)实现清空列表功能。
2、开发技术简介(1)TCP/IP协议分析TCP/IP 是供已连接因特网的计算机进行通信的通信协议。
TCP/IP 定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准。
TCP/IP是一个四层的分层体系结构。
高层为传输控制协议,它负责聚集信息或把文件拆分成更小的包。
这些包通过网络传送到接收端的TCP层,接收端的TCP层把包还原为原始文件。
低层是网际协议,它处理每个包的地址部分,使这些包正确的到达目的地。
网络上的网关计算机根据信息的地址来进行路由选择。
即使来自同一文件的分包路由也有可能不同,但最后会在目的地汇合。
TCP/IP使用客户端/服务器模式进行通信。
TCP/IP 通信是点对点的,意思是通信是网络中的一台主机与另一台主机之间的。
TCP/IP与上层应用程序之间可以说是“没有国籍的”,因为每个客户请求都被看做是与上一个请求无关的。
正是它们之间的“无国籍的”释放了网络路径,才是每个人都可以连续不断的使用网络。
许多用户熟悉使用TCP/IP协议的高层应用协议。
众所周知,如今电脑上因特网都要作TCP/IP协议设置,显然该协议成了当今地球村“人与人”之间的“牵手协议”。
通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。
而IP是给因特网的每一台电脑规定一个地址。
1974年12月,卡恩、瑟夫的第一份TCP协议详细说明正式发表。
当时美国国防部与三个科学家小组签定了完成TCP/IP的协议,结果由瑟夫领衔的小组捷足先登,首先制定出了通过详细定义的TCP/IP协议标准。
当时作了一个试验,将信息包通过点对点的卫星网络,再通过陆地电缆,再通过卫星网络,再由地面传输,贯串欧洲和美国,经过各种电脑系统,全程9.4万公里竟然没有丢失一个数据位,远距离的可靠数据传输证明了TCP/IP协议的成功。
1983年1月1日,运行较长时期曾被人们习惯了的NCP被停止使用,TCP/IP协议作为因特网上所有主机间的共同协议,从此以后被作为一种必须遵守的规则被肯定和应用。
正是由于TCP/IP协议,才有今天“地球村”因特网的巨大发展。
以下简单介绍TCP/IP中的协议都具备什么样的功能,都是如何工作的:1、IPIP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。
IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。
IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。
高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。
也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。
IP确认包含一个选项,叫做IP source routing,可以用来指定一条源地址和目的地址之间的直接路径。
对于一些TCP和UDP的服务来说,使用了该选项的IP包好像是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。
这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。
那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。
2、TCP如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。
TCP将包排序并进行错误检查,同时实现虚电路间的连接。
TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。
TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。
应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。
3、UDPUDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。
因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。
相对于FTP或Telnet,这些服务需要交换的信息量较小。
使用UDP的服务包括NTP (网络时间协议)和DNS(DNS也使用TCP)。
4、ICMPICMP与IP位于同一层,它被用来传送IP的控制信息。
它主要是用来提供有关通向目的地址的路径信息。
ICMP的‘Redirect’信息通知主机通向其他系统的更准确的路径,而‘Unreachable’信息则指出路径有问题。
另外,如果路径不可用,ICMP可以使TCP连接‘体面地’终止。
PING是最常用的基于ICMP的服务。
(2)数据包简介包是TCP/IP协议通信中的基本的数据单位之一,一般也叫数据包。
必须把内装产品的包装盒放到一个邮局指定的专用纸箱里,这样才能够邮寄。
这里,产品包装盒相当于数据包,里面放着的产品相当于可用的数据,而专用纸箱就相当于帧,且一个帧中只有一个数据包。
“包”听起来非常抽象,那么是不是不可见的呢?通过一定技术手段,是可以感知到数据包的存在的。
通过数据包捕获软件,也可以将数据包捕获并加以分析。
就是用网络嗅探器捕获数据包,可以查看捕获到的数据包的MAC 地址、IP 地址、协议类型端口号等细节。
通过分析这些数据,网管员就可以知道网络中到底有什么样的数据包在活动了。
数据包的结构非常复杂,不是三言两语能够说清的,在这里主要了解一下它的关键构成就可以了,这对于理解TCP/IP 协议的通信原理是非常重要的。
数据包主要由“目的IP 地址”、“源IP 地址”、“净载数据”等部分构成。
数据包的结构与我们平常写信非常类似,目的IP 地址是说明这个数据包是要发给谁的,相当于收信人地址;源IP 地址是说明这个数据包是发自哪里的,相当于发信人地址;而净载数据相当于信件的内容。
正是因为数据包具有这样的结构,安装了TCP/IP 协议的计算机之间才能相互通信。
我们在使用基于TCP/IP 协议的网络时,网络中其实传递的就是数据包。
比如说当你上网打开网页,这个简单的动作,就是你先发送数据包给,它接收到了之后,根据你发送的数据包的IP 地址,返回给你网页的数据包,也就是说,网页的浏览,实际上就是数据包的交换。
理解数据包,对于网络管理的网络安全具有至关重要的意义。
(3)C#语言简介C#是微软于2000 年提出的一种源于C++、类似于Java 的面向对象编程语言,适合于分布式环境中的组件开发。
C# 是专门为.NET 设计的,也是.NET 编程的首选语言。
C#的产生是因为微软在.NET 上需要一种类似Java 的语言,而Java 本身却不能胜任这一需求。
C#太像C++了,以至于它很难给人带来体验新事物时的那种兴奋。
不过,绝大部分的C++开发者将会因为C#保留了C++中大部分其喜欢的、强大的、令人激动的功能而选择使用它。
C#通过避免一般的编程错误和自动资源管理,使得C#的稳定性得到了极大的增强。
另外,C#语言功能强大且可以实现对象之间的转换,轻松实现各种对象转换成字符串。
(4)嗅探技术简介数据在网络上是以很小的称为帧(Frame)的单位传输的,帧由几部分组成,不同的部分执行不同的功能。