您好,欢迎访问三七文档
1/9计算机科学与技术学院课程设计报告2015—2016学年第一学期课程名称计算机网络设计题目简单的网络嗅探器姓名***学号************专业班级计算机科学与技术指导教师刘琨2016年1月13日2/9目录摘要................................................................3关键词............................................................31网络嗅探概述............................................41.1网络嗅探的简介................................41.2相关的网络知识................................41.2.1交换基础...................................41.2.2路由基础...................................51.2.3网卡的工作原理..........................61.3基于网卡混杂模式的嗅探原理........71.4基于arp欺骗的嗅探原理................71.5网络嗅探的防范................................81.5.1检测嗅探器.................................81.5.2将数据隐藏,使嗅探器无法发现.................................................................8结语..............................................................93/9网络嗅探器的设计与实现Designandimplementationofnetworksniffer摘要近年来,伴随着网络技术的发展和网络应用的普及,互联网已经成为信息资源的重要载体和主要传布途径,从而使得网络的安全性和可靠性越来越受到关注和重视。因此,对于能够很好的分析与诊断网络,测试网络性能与安全性的工具软件的需求越发迫切。网络嗅探器作为分析与诊断网络,测试网络性能与安全性的工具软件之一,具有两面性。攻击者可以通过使用它来监听网络中数据,达到非法截取信息的目的,网络管理者可以通过使用嗅探器捕获网络中传输的数据包并对其进行分析,分析结果可供网络安全分析之用。本文对网络嗅探技术进行了简要分析,研究了网络数据包的捕获机制,如winpcap、原始套接字。文中首先分析了嗅探的原理和危害,并介绍了几种常见的嗅探器,然后研究了入侵检测系统中使用的包捕获技术。本文利用原始套接字在windows平台下实现了一个网络嗅探器程序,完成了对数据包进行解包、分析数据包的功能。关键词:网络嗅探器数据包捕获数据包分析原始套接字网络安全C语言VC++6.04/91网络嗅探概述1.1网络嗅探的简介网络嗅探器又称为网络监听器,简称为Sniffer子系统,放置于网络节点处,对网络中的数据帧进行捕获的一种被动监听手段,是一种常用的收集有用数据的方法,这些数据可以是网络流量的去向和用到的端口号,也可以是用户的账号和密码,可以是一些商用机密数据等等。Sniffer是利用计算机的网络接口截获目的地为其他计算机交换的数据报文的一种工具。Sniffer的正当用处主要是分析网络的流量,以便找出所关心的网络中潜在的问题。例如,假设网络的某一段运行得不是很好,报文的发送比较慢,而我们又不知道问题出在什么地方,此时就可以用嗅探器截获网络中的数据包,分析问题的所在。而嗅探器也可作为攻击工具被黑客所利用为其发动进一步的攻击提供有价值的信息。1.2相关的网络知识1.2.1交换基础交换发生网络的第二层,即数据链路层。谈到交换的问题,从广义上讲,任何数据的转发都可以称作交换。当然,现在我们指的是狭义上的交换,仅包括数据链路层的转发。1.2.1.1交换原理所谓交换,就是将分组(或帧)从一个端口移到另一个端口的简单动作。交换机在操作过程当中会不断的收集资料去建立它本身的一个地址表,MAC地址表显示了主机的MAC地址与以太网交换机端口映射关系,指出数据帧去往目的主机的方向。当以太网交换机收到一个数据帧时,将收到数据帧的目的MAC地址与MAC地址表进行查找匹配。如果在MAC地址表中没有相应的匹配项,则向除接收端口外的所有端口广播该数据帧,有人将这种操作翻译为泛洪。在我们测试过的交换机中,有的除了能够对广播帧的转发进行限制之外,也能对泛洪这种操作进行限制。而当MAC地址表中有匹配项时,该匹配项指定的交换机端口与接收端口相5/9同则表明该数据帧的目的主机和源主机在同一广播域中,不通过交换机可以完成通信,交换机将丢弃该数据帧。否则,交换机将把该数据帧转发到相应的端口。1.2.1.2交换技术局域网交换技术是作为对共享式局域网提供有效的网段划分的解决方案而出现的,它可以使每个用户尽可能地分享到最大带宽。交换技术是在OSI七层网络模型中的第二层,即数据链路层进行操作的,因此交换机对数据包的转发是建立在MAC地址基础上的,对于IP网络协议来说,它是透明的,即交换机在转发数据包时,不知道也无须知道信源机和目标机的IP地址,只需知其物理地址。从网络交换产品的形态来看,交换产品大致有三种:端口交换、帧交换和信元交换。1.2.2路由基础所谓路由就是指通过相互连接的网络把信息从源地点移动到目标地点的过程。1.2.2.1路由原理当IP子网中的一台主机发送IP分组给同一IP子网的另一台主机时,它将直接把IP分组送到网络上,对方就能收到。而要送给不同IP子网上的主机时,它要选择一个能到达目的子网上的路由器,把IP分组送给该路由器,由路由器负责把IP分组送到目的地。如果没有找到这样的路由器,主机就把IP分组送给一个称为“缺省网关”的路由器上。“缺省网关”是每台主机上的一个配置参数,它是接在同一个网络上的某个路由器端口的IP地址。路由器转发IP分组时,只根据IP分组目的IP地址的网络号部分,选择合适的端口,把IP分组送出去。同主机一样,路由器也要判定端口所接的是否是目的子网,如果是,就直接把分组通过端口送到网络上,否则,也要选择下一个路由器来传送分组。路由器也有它的缺省网关,用来传送不知道往哪儿送的IP分组。这样,通过路由器把知道如何传送的IP分组正确转发出去,不知道的IP分组送给“缺省网关”路由器,这样一级一级的传送,IP分组最终将送到目的地,送不到目的地的IP分组则被网络丢弃了。1.2.2.2路由技术6/9路由器不仅负责对IP分组的转发,还要负责与别的路由器进行联络,共同确定“网间网”的路由选择和维护路由表。路由包含两个基本的动作:选择最佳路径和通过网络传输信息。在路由的过程中,后者也称为(数据)交换。交换相对来说比较简单,而选择路径很复杂。1.2.2.3路径选择路径选择是判定到达目的地的最佳路径,由路由选择算法来实现。由于涉及到不同的路由选择协议和路由选择算法,要相对复杂一些。为了判定最佳路径,路由选择算法必须启动并维护包含路由信息的路由表,其中路由信息依赖于所用的路由选择算法而不尽相同。metric是路由算法用以确定到达目的地的最佳路径的计量标准,如路径长度。为了帮助选路,路由算法初始化并维护包含路径信息的路由表,路径信息根据使用的路由算法不同而不同。1.2.3网卡的工作原理发送数据时,网卡首先侦听介质上是否有载波,如果有,则认为其他站点正在传送信息,继续侦听介质。一旦通信介质在一定时间段内是安静的,即没有被其他站点占用,则开始进行帧数据发送,同时继续侦听通信介质,以检测冲突。在发送数据期间。如果检测到冲突,则立即停止该次发送,并向介质发送一个“阻塞”信号,告知其他站点已经发生冲突,从而丢弃那些可能一直在接收的受到损坏的帧数据,并等待一段随机时间。在等待一段随机时间后,再进行新的发送。如果重传多次后(大于16次)仍发生冲突,就放弃发送。接收时,网卡浏览介质上传输的每个帧,如果其长度小于64字节,则认为是冲突碎片。如果接收到的帧不是冲突碎片且目的地址是本地地址,则对帧进行完整性校验,如果帧长度大于1518字节或未能通过CRC校验,则认为该帧发生了畸变。通过校验的帧被认为是有效的,网卡将它接收下来进行本地处理。接受到报文的计算机的网卡处理报文的过程如下图所示:7/91.3基于网卡混杂模式的嗅探原理在网络中,嗅探器接收所有的分组,而不发送任何非法分组。它不会妨碍网络数据的流动,因此很难对其进行检测。不过,处于混杂模式网卡的状态很显然和处于普通模式下不同。在混杂模式下,应该被硬件过滤掉的分组文会进入到系统的内核。是否回应这种分组完全依赖与内核。下面我举一个现实世界中的例子,说明我们检测处于混杂模式网络节点的方法。设想一下,在一个会议室中正在举行一个会议。某个人把耳朵放在会议室就可以进行窃听。当她进行窃听时,会屏住呼吸,安静地聆听会议室内所有的发言。然而,如果此时会议室内有人忽然叫窃听者的名字:“太太”,她就可能答应“唉”。这听起来有点好笑,但是完全可以用于网络嗅探行为的检测。网络进行网络嗅探的节点会接收网络的所有报文,因此其内核可能对某些本该被硬件过滤的分组作出错误回应。根据这个原理,我们可以通过检查节点对ARP报文的响应来检测网络的嗅探行为。1.4基于arp欺骗的嗅探原理所谓ARP欺骗,就是利用广播地址上主机保持周边计算机信息方式的固有安全弱点,使用伪造的MAC地址和IP地址伪装成ARP高速缓存中的另一台主机的技术。非混杂模式其他硬件地址混杂模式广播地址数据包数包MAC本地接口硬件地址产生中断通知CPU接口配置模式产生中断通知CPU不处理,丢弃报文处理过程8/9根据交换机的工作原理,有以下两种基于ARP欺骗的网络嗅探方法。(1)基于交换机的MAC-端口映射表修改的嗅探。(2)基于中间人攻击的嗅探。1.5网络嗅探的防范1.5.1检测嗅探器检测嗅探器可以采用检测混杂模式网卡的工具。由于嗅探器需要将网络中入侵的网卡设置为混杂模式才能工作,能够检测混杂模式网卡的AntiSniff是一个工具。证明你的网络有嗅探器有两条经验:(1)网络通讯丢包率非常高:通过一些网管软件,可以看到信息包传送情况,最简单是ping命令。它会告诉你掉了百分之多少的包。如果你的网络结构正常,而又有20%-30%数据包丢失以致数据包无法顺畅的流到目的地。就有可能有人在监听,这是由于嗅探器拦截数据包导致的。(2)网络带宽出现反常:通过某些带宽控制器,可以实时看到目前网络带宽的分布情况,如果某台机器长时间的占用了较大的带宽,这台机器就有可能在监听。应该也可以察觉出网络通讯速度的变化。1.5.2将数据隐藏,使嗅探器无法发现嗅探器非常难以被发现,因为它们是被动的程序一个老练的攻击者可以轻易通过破坏日志文件来掩盖信息。它们并不会给别人留下进行核查的尾巴.。完全主动的解决方案很难找到,我们可以采用一些被动的防御措施:(1)安全的拓扑结构。(2)会话加密。(3)用静态的ARP或者IP-MAC对应表代替动态的。9/9结语该程序使用非常简单,弹出对话界面后,点击开始,即使程序开始运行。显示从此刻开始获取本局域网内的数据包,显示ARP协议,IP源地址,TCP源端口号;当按下停止键时,即停止对网络的监听。本程序人机界面对话简洁,程序简单易懂,占用空间小。地址本文介绍的以原始套接字方式对网络数据进行捕获的方法实现起来比较简单,尤其是不需要编写VxD虚拟设备驱动程序就可以实现抓包,使得其编写过程变的非常简便,但由于捕获到的数据包头不包含有帧信息,因此不能接收到与IP同属网络层的其它数据包,如ARP数据包、RARP数据包等。在前面给出的示例程序中考虑到安全因素,没有对数据包做进一步的分析,而是仅仅给出了对一般信息的分析方法。通过本文的介绍,可对原始套接字的使用方法以及TCP/IP协议结构原理等知识有一个
本文标题:简单嗅探器的设计
链接地址:https://www.777doc.com/doc-2095944 .html