简单的网络嗅探器解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机科学与技术学院课程设计报告
2012— 2013学年第二学期
课程名称计算机网络
设计题目简单的网络嗅探器
姓名
学号
专业班级
指导教师
2013年 6 月17日
目录
摘要 (2)
关键词 (2)
1 网络嗅探概述 (3)
1.1 网络嗅探的简介 (3)
1.2 相关的网络知识 (3)
1.2.1 交换基础 (3)
1.2.2 路由基础 (4)
1.2.3网卡的工作原理 (5)
1.3 基于网卡混杂模式的嗅探原理 (6)
1.4 基于arp欺骗的嗅探原理 (6)
1.5 网络嗅探的安全威胁 (7)
1.6 网络嗅探的防范 (8)
1.6.1 检测嗅探器 (8)
1.6.2 将数据隐藏,使嗅探器无法发现 (8)
2 基于原始套接字的嗅探程序 (9)
2.1 嗅探实现 (9)
2.2 嗅探运行结果 (26)
2.2.1 嗅探普通数据包 (26)
2.2.2 嗅探HTTP敏感信息 (26)
2.2.3 嗅探FTP敏感信息 (27)
小结 (29)
参考资料 (29)
网络嗅探器的设计与实现
Design and implementation of network sniffer
摘要
近年来,伴随着网络技术的发展和网络应用的普及,互联网已经成为信息资源的重要载体和主要传布途径,从而使得网络的安全性和可靠性越来越受到关注和重视。因此,对于能够很好的分析与诊断网络,测试网络性能与安全性的工具软件的需求越发迫切。
网络嗅探器作为分析与诊断网络,测试网络性能与安全性的工具软件之一,具有两面性。攻击者可以通过使用它来监听网络中数据,达到非法截取信息的目的,网络管理者可以通过使用嗅探器捕获网络中传输的数据包并对其进行分析,分析结果可供网络安全分析之用。
本文对网络嗅探技术进行了简要分析,研究了网络数据包的捕获机制,如winpcap、原始套接字。文中首先分析了嗅探的原理和危害,并介绍了几种常见的嗅探器,然后研究了入侵检测系统中使用的包捕获技术。本文利用原始套接字在windows平台下实现了一个网络嗅探器程序,完成了对数据包进行解包、分析数据包的功能。
关键词:网络嗅探器数据包捕获数据包分析原始套接字网络安全C语言VC++6.0
1 网络嗅探概述
1.1 网络嗅探的简介
网络嗅探器又称为网络监听器,简称为Sniffer子系统,放置于网络节点处,对网络中的数据帧进行捕获的一种被动监听手段,是一种常用的收集有用数据的方法,这些数据可以是网络流量的去向和用到的端口号,也可以是用户的账号和密码,可以是一些商用机密数据等等。
Sniffer是利用计算机的网络接口截获目的地为其他计算机交换的数据报文的一种工具。Sniffer的正当用处主要是分析网络的流量,以便找出所关心的网络中潜在的问题。例如,假设网络的某一段运行得不是很好,报文的发送比较慢,而我们又不知道问题出在什么地方,此时就可以用嗅探器截获网络中的数据包,分析问题的所在。而嗅探器也可作为攻击工具被黑客所利用为其发动进一步的攻击提供有价值的信息。
1.2 相关的网络知识
1.2.1 交换基础
交换发生网络的第二层,即数据链路层。谈到交换的问题,从广义上讲,任何数据的转发都可以称作交换。当然,现在我们指的是狭义上的交换,仅包括数据链路层的转发。
1.2.1.1 交换原理
所谓交换,就是将分组(或帧)从一个端口移到另一个端口的简单动作。交换机在操作过程当中会不断的收集资料去建立它本身的一个地址表,MAC地址表显示了主机的MAC地址与以太网交换机端口映射关系,指出数据帧去往目的主机的方向。当以太网交换机收到一个数据帧时,将收到数据帧的目的MAC地址与MAC地址表进行查找匹配。如果在MAC地址表中没有相应的匹配项,则向除接收端口外的所有端口广播该数据帧,有人将这种操作翻译为泛洪。在我们测试过的交换机中,有的除了能够对广播帧的转发进行限制之外,也能对泛洪这种
操作进行限制。
而当MAC地址表中有匹配项时,该匹配项指定的交换机端口与接收端口相同则表明该数据帧的目的主机和源主机在同一广播域中,不通过交换机可以完成通信,交换机将丢弃该数据帧。否则,交换机将把该数据帧转发到相应的端口。
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分组则被网络丢弃