网络嗅探器的设计与实现

合集下载

网络嗅探器毕业设计

网络嗅探器毕业设计

网络嗅探器毕业设计网络嗅探器毕业设计在当今数字化时代,网络安全已成为一个重要的议题。

随着互联网的普及和技术的发展,网络安全威胁也日益增加。

为了保护网络的安全,许多组织和个人都在研发各种安全工具。

而网络嗅探器作为其中之一,具有重要的作用。

本文将探讨网络嗅探器的毕业设计以及其在网络安全中的应用。

网络嗅探器是一种用于监测和分析网络流量的工具。

它可以截获网络数据包,并对其进行解析和分析。

通过网络嗅探器,我们可以了解网络中正在进行的活动,发现潜在的安全威胁,并采取相应的措施进行防御。

在进行网络嗅探器的毕业设计时,首先需要确定设计的目标和功能。

网络嗅探器可以有多种功能,例如实时监测网络流量、检测异常活动、分析网络协议等。

根据自己的兴趣和需求,可以选择一个或多个功能进行设计。

其次,需要选择适合的硬件和软件平台。

网络嗅探器需要能够截获网络数据包的硬件设备,例如网卡。

同时,还需要选择合适的操作系统和开发工具来实现网络嗅探器的功能。

常见的操作系统有Linux和Windows,开发工具可以选择Python或C/C++等。

设计网络嗅探器时,需要考虑到数据包的捕获和解析。

数据包的捕获可以通过使用网络监听模式或者混杂模式来实现。

在数据包的解析方面,可以使用现有的网络协议解析库,例如libpcap或者WinPcap。

这些库可以帮助我们解析常见的网络协议,如TCP、UDP和HTTP等。

在设计网络嗅探器的功能时,可以考虑以下几个方面:1. 实时监测网络流量:网络嗅探器可以实时显示网络中的数据包流量,包括源IP地址、目标IP地址、协议类型等信息。

通过监测网络流量,我们可以及时发现异常活动,如大量的数据包传输或者未经授权的访问。

2. 检测异常活动:网络嗅探器可以通过分析网络流量来检测异常活动,如网络攻击或者恶意软件传播。

通过设置特定的规则和模式,可以对网络流量进行过滤和分析,以便及时发现和应对潜在的威胁。

3. 分析网络协议:网络嗅探器可以对网络协议进行解析和分析,以便了解网络中正在进行的活动。

(2020年编辑)网络嗅探器的设计与实现

(2020年编辑)网络嗅探器的设计与实现

《网络与信息安全》课程设计报告班级学号:姓名:题目:评阅:成绩:2011年1月目录一、开发背景1、网络安全现状。

2、开发意义。

二、设计分析1、实现目标。

2、开发技术简介。

三、详细设计1、嗅探原理。

2、代码设计。

四、测试运行五、总结六、参考文献摘要网络嗅探器是作用在网络上的一种监听程序,它是系统管理员的一个得力助手,管理员可以用它来分析网络。

例如当网络繁忙时可利用它来查找是哪一段网络繁忙,数据报文是属于哪一种协议,这样可以计算出哪种业务受欢迎。

但是当有黑客使用它时,它又变得很可怕。

它可以非法获取一些保密性信息,如帐号、密码等,它带来的负面破坏是非常大的。

作为从事网络安全技术方面的人员来说,要想有效地利用它、防范它就得深入地学习、分析网络嗅探技术。

1、本设计的基本任务是设计一个嗅探软件,实现对常用网络数据包抓取、分析。

2、软件所要完成对本机在网络中的通信数据,比如协议类型,源、目的地址和端口、数据包的大小等加以分析的功能。

3、本设计用到的开发工具为Microsoft Visual Studio 2010 开发环境为Windows 7。

4、程序由韩瑞彬同学和我共同完成,本人主要负责主界面的设计和网络数据包的抓取,韩瑞彬同学负责对数据包的解析设计。

关键字:嗅探器,安全,黑客,数据报文一、开发背景1、网络安全现状随着各种新的网络技术的不断出现、应用和发展,计算机网络的应用越来越广泛,其作用也越来越重要。

但是由于计算机系统中软硬件的脆弱性和计算机网络的脆弱性以及地理分布的位置、自然环境、自然破坏以及人为因素的影响,不仅增加了信息存储、处理的风险,也给信息传送带来了新的问题。

计算机网络安全问题越来越严重,网络破坏所造成的损失越来越大。

Internet 的安全已经成为亟待解决的问题。

多数黑客入侵成功并植入后门后的第一件事就是选择一个合适当前网络的嗅探器,以获得更多的受侵者的信息。

