收藏 分享(赏)

网络攻击与防护论文14.doc

上传人:dreamzhangning 文档编号:2722959 上传时间:2018-09-26 格式:DOC 页数:20 大小:362KB
下载 相关 举报
网络攻击与防护论文14.doc_第1页
第1页 / 共20页
网络攻击与防护论文14.doc_第2页
第2页 / 共20页
网络攻击与防护论文14.doc_第3页
第3页 / 共20页
网络攻击与防护论文14.doc_第4页
第4页 / 共20页
网络攻击与防护论文14.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、江西理工大学应用科学学院网络攻击与防御课程作业论文题 目: 网络嗅探技术 系 别: 信 息 系 班 级: 网 络 091 姓 名: 黎 宇 成 绩:_二一二年四月网络嗅探课程设计一、选题的目的和意义随着网络技术的发展和网络应用的普及,越来越多的信息资源放在了互联网上,网络的安全性和可靠性显得越发重要。因此,对于能够分析、诊断网络,测试网络性能与安全性的工具软件的需求也越来越迫切。网络嗅探器具有两面性,攻击者可以用它来监听网络中数据,达到非法获得信息的目的,网络管理者可以通过使用嗅探器捕获网络中传输的数据包并对其进行分析,分析结果可供网络安全分析之用。本文对网络嗅探技术进行了简要分析,研究了网络

2、数据包的捕获机制,如winpcap、原始套接字。文中首先分析了嗅探的原理和危害,并介绍了几种常见的嗅探器,然后研究了入侵检测系统中使用的包捕获技术。本文利用原始套接字在 windows 平台下实现了一个网络嗅探器程序,完成了对数据包进行解包、分析数据包的功能。关键词:网络嗅探器;数据包捕获;数据包分析;原始套接字二、目前该选题的研究现状1.1.2 网络安全机制及技术措施目前国内外维护网络安全的机制主要有以下几类:1.访问控制机制 访问控制机制是指 在信息系统中,为检测和防止未授权访问,以及为使授权访问正确进行所设计的硬件或软件功能、操作规程、管理规程和它们的各种组合。2.身份鉴别 身份鉴别技术

3、是让验证者相信正在与之通信的另一方就是所声称的那个实体,其目的是防止伪装。3.加密机制 对纯数据的加密,加密机制是对你不愿意让他人看到的这些数据(数据的明文)用可靠的加密算法,只要破解者不知道被加密数据的密码,他就不可解读这些数据。4.病毒防护 计算机病毒的防范既是一个技术问题,也是一个管理问题,它采取以“预防为主,治疗为辅”的防范策略将计算机病毒的危害降到最小限度。针对以上机制的网络安全技术措施主要有:(1)防火墙技术 防火墙是指一种将内部网和公众网络分开的方法,它实际上是一种隔离技术,是在两个网络通信是执行的一种访问控制手段,它能允许用户“同意”的人和数据进入网络,同时将用户“不同意”的人

4、和数据拒之门外,最大限度地阻止网络中的黑客来访自己的网络,防止他们更改、复制和毁坏自己的重要信息。(2)基于主机的安全措施 通常利用主机操作系统提供的访问权限,对主机资源进行保护,这种安全措施往往只局限于主机本身的安全,而不能对整个网络提供安全保证。 (3)加密技术 用于网络安全的加密技术通常有两种形式:1.2 本课题的研究意义计算机网络技术的飞速发展,极大的改变了人们传统的生活和工作模式,越来越多的社会经济活动开始依赖网络来完成,可以说计算机网络的发展已经成为现代社会进步的一个重要标志。但与此同时,计算机犯罪、黑客攻击、病毒入侵等恶性事件也频频发生。因此,信息安全已越来越受到世界各国的重视。