嗅探器是一种常用的收集有用数据的方法,可以作为分析网络数据包的设备。

基于C#的网络嗅探器设计与实现【开题报告】

基于C#的网络嗅探器设计与实现【开题报告】

毕业设计开题报告计算机科学与技术基于C#的网络嗅探器设计与实现一、选题的背景、意义1.历史背景网络嗅探器,它与当前的网络生活有很大的关系,一些网络管理员普遍采用它,也有很多黑客通过使用它来获得他们想要的信息资料。

与电话线路不同,计算机网络是共享通信通道的,这就意味着计算机能够接收到发给其他计算机的信息。

捕获在网络中传输的数据信息就称为“窃听” [3]。

在内部网上,黑客想要迅速获得大量的账号,最有效的手段是使用嗅探程序。

这种方法要求运行嗅探器程序的主机和被监听的主机必须在同一个以太网段上。

以太网窃听则是对以太网设备上传送的数据包进行侦听,来探测感兴趣的包。

如果发现符合条件的包,就把它存下来[1]。

网络嗅探器通常运行在路由器或有路由功能的主机,这样就能对大量的数据进行监控。

信息革命正在改造我们的生活,这场革命早在工业化进程中就开始孕育。

20世纪50年代前的电报电话等基础通信技术和计算机技术的出现,为20世纪60年代计算机联网实验提供了最初的条件,20世纪70年代半导体微电子技术的飞跃以及数字技术的成熟为计算机网络走出军事的封锁环境、研究所和校园的象牙塔奠定了技术基础。

美国著名的未来学家阿尔温深刻地指出:“电脑网络的建立与普及将彻底改变人类的生存及生活模式,而控制与掌握网络的人就是人类未来的主宰,谁掌握了信息,控制了网络,谁就拥有整个世界[2]。

”为了发觉信息革命的巨大潜能,美国率先提出了信息高速公路的构思,提倡实施国家信息基础设施,西方发达国家紧跟着提出全球信息基础设施的提倡。

我国也大力推动信息化,普通老百姓在家里上Internet 周游世界已经成为今天的社会现实。

人们热情高涨地推动着信息化,期盼着信息化带来的理想成真[6]。

信息技术一个面促进了生产力的发展,提高了生产的效率,但同时对社会的稳定、生产秩序、经济基础的危险也在加大。

从历史上看,每次生产力的飞跃往往带来更为残冷的战争,使人类遭受更大的痛苦。

网络嗅探器的制作课件

网络嗅探器的制作课件

数据过滤与解码
数据过滤
根据需要对捕获的数据包进行过滤,只保留感兴趣的数据包,减少分析的工作量。
数据解码
对捕获的数据包进行解码,将其转换为可读的格式,方便分析和理解。
数据统计与报告
数据统计
对捕获和分析的数据包进行统计,生 成各种统计报表,如流量统计、协议 分布等。
报告生成
根据统计结果生成报告,对网络通信 情况进行总结和描述,为网络管理员 提供决策依据。
应用场景
• 应用场景:网络嗅探器广泛应用于网 络故障排查、网络安全监控、网络性 能优化等方面。在网络故障排查中, 可以使用网络嗅探器来捕获和分析数 据包,帮助定位和解决问题。在网络 安全监控中,可以使用网络嗅探器来 检测和防范网络攻击、恶意软件等安 全威胁。在网络性能优化中,可以使 用网络嗅探器来分析网络流量和数据 包,优化网络性能和响应时间。
合规性审查
在使用网络嗅探器之前,应对其进行合规性审查,确保其符合相关法律法规和行业标准 的要求。
安全防护措施
加密通信
使用网络嗅探器时应采取加密通信措施 ,如使用SSL/TLS等加密协议,以保护数 据的机密性和完整性。
VS
防范恶意软件
网络嗅探器可能会被用于传播恶意软件, 因此在使用时应采取防范措施,如安装杀 毒软件、定期更新操作系统等。
04
网络嗅探器的安全问题
隐私保护
保护个人隐私
在使用网络嗅探器时,必须严格遵守隐私保护原则,不得非法获取或传播他人的个人信息。
避免侵犯他人权益
网络嗅探器可能会截获他人的通信数据,因此在使用时应确保不侵犯他人的合法权益,如隐私权、通 信自由等。
法律与合规性
遵守法律法规
在使用网络嗅探器时,必须遵守相关法律法规,不得从事非法活动,如黑客攻击、窃取 商业机密等。

网络嗅探器3篇

网络嗅探器3篇

网络嗅探器网络嗅探器是一种网络安全工具,可以监听、捕捉和分析网络数据包,用于发现网络中的漏洞和安全问题。

本文将从网络嗅探器的原理、使用方法和应用场景三个方面来介绍网络嗅探器。

一、网络嗅探器的原理网络嗅探器的原理是通过监听网络通信,捕捉网络数据包,并对其进行分析。

其基本工作原理可以概括为以下几点:1. 网络嗅探器通过网络接口卡(NIC)来读取网络数据包。

2. 当数据包到达网卡时,嗅探器会复制一份数据包,然后将其传输到嗅探器中。

3. 嗅探器将捕获到的数据包分解成协议层次,以便更好的分析。

4. 嗅探器将分析数据包的内容,并记录下其中的关键信息。

5. 最后,嗅探器会将分析结果返回给用户,以帮助他们识别网络漏洞和安全问题。

网络嗅探器的工作原理虽然简单,但其使用需要一定的技能和知识。

因此,用户需要花费一些时间学习并掌握网络嗅探器的使用方法。

二、网络嗅探器的使用方法1. 安装网络嗅探器首先,需要下载并安装网络嗅探器。

常见的网络嗅探器有Wireshark和Tcpdump等,这些工具都可从官方网站上免费下载。

2. 选择需要监听的网卡安装完成后,需要选择要监听的网络接口卡(NIC)。

用户可以在嗅探器界面上选择需要监听的网卡。

一般来说,用户需要选择与其所使用的网络环境相对应的网卡。

3. 分析网络数据包成功选择网卡后,用户可以开始分析网络数据包了。

为了提高分析效率,用户可以根据需要进行过滤,比如只监控某个IP地址或端口等信息。

4. 查找网络漏洞当找到一个网络包时,网络嗅探器会对其进行分析,并提供相关的信息。

用户可以利用这些信息来查找网络漏洞,并采取相应的措施。

5. 提高嗅探器的可用性为了提高嗅探器的可用性,用户可以在嗅探器界面上设置相关的参数,比如数据包缓冲区大小、捕获窗口大小等。

这些参数可以帮助用户找到更多的网络漏洞和安全问题。

三、网络嗅探器的应用场景网络嗅探器在网络安全领域中有着广泛的应用场景。

以下是几个常见的应用场景:1. 监听网络流量网络嗅探器可以帮助管理员监控网络流量,了解网络使用情况,并识别潜在的网络攻击。

网络嗅探器的设计与实现

网络嗅探器的设计与实现

网络攻防技术实验报告嗅探器的设计与实现姓名:张梦学号:一、嗅探器的设计原理嗅探器作为一种网络通讯程序,也是通过对网卡的编程来实现网络通讯的,对网卡的编程也是使用通常的套接字(socket)方式来进行。

但是,通常的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取到达的数据包。

而网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包即可以是发给它的也可以是发往别处的。

显然,要达到此目的就不能再让网卡按通常的正常模式工作,而必须将其设置为混杂模式。

二、嗅探器的开发基础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协议的高层应用协议。

网络嗅探器的设计与实现