5、嗅探器作为一种网络通讯程序,是通过对网卡的编程来实现网络通讯的,对网卡的编程是使用通常的套接字(socket)方式来进行。但是,通常的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取到达的数据包。而网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包即可以是发给它的也可以是发往别处的。显然,要达到此目的就不能再让网卡按通常的正常模式工作,而必须将其设置为混杂模式。本文通过对网络嗅探器对网络上传输的数据包的捕获与分析功能的进

6、一步了解,做到知己知彼。通过网络嗅探器对网络上传输的数据包进行捕获和分析,获取所需要的信息,利用对这些信息进行网络安全分析。因此,对网络嗅探器的研究具有重要意义。三、设计思路分析1.3 本文研究的内容本文的研究主要围绕以下几个方面进行。1.网络嗅探器的概念及技术的研究。主要包括网络嗅探器的概念、网络嗅探器的工作原理及常见网络嗅探器的实现原理等。2.入侵检测与嗅探器之间的联系,入侵检测的实现由四部分组成:数据包嗅探解析部分、数据行为检测部分、算法部分和扫描检测部分。数据包嗅探技术是实现入侵检测的基础,将数据包从共享网络线路中捕获,并将其提取到应用程序中。3.网络嗅探程序的实现。主要工作包括:给出

7、了一个网络嗅探程序的系统框架、数据包捕获程序的设计、数据包的解析、数据的显示等。2 网络嗅探器的基本原理2.1 网络嗅探器概述网络嗅探器又称为网络监听器,简称为 Sniffer 子系统,放置于网络节点处,对网络中的数据帧进行捕获的一种被动监听手段,是一种常用的收集有用数据的方法,这些数据可以是用户的账号和密码,可以是一些商用机密数据等等。Sniffer 是利用计算机的网络接口截获目的地为其他计算机的数据报文的一种工具。Sniffer 的正当用处主要是分析网络的流量,以便找出所关心的网络中潜在的问题。例如,假设网络的某一段运行得不是很好,报文的发送比较慢,而我们又不知道问题出在什么地方,此时就可

8、以用嗅探器截获网络中的数据包,分析问题的所在。而嗅探器也可作为攻击工具被黑客所利用为其发动进一步的攻击提供有价值的信息。2.2 嗅探器实现基础以太网数据帧是一组数字脉冲,它们在传输介质上进行传输,从而实现信息的传递。以太网帧格式符合 IEEE802.3 标准,帧中包含目的地址和源地址,目的地址最高位为 0 是普通地址,为 1 时是组地址。当一个帧送到组地址时,组内的所有站点都会收到该帧。如果将它送到一个普通地址,一般情况下,只有一个站点收到这个帧,但是,以太网是以广播方式发送帧的,也即这个帧会传播到其所在网段内的所有站点,只不过该站点不会接收目的地址不为本机地址的帧。为了捕获网段内的所有帧(以

9、后称数据包),可以设置以太网卡的工作方式,以太网卡通常有正常模式(normal mode)和混杂模式(promiscuous mode)两种工作模式。在正常模式下,网卡每接收到一个到达的数据包,就会检查该数据包的目的地址,如果是本机地址和广播地址,则将接收数据包放入缓冲区,其他目的地址的数据包则直接丢掉。因此,正常模式下主机仅处理以本机为目的的数据包,网卡如果工作在混杂模式,则可以接收本网段内传输的所有数据包。如果要进行数据包捕获,必须利用网卡的混杂模式,获得经过本网段的所有数据信息。2.4.1 WinPcap 包捕获机制由WinPcap体系结构图可以看出它采用的是分层化的驱动程序模型,并包含

10、有三个组件:1.内核级的数据包捕获驱动程序2.低级的动态连接库(Packet.dll)3.高级系统无关库(Wpcap.dll)WinPcap(Windows Packet Capture)是由微软资助的一个项目,其核心仍是基于NDIS的,但它对NDIS进行封装,它是Windows平台下一个免费、公共的网络访问系统,它为win32应用程序提供访问网络底层的能力。它提供了以下的各项功能:1.捕获原始数据报,包括在共享网络上各主机发送/接收以及相互之间交换的数据报;2.在数据报发往应用程序之前,按照自定义的规则将某些特殊的数据报过滤掉;3.在网络上发送原始的数据报;4.收集网络通信过程中的统计信息。

11、在Windows NT下WinPcap包捕获驱动和网卡设备驱动的交互是通过NDIS(Network Device Interface Specification)来实现的。而且包捕获驱动既与网络驱动通信又与用户应用程序通信,所以它在NDIS结构中如同一个协议驱动,对WindowsNT操作系统中的NDIS结构中的高端驱动进行编程,这样编制的程序与上层应用程序更容易连接,应用程序对驱动设置的工作也更方便。如图2-2所示:应用程序 应用程序协议驱动 包捕获驱动NIC 驱动数据包核心层网络层图2-2 包捕获驱动在NDIS中所处位置2.4.2 套接字包捕获机制上世纪 80 年代初,加利福尼亚大学 Ber

12、keley 分校在 UNIX 操作系统下实现了 TCP/IP 协议,它们为 TCP/IP 网络通信开发了一个应用程序接口(API),这个 API 称为 socket(套接字)接口。Socket 给程序员提供了一个高层接口,它的出现使得程序员在编写网络应用程序时只需要调用函数,对网络的底层细节并不需要精通,因此十分方便。socket实质上是提供了进程通信的端点。进程通信之前,双方首先必须各自创建一个端点,否则是没有办法建立联系并相互通信的。正如打电话之前,双方必须拥有各自的电话机一样。在网间和网内部,每一个socket用一个半相关描述:协议,本地地址,本地端口一个完整的socket连接则用一个相

13、关描述:协议,本地地址,本地端口,远地地址,远地端口每一个socket有一个本地唯一的socket号,由操作系统分配。最重要的是,socket是面向客户服务器模型而设计出来的,针对客户和服务器程序提供不同的socket系统调用。客户随机申请一个socket(相当于一个想打电话的人可以在任何一台入网电话上拨号呼叫),系统为之分配一个socket号;服务器拥有全局公认的socket(在LINUX中,/etc/services用于存储全局公认的socket号),任何客户都可以向它发出连接请求和信息请求。下面我们一一给出重要的socket系统调用。函数socket()可以创建一个socket对象,so

14、cket()函数的原型如下:SOCKET socket(int af, int type, int protocol);创建一个socket实际上是向系统申请一个属于自己的socket号。af(Address Family)俗称套接字地址族,如表2.1所示。表2.1 Linux支持的套接字地址族协议族、socket 类型和协议常用的组合如表 2.2 所示:表2.2 系统调用三参数组合关系套接字地址族 描述UNIX UNIX域套接字INET 通过TCP/IP协议支持的Internet地址族AX25 Amater radio X25IPX Novell IPXAPPLETALK Appletalk

15、 DDPX25 X25协议族(af)Socket类型(type)协议(UNIX表示)实际协议Sock_DGRAM IPPROC_UDP UDPAF_INETSock_STREAM IPPROC_TCP TCP指定本地地址使用函数bind()一一绑定socket()系统调用创建socket时,只指定了相关五元组的协议元,没有指定其余四元(本地地址、本地端口、远地地址、远地端口),因此需要别的系统调用加以补充。bind()将本地socket地址(包括本地主机地址和本地端口)与所创建的socket号联系起来,即将本地socket地址赋予socket,以指定本地半相关。其用于Linux性能评估的测试工

16、具的设计与实现调用格式为: bind(sockid, localaddr, addrlen)总的来说,各种socket地址数据结构包括两大部分:地址类型和协议地址。网络协议地址又包括主机地址和端口号。监听 listen()对于服务器来说,在它接受客户机的连接之前,首先要监听。只有进入了监听模式,才能接受来自客户机的连接。这一点可以通过listen()函数来实现,它的原型如下:int listen(SOCKET s, int backlog);各参数意义如下:s:进行监听的套接字。Backlog:正在等待连接的最大队列的长度。如果backlog的只为3,有4个客户机同时发出连接请求,则前3个会放