计算机网络课程设计报告网络嗅探器的设计与实现目录第一章设计目的、任务与要求 (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并非自身地址之后,将不进行响应,也就是说应用程序无法收取与自己无关的数据包。

所以,我们要想实现截获流经网络设备的所有数据包,都要采取一点特别的手段了:将网卡设置为混杂模式,这样以来,该主机的网卡就可以捕获所有流经其网卡的数据包和帧。

网络嗅探器的设计与实现


欺骗的开始。它可能造成的危害: 嗅探器能够捕获口令。这大概是绝大多数非法 使用sniffer的理由,sniffer可以记录到明文传送 的userid和passwd。 能够捕获专用的或者机密的信息。比如金融帐 号,许多用户很放心在网上使用自己的信用卡或现 金帐号,然而sniffer可以很轻松截获在网上传送 的用户姓名、口令、信用卡号码、截止日期、帐号 和pin。比如偷窥机密或敏感的信息数据,通过拦 截数据包,入侵者可以很方便记录别人之间敏感的 信息传送,或者干脆拦截整个的email会话过程。 可以用来危害网络邻居的安全,或者用来获取 更高级别的访问权限。窥探低级的协议信息。这是 很可怕的事,通过对底层的信息协议记录,比如记 录两台主机之间的网络接口地址、远程网络接口IP 地址、IP路由信息和TCP连接的字节顺序号码等。 这些信息由非法入侵的人掌握后将对网络安全构成 极大的危害,通常有人用sniffer收集这些信息只 有一个原因:他正要进行一次欺骗(通常的IP地址 欺骗就要求你准确插入TCP连接的字节顺序号)。 事实上,如果你在网络上存在非授权的嗅探器就意 味着你的系统已经暴露在别人面前了。 简单的放置一个嗅探器并将其放到随便什么地 方将不会起到什么作用。将嗅探器放置于被攻击机 器或网络附近,这样将捕获到很多口令,还有一个 比较好的方法就是放在网关上。sniffer通常运行
+--+--+-----------+ .. .IP包. .. +--+--+--+--+-----+ CRC校验 +--+--+--+--+ 理解一下这个结构,UserA的计算机建立了一 个包假设它由100个字节的长度(我们假设一下, 20个字节是IP信息,20个字节是TCP信息,还有60 个字节为传送的数据)。现在把这个包发给以太 网,放14个字节在目地MAC地址之前,源MAC地址, 还要置一个0x0800的标记,他指示出了TCP/IP栈后 的数据结构。同时,也附加了4个字节用于做CRC校 验(CRC校验用来检查传输数据的正确性)。 现在发送数据到网络。所有在网内的计算机通 过适配器都能够发现这个数据片,其中也包括路由 适配器,嗅探器和其他一些机器。通常,适配器都 具有一块芯片用来做结构比较的,检查结构中的目 地MAC地址和自己的MAC地址,如果不相同,则适配 器会丢弃这个结构。这个操作会由硬件来完成,所 以,对于计算机内的程序来说,整个过程时毫无察 觉的。 当路由器的以太网适配器发现这个结构后,它会读 取网络信息,并且去掉前14个字节,跟踪4个字 节。查找0x8000标记,然后对这个结构进行处理

嗅探器的设计与实现

目录一、问题背景概述二、协议分析说明分析2.1 RTSP 总结2.2 MMS总结2.3 RTSP总结三、技术综述报告四、前景展望一、问题背景概述流媒体指在Internet/Intranet中使用流式传输技术的连续时基媒体,如:音频、视频或多媒体文件。

流式媒体在播放前并不下载整个文件,只将开始部分内容存入内存,流式媒体的数据流随时传送随时播放,只是在开始时有一些延迟。

流媒体实现的关键技术就是流式传输。

常见的流媒体协议有以下几种:1、RTMP(RealTime Messaging Protocol),这是Adobe公司开发的流媒体传输协议,使用Flash Media Server来搭建。

2、MMS(Media Server Protocol,MMS),这是微软定义的一种流媒体传输协议,可使用WIndows Media Server搭建。

3、即时串流通讯协议(Real Time Streaming Protocol,RTSP),它是RealNetworks 公司协助建立的一个用来传送串流媒体的开放网页标准,使用RealServer服务器搭建环境。

二、协议分析说明分析2.1RTSP 总结Real Time .1 RMessaging Protocol(实时消息传送协议协议)概述实时消息传送协议是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的私有协议。

它有三种变种:1)工作在TCP之上的明文协议,使用端口1935;2)RTMPT封装在HTTP请求之中,可穿越防火墙;3)RTMPS类似RTMPT,但使用的是HTTPS连接;介绍:RTMP协议是被Flash用于对象,视频,音频的传输.该协议建立在TCP协议或者轮询HTTP协议之上.RTMP协议就像一个用来装数据包的容器,这些数据可以是AMF格式的数据,也可以是FLV中的视/音频数据.一个单一的连接可以通过不同的通道传输多路网络流.这些通道中的包都是按照固定大小的包传输的.下面的文档详细说明了RTMP 消息块流。

计算机网络课设—嗅探器

河南理工大学计算机科学与技术学院课程设计报告2014— 2015学年第一学期课程名称计算机网络设计题目端口扫描程序的设计与实现姓名学号专业班级计算机12-4指导教师李莹莹2015年1月8日目录摘要 (1)正文 (1)1) 什么是网络嗅探器 (1)2) 网络嗅探器的作用 (2)3) 网络嗅探器的原理 (2)4) 网络嗅探器的设计 (6)5) 详细分析 (8)a) 嗅探器设计需要包含的头文件有: (8)b) Ip数据报头的结构体: (9)c) Tcp报头结构体: (9)d) Udp报头结构体: (10)e) 变量: (10)f) 过滤规则: (11)g) 循环抓包: (12)总结 (16)参考文献 (16)摘要本设计是关于网络嗅探器的设计与实现,功能包括实现网络层抓包,对获得包的源和目的地址、端口、协议等进行分析和实现简单的包嗅探器功能。

以vc为开发平台,使用Windows环境下的网络数据包捕获开发库WinPcap认真学习和掌握网络嗅探器工作原理,设计出一个嗅探器,使其实现网络层抓包,并对获得包的源和目的地址、端口、协议等进行分析,实现简单的包嗅探器功能。

本文的关键字为网络嗅探器,sniffer抓包,winpcap, c++正文1)什么是网络嗅探器随着网络发展的不断延续,网络应用日益复杂,以满足人们对信息的大量需求,但伴随而来的是,大量网络故障及网络病毒冲击着网络与终端用户,因此对于网络安全管理与网络日常的要求日益加重。

嗅探器(Sniffer Pro)有着至关重要的作用。

嗅探器是利用计算机网络接口截获所需网络内部数据报文的一种工具,它广泛地应用于流量分析、安全监控的实现中。

Sniffer主要被用来在网络上截获位于OSI协议模型中各个协议层次上的数据包,通过对截获数据包的分析,嗅探器可以掌握目标主机的信息。

嗅探器,可以理解为一个安装在计算机上的窃听设备它可以用来窃听计算机在网络上所产生的众多的信息。

简单一点解释:一部电话的窃听装置, 可以用来窃听双方通话的内容,而计算机网络嗅探器则可以窃听计算机程序在网络上发送和接收到的数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机网络课程设计题目网络嗅探器的设计与实现系 (部)姓名学号指导教师2015年7月18日计算机网络课程设计任务书网络嗅探器的设计与实现摘要:网络嗅探器是对网络中的数据帧进行捕获的一种被动监听手段,是一种常用的收集有用数据的方法。

本设计是关于网络嗅探器的设计与实现,其功能包括实现网络层抓包,对获得包的源和目的地址、端口、协议等进行分析和实现简单的包嗅探器功能。

关键字:网络嗅探器;数据包捕获; 套接字引言由于网络技术的发展,计算机网络的应用越来越广泛,其作用也越来越重要。

计算机网络安全问题更加严重,网络破坏所造成的损失越来越大。

但是由于计算机系统中软硬件的脆弱性和计算机网络的脆弱性以及地理分布的位置、自然环境、自然破坏以及人为因素的影响,不仅增加了信息存储、处理的风险,也给信息传送带来了新的问题。

嗅探器是一种常用的收集有用数据的方法,可以作为网络数据包的设备。

嗅探器是通过对网卡的编程来实现网络通讯的,对网卡的编程是使用通常的套接字(socket)方式来进行。

通常的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取到达的数据包。

而网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包即可以是发给它的也可以是发往别处的。

1 基本概念1.1 嗅探器每一个在局域网(LAN)上的工作站都有其硬件地址,这些地址唯一地表示了网络上的机器。

当用户发送一个数据包时,这些数据包就会发送到LAN上所有可用的机器。

在一般情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的数据包则不予响应。

嗅探器工作在网络的底层,在网络上监听数据包来获取敏感信息。

从原理上来说,在一个实际的系统中,数据的收发是由网卡来完成的,网卡接收到传输来的数据,其内的单片程序接收数据帧的目的MAC地址,根据计算机上的网卡驱动程序设置的接收模式判断该不该接收,认为该接收就接收后产生中断信号通知CPU,认为不该接收就丢掉不管,所以不该接收的数据网卡就截断了,计算机根本就不知道。

对于网卡来说一般有四种接收模式:a)广播方式:该模式下的网卡能够接收网络中的广播信息。

b)组播方式:设置在该模式下的网卡能够接收组播数据。

c)直接方式:在这种模式下,只有目的网卡才能接收该数据。

网络嗅探器的设计与实现d)混杂模式:在这种模式下的网卡能够接收一切通过它的数据,而不管该数据是否是传给它的。

嗅探程序是一种利用以太网的特性把网络适配卡(NIC,一般为以太网卡)置为混杂模式状态的工具,一旦网卡设置为这种模式,它就能接收传输在网络上的每一个信息包,而不管该数据是否传给它的。

1.2 相关协议1.2.1 IP协议网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。

IP层接收由更低层(网络接口层,例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层--TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。

IP 数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。

IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。

1.2.2 TCP协议如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP 层。

TCP将包排序并进行错误检查,同时实现虚电路间的连接。

TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。

TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。

应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。

1.2.3 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.1 UDP数据段头数据在从应用层到达传输层时,将添加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.2 TCP数据段头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.3 IP数据段头在网络层,还要给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 网络嗅探器的设计在以太网中, 信息是以明文的形式在网络上传输 , 当将网络适配器设置为混杂模式时, 由于采用以太网广播信道争用的方式, 使得监听系统与正常通信的网络能够并联连接, 并可捕获任何一个在同一冲突域上传输的数据包。

相关文档
最新文档