17、在等待连接队列中,最后一个将被忽略。如果函数成功,则返回0;否则返回SOCKET_ERROR。当客户机和服务器的连接建立起来后,用函数 send()和 recv()来进行数据传输。2.5 嗅探器的两面性从事网络安全的技术人员和相当一部分准黑客(指使用现成的黑客软件进行攻击的人)都知道网络嗅探器无论是在网络安全还是在黑客攻击方面均扮演了很重要的角色。通过使用网络嗅探器可以实现对网络上传输的数据包的捕获Sock_RAM IPPROC_ICMP ICMPSock_RAM IPPROC_RAM 某低级协议与分析。此分析结果可供网络安全分析之用,也可为黑客所利用为其发动进一步的攻击提供有价值的信息。可见

18、,嗅探器实际是一把双刃剑。2.5.1 sinffer 的危害网络嗅探器作为被黑客所利用的攻击工具其危害性主要表现在以下几个方面:1.偷窥机密或敏感的数据信息 通过拦截数据包,入侵者可以记录网上敏感信息的传送,或者干脆拦截整个会话过程。2.窥探低级的协议信息 对底层的协议信息记录,如两台主机之间的网络接口地址,远程网络接口IP地址,IP路由信息和TCP连接的字节顺序号码等,这些信息由非法入侵者掌握后将对网络的安全构成极大的危害。一个入侵者攻击网络系统可能步骤大体有:信息收集安全弱点探测和分析实施攻击 逃避检测。入侵者会利用公开的协议和工具,收集目标网络中各个主机系统的相关信息,入侵者会探测目标网

19、络上的各个主机,以寻找该系统的安全漏洞及安全弱点。他可以自编程序或利用公开的程序进行自动扫描,然后对目标实施攻击,获得系统控制权。入侵者甚至可以利用该主机为基础入侵整个网络并留下后门,掩盖痕迹,完成一次入侵。2.5.2 通过网络嗅探进行网络管理在合理的网络中,网络嗅探器的存在对系统管理员是致关重要的,系统管理员通过 sniffer 可以诊断出大量的不可见模糊问题,这些问题涉及两台乃至多台计算机之间的异常通讯有些甚至牵涉到各种的协议,借助于 sniffer 系统管理员可以方便的确定出多少的通讯量属于哪个网络协议、占主要通讯协议的主机是哪一台、大多数通讯目的地是哪台主机、报文发送占用多少时间、或者

20、相互主机的报文传送间隔时间等等,这些信息为管理员判断网络问题、管理网络区域提供了非常宝贵的信息。 使用嗅探器进行网络管理主要体现在两个方面:1.使用网络嗅探技术进行网络故障诊断与分析 通过网络嗅探技术收集到网络中传送的数据后对这些数据进行分析可以帮助解决在各种网络上的性能问题并排除网络故障,进一步可以产生报表等数据分析结果以更好的支持网络的运行。2.使用网络嗅探技术进行安全分析 通过对监听结果进行分析,可以及时发现各种危害网络安全的行为,维护网络的安全性。新的网络安全技术的研究方向正集中于网络嗅探技术上,这种方式隐蔽,不会对正常的网络传输造成任何影响,同时数据收集也十分丰富。通过网络嗅探技术实

21、现审计跟踪、攻击检测等在网络安全问题上具有重要意义。3 入侵检测系统与嗅探器3.1 入侵检测概念建立入侵检测系统是网络安全的一个重要工作,通过学习,对入侵检测系统有了一定的了解,下面对入侵检测技术做一个总体介绍。入侵检测技术与防火墙、PKI 等技术不同,防火墙、PKI 只是立足于“防” ,而入侵检测是对网络系统的运行状态进行监视,发现各种攻击企图、攻击行为或者攻击结果,以保证系统资源的机密性、完整性和可用性。为了提高入侵检测系统(IDS)产品、组件及与其他安全产品之间的互操作性,美国国防高级研究计划署(DARPA)和互联网工程任务组(IETF)的入侵检测工作组(IDWG)发起制定了一系列建议草

22、案,从体系结构、API、通信机制、语言格式等方面规范 IDS 的标准。DARPA 提出的建议是公共入侵检测框架(CIDF) ,最早由加州大学戴维斯分校安全室主持起草工作。CIDF 提出了一个通用模型, 将入侵检测系统分成了四大模块:事件产生器(Event Generators) ,事件分析器(Event Analyzers) ,响应单元(Response Units)和事件数据库(Event Database) 。各部分功能是:1. 事件产生器获得数据并向 IDS 的其它模块提供;2. 事件分析器针对数据进行入侵分析;3. 响应单元对分析的结果作出不同的响应;4. 数据库存储以上三个模块收集及

23、分析的各种数据。在检测的技术上,主要分为三类:静态分析、异常检测、误用检测。1.静态分析方法:通过分析系统配置,检查系统是否已经或可能被人入侵。2.异常检测方法:通过历史数据定义用户正常活动的模型,当检测到与所建立的正常模型有差异的行为发生时,认为可能有入侵行为的发生。3.误用检测方法:通过分析已知的入侵模式,用事先定义的规则描述这些入侵模式,再通过这些已知的行为模式来检测当前网络中是否存在入侵行为。上述三种方法均建立在数据包捕获的基础上。3.2 入侵检测的实现与嗅探器 入侵检测的实现由四部分组成:数据包嗅探解析部分、数据行为检测部分、算法部分和扫描检测部分。在这里以误用检测方法对入侵检测的实

24、现做更详细的介绍。系统编写构架如图 3-1 所示: 显示模块入侵检测模块网络协议分析模块数据包捕获模块 存储模块规则解析模块攻击特征图 3-1 入侵检测系统的架构由图 3-1 可以知道,在编写入侵检测系统时,需要遵循 CIDF 标准来进行系统的设计,首先通过数据包嗅探技术获得网络上流通的数据包;其次通过攻击特征库对嗅探到的数据包进行入侵行为的检测;再次对入侵数据包做出报警;最后将这些入侵事件纪录到数据库,便于查询和分析。3.2.1 入侵检测的实现与嗅探器的关系数据包嗅探技术是实现入侵检测的基础,将数据包从共享网络线路中捕获,并将其提取到应用程序中,这个过程要依赖于网络物理层到应用层以及操作系统

25、本身各方面进行协调、设置,下面通过实例来看一下以太网络中数据包的流程:1. 物理层,在一个以太局域网,数据在共享的网络介质(网线、HUB)中以广播的形式到达局域网每一个节点;2. 数据链路层,节点的网络适配器(网卡 NIC)查看到来的数据帧(Frame) ,通过一系列的检验,将到来的大量的数据帧中属于自己且正确合法的数据帧重构成数据包(Packet)送入操作系统的协议栈;3. 网络层至运输层,操作系统的协议栈通过这两层中的 IP、TCP、UDP 等协议判断到来的数据包是否属于本操作系统的接收范围(根据 IP 地址) ,是否属于本操作系统上的应用程序的接收范围(根据 Port 端口号) ,如果所

26、属范围正确并且数据包合法,操作系统通过端口将数据包重构成报文(Segment)送入应用程序。3.2.2 数据包嗅探技术在入侵检测系统中的应用为了嗅探到网络中的任意一个数据包,必须对物理线路、网卡、操作系统进行完全的配合,首先从网络构成上讲,嗅探技术并不是适合所有类型的网络,不同传输介质的网络的可监听性是不同的。一般来说,以太网被监听的可能性比较高,因为以太网是一个广播型的网络,在一个标准的以太网子网上,多台计算机通过一条线路互联,且任何时刻,电缆上只有一个数据包存在,为了保证多台计算机能 共 享 同 一 线 路 , 以 太 网 使 用 了 CSMA/CD(Carrier Sense Multi

27、pleAccess/Collision Detection)载波侦听多路访问/冲突检测,这样一来,共享线路上的所有以太网卡及相关设备总是处于对线路上的信号进行监听的状态中,这使得每一台机器都能够探知并接受线路上的数据流。事实证明嗅探适用于基于广播包的网络,如利用广播技术来分发数据包的连通网络(或者使用令牌的网络,只不过因为令牌不一定经过本机器,所以只能嗅探到网络中部分数据包) 。此外如果在一个子网内部进行嗅探,而子网顶部存在着诸如交换机这类设备,由于它能够阻止广播,所以就不能够对子网内其他的机器进行监听,若想要对此子网进行监听,就必须处于与此交换机同级的包交换网络中。例如从路由器到某一子网的共

28、享网络中安装一个 hub,在将监听机器和子网交换机用此 hub 连接起来,这样,就能够对此子网进行监听了,另一种办法就是在交换机上给监听机器做端口映射,指明让它接受经过交换机的所有数据包。当数据经过数据链路层后,就要通过操作系统协议栈的审核了,系统协议栈在 TCP/IP 网络模型跨越的层次非常多,它们直接从位于系统的数据链路层提取数据,通过在这一层的开发环境中设置混杂模式,就可以成功的接收从驱动层来的各种数据包。大多数的操作系统在这一层使用的是 Socket 套接字技术,它们通过函数 ioctlsocket(socket, SIO_RCVALL, /16 位源端口WORD DestPort;

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

30、PacketHead WORD SourPort; /源端口WORD DestPort; /目的端口DWORD SeqNo; /32 位序列号DWORD AckNo; /32 位确认号BYTE HLen; /4 位首部长度BYTE Flag; /6 位标志位WORD WndSize; /16 位窗口大小WORD ChkSum; /16 位校验和WORD UrgPtr; /16 位紧急数据偏移量;在网络层,还要给 TCP 数据包添加一个 IP 数据段头以组成 IP 数据报。IP数据段头格式如图 4-5 所示: 16 位 16 位 版本 IHL 服务类型 总长 标识 标志 分段偏移 生命期 协议

31、头校验和 源地址 目的地址 选项(0 或更多) 图 4-5 IP 数据段头格式同样,在实际编程中也需要通过一个数据结构来表示此 IP 数据段头,下面给出此数据结构的定义: typedef struct _IPHEADER unsigned char header_len:4; /4 位首部长度unsigned char version:4; /4 位版本号unsigned char tos; / 8 位服务类型unsigned short total_len; / 16 位总长度unsigned short ident; / 16 位标识符unsigned short flags; /3 位标

32、志位unsigned char ttl; /8 位生存时间unsigned char proto; / 8 位协议 ( IP , TCP, UDP etc)unsigned short checksum; /16 位 IP 首部校验和unsigned int sourceIP; /32 位源 IP 地址unsigned int destIP; /32 位目的 IP 地址IPHEADER;4.3 数据包捕获程序设计根据前面的设计思路,本文在 windows 平台下实现了一个嗅探器程序,开发工具使用 visual C+。下面就给出本设计的部分程序代码,该设计可以捕获到所有经过本地网卡的数据包,并可

33、从中分析出协议、IP 源地址、IP 目标地址、TCP 源端口号、TCP 目标端口号等信息。在捕获数据包前,首先对原始套接字进行设置,代码如下:void CIpmonDlg:OnLookUp() char szErr 50 , szHostNameMAX_PATH;DWORD dwErr ;SOCKADDR_IN sa;gethostname(szHostName, sizeof(szHostName) ;/获取主机名m_iphostsource = m_ipsource ;m_ipcheckedhost = ntohl(m_iphost) ;if( 0 = m_threadID )SetDlg

34、ItemText(IDC_LOOKUP,“停止捕获!“ );elseif( m_threadID )PostThreadMessage(m_threadID,WM_CLOSE,0,0) ;SetDlgItemText(IDC_LOOKUP,“开始捕获!“);m_start.EnableWindow(FALSE) ;return ;DWORD dwBufferLen10 ;DWORD dwBufferInLen= 1 ;DWORD dwBytesReturned = 0 ;m_s = socket( AF_INET , SOCK_RAW , IPPROTO_IP ) ;/建立原始套接字if(SO

35、CKET_ERROR!=WSAIoctl(m_s,SIO_RCVALL , elsedwErr = WSAGetLastError() ;sprintf( szErr , “Error WSAIoctl = %ld “ , dwErr ) ;AfxMessageBox( szErr ) ;closesocket( m_s ) ;return ; 对 socket 的工作模式进行设置,函数格式如下:SetSockOpt(int nOptionName, const void* lpOptionValue, int nOptionLen, int nLevel = SOL_SOCKET)。使用 p

36、Host = gethostbyname(szHostName)获取本地 IP 地址把原始套接字 m_s 绑定到本地网卡地址上,具体格式如下:bind(m_s,(PSOCKADDR)struct UDPPacketHead*pUDPHead;BYTE *pdata = NULL;PeekMessage( pDlg-m_threadID = GetCurrentThreadId() ;while( TRUE )if( PeekMessage( /关闭套接字pDlg-m_threadID = 0 ;pDlg-m_start.EnableWindow(TRUE) ; break ;memset( b

37、uf , 0 , sizeof(buf) ) ;iRet = recv( pDlg-m_s , buf , sizeof( buf ) , 0 ) ;/接收数据4.4 数据包的解析数据包被捕获后然后就可以根据前面对 IP 数据段头、TCP 数据段头的结构描述而对捕获的数据包进行分析。这是嗅探器程序的一个重要的组成部分。如图 4-6 所示:数据包捕获模块数据包包头分析调用 switch()函数TCPUDPICMP图4-6 数据包解析的简单流程图4-6所示为数据包的解析模块,该模块对捕获的数据包进行拆包分析,根据不同的协议类型分析其IP地址,数据包大小,端口号等,具体代码实现如课设总结一. 嗅探器

38、的应用范围嗅探器要求监听设备的物理传输介质与被监听设备的物理传输介质存在直接联系或者数据包能通过路由选择到达对方,及一个逻辑上的三方连接,具体来说有以下两种情况:1.监听方与通讯方位于同一物理网络,如局域网。2.监听方和通讯方存在路由或者接口关系,如通讯双方的同一网关,连接通讯双方的路由设备等。因此,嗅探技术不太可能在公共网络设备上使用,当今最普遍的嗅探行为多发生在大大小小的局域网中。二. 发生在交换式局域网内的窃听交换式局域网内的网络连接设备是交换机,它连接的每台计算机是独立的,交换机引入了端口的概念,它会产生一个地址表存放每台与之连接的计算机的 MAC 地址,除了声明为广播或者组播的报文,交换机在一般情况下是不会让其他报文出现共享式局域网那样的广播形式发送,因此即使网卡设置为混杂模式,它也接收不到发往其他计算机的数据,因为数据的目标地址会在交换机中被识别,然后有针对性的发往表中对应地址的端口。在这种环境中,嗅探器为了监听特定计算机的通讯,通常采取 ARP 欺骗行为,这时嗅探器充当了一个被监听对象与信息交换对象之间的转发者的角色,它会截获双方发给对方的信息后经过处理在发送给目的方,这时嗅探器对双方是透明的。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报