




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嘉兴学院本科毕业生毕业论文(设计) 目录 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 功能说明 . 11 3.3 系统实施 . 12 3.4 系统测试 . 14 4 论文总结 . 19 致 谢 . 20 参考文献 . 21 嘉兴学院本科毕业生毕业论文(设计) 1 1 引 言 1.1 开发背景 网络技术的日新月异 , 发展突飞猛进, 计算机网络的应用越来越广泛,其作用也越来越重要。但是由于计算机系统中软硬件的脆弱性和计算机网络的脆弱性以及地理分布的位置、自然环境、自然破坏以及人为因素的影响,不仅 增加了信息存储、处理的风险,也给信息传送带来了新的问题。计算机网络安全问题越来越严重,网络破坏所造成的损失越来越大。Internet 的安全已经成为亟待解决的问题。多数黑客入侵成功并植入后门后的第一件事就是选择一个合适当前网络的嗅探器,以获得更多的受侵者的信息。嗅探器是一种常用的收集有用数据的方法,可以作为网络数据包的设备。网络嗅探器就是是利用计算机的网络接口截获其他计算机的数据报文的一种工具,而且它与一般的键盘捕获程序不同。键盘捕获程序捕获在终端上输入的键值,而嗅探器捕获的则是真实的网络报文 .如果把网络嗅探 器放置于网络节点处,对网络中的数据帧进行捕获的一种被动监听手段,是一种常用的收集有用数据的方法,可以分析各种信息包并描述出网络的结构和使用的机器,由于它接收任何一个在同一网段上传输的数据包,所以也就存在着捕获密码、各种信息、秘密文档等一些没有加密的信息的可能性。这成为黑客们常用的扩大战果的方法,用来夺取其他主机的控制权。当然嗅探器的正当用处主要是网络管理人员分析网络的流量,以便找出所关心的网络中潜在的问题。例如,假设网络的某一段运行得不是很好,报文的发送比较慢,而我们又不知道问题出在什么地方,此时就可以用嗅 探器截获网络中的数据包,分析问题的所在。 1 1.2 开发意义 本次毕业设计是基于 C#的网络嗅探器的设计与实现,由于本人能力上的限度,只是对抓取到的本机在网络中的通信数据 ,比如说协议类型,源、目的地址和端口、数据包的大小等加以分析,而无法做到像 Sniffer 或者影音神探那种成熟的嗅探器所拥有的强大功能。作为从事网络技术方面的人员来说,要想有效地利用它、防范它,就得深入地学习、分析网络嗅探技术。最为重要的是,对于网络嗅探器的设计与实现,使我对网络通信,数据传输和网络信息安全等有了切身的体会与融入,同时也是 对大学四年的学以致用,不断提高自我的一种有效途径。 嘉兴学院本科毕业生毕业论文(设计) 2 2 系统分析 2.1 设计概述 基于 C#的网络嗅探器的设计与实现,首先就是要设定好实现的目标,确定开发的环境。有个合理的设计目标使得在设计过程中不茫然,思路更清楚。而一个好的开发环境对提高开发的效率同样起着很重要的作用。 2.1.1 实现目标 实现一个简单的网络嗅探器。具备以下功能: 1、实现一个简洁的易操作的 计算机操作用户 界面 2、实现抓取数据包的功能 3、实现暂停抓取数据包的功能 4、实现清空列表的功能 5、实现显示数据包详细信息的显示功能 2.1.2 开发环境 Microsoft Visual Studio 2005, Windows XP 2.2 开发相关技术简介 本节将对本设计中用到的一些主要技术进行简单的介绍。 2.2.1 C#语言简介 C#( C Sharp)是微软于 2000 年提出的一种源于 C+、类似于 Java 的面向对象编程语言,适合于分布式环境中的组件开发。 C# 是专门为 .NET 设计的,也是 .NET 编程的首选语言。C的产生是因为微软在 .NET上需要一种类 Java的语言,而 Java本身却不能胜任这一需求。C太像 C+了,以至于它很 难给人带来体验新事物时的那种兴奋。不过,绝大部分的 C+开发者将会因为 C保留了 C+中大部分其喜欢的、强大的、令人激动的功能而选择使用它。C通过避免一般的编程错误和自动资源管理,使得 C的稳定性得到了极大的增强。另外,嘉兴学院本科毕业生毕业论文(设计) 3 C#语言功能强大且可以实现对象之间的转换,轻松实现各种对象转换成字符串。鉴于以上种种,我选用 C#作为我本次设计的开发语言。 2 2.2.2 嗅探技术简介 数据在网络上是以很小的称为帧( Frame)的单位传输的,帧由几部分组成,不同的部分执行不同的功能。帧通过特定的称为网络驱动程序的软件 进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。就是在这个传输和接收的过程中,存在 着 安全方面的问题。 每一个在局域网( LAN)上的工作站都有其硬件地址,这些地址唯 一地表示了网络上的机器(这一点与 Internet 地址系统比较相似)。当用户发送一个数据包时,这些数据包就会发送到 LAN 上所有可用的机器。 3 图示:一个简单的局域网组成 在一般情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的数据包则不予响应(换句话说,工作站 A 不会捕获 只 属于工作站 B 的数据,而是简单地忽略这些数据)。 嗅探器工作在网络的底层,在网络上监听数据包来获取敏感信息。从原理上来说,在一个实际的系统中,数据的收发是由网卡来完成的,网卡 接收到传输来的数据, 其 内的单片程序接收数据帧的目的 MAC 地址,根据计算机上的网卡驱动程序设置的接收模式判断该不该接收,认为该接收就接收后产生中断信号通知 CPU,认为不该接收就丢掉不管,所以不该接收的数据网卡就截断了,计算机根本就不知道。对于网卡来说一般有四种接收模式: a)广播方式:该模式下的网卡能够接收网络中的广播信息。 嘉兴学院本科毕业生毕业论文(设计) 4 b)组播方式:设置在该模式下的网卡能够接收组播数据。 c)直接方式:在这种模式下,只有目的网卡才能接收该数据。 d)混杂模式:在这种模式下的网卡能够接收一切通过它的数据,而不管该数据是否 是传给它的。 首先,在以太网中是基于广播方式传送数据的,也就是说,所有的物理信号都要经过我的机器。其次, 如果某个工作站的网络接口处于混杂模式 ,那么它就可以捕获网络上所有的数据。 嗅探 程序是一种利用以太网的特性把网络适配卡( NIC,一般为以太网卡)置为混杂模式状态的工具,一旦网卡设置为这种模式,它就能接收传输在网络上的每一个信息包 ,而不管该数据是否传给它的。 4 2.2.3 TCP/IP 协议 因特网是一个发展非常活跃的领域。在 1968 年,它的早期研究成果开始崭露头角,后来便出现了它的前身 ARPANET, ARPANET 为表现因特网特性的试验平台做出了重大贡献, 1973年,因特网正式面世。从那时起,关于因特网的研究和努力就一直没有间断过,其中大部分努力都是围绕着被称为网络的一个新型赛博空间所需要的标准而进行的。因特网协议及其标准与世界上任何其他事物的结构不同,它总是由一些机构或专业人士中的个人首先提出的。为了了解新的协议是如何出现并最终成为标准的,应该首先熟悉缩写词 RFC,即 Request for Comment。它的发展变迁过程要追溯到 1969 年,起因是由于因特网的成员过于分散。正如这个词的字面意思所示,这 些文档是一些实用文档、方法、测试结果、模型甚至完整的规范。因特网社会的成员可以阅读,也可以把意见反馈给 RFC,如果这些想法(或基本原理)被社会接受,就有可能成为标准。在因特网社会中关于 RFC 的用法以及如何操作并没有太大的变化。 1969 年,当时只有一个网络,整个社会不超过一百位专业人员;随着因特网的飞速发展,因特网不但需要一个机构来集中和协调这些成果,并且需要制定一个最低要求的准则,至少能在成员之间进行有效的通信并取得相互了解。 1974 年前后,摆在 ARPANET 面前的形势很清晰了,通信联络需要进一步扩展,它需 要的不仅是要能容纳成倍增加的通信媒体,而且要了解早已存在于群组中的许多领域的意义。这个领域需要一个管理者。大约在 1977 年,随着作为因特网实验备忘录( IEN)一部分的许多实验的进行,著名的 TCP/IP 协议获得了发展的动力。没过多久( 1986 年),为了 RFC 讨论的需要,需要建立一个由工程技术人员组成嘉兴学院本科毕业生毕业论文(设计) 5 的、对标准的发展负责的工作机构,以便有效地引导因特网的发展成长,这样,因特网工程工作组( INENG)成立了。今天,因特网工程部( IETF)和因特网研究部( TRTF)成为对因特网近期工程需求和远期研究目标负责、并担负 重任的两个工作组。这两个组织曾直接隶属于国际网络执行委员会( IAB),现在属于因特网协会( 1992 年成立),这个协会最终也是为因特网技术的发展负责的。 但是,如果你是一个因特网上的常客,可能对缩略词 IAB 并不满意,的确,在 IAB 的逐步发展并走向成熟过程中, IAB 将它的名字改为“ Internet Architecture Board”(由“ Activities”改为“ Architecture”),因为 I A B 在因特网发展的运作方面并没起多大作用。谈到 RFC 标准,那么首先考虑到的应该是 RFC733。如果有关于 标准的想法或对因特网有益的新技术,可以把它作为 RFC 提交给因特网社会。作为 IAB 成员之一的 RFC 编辑,决定着 RFC 的发表,对任一正式文档, RFC 都有一种确定的风格和格式。 5 现今因特网上用到的主要协议有:用户数据报协议( UDP),次要文件传输协议( TFTP),网际协议( IP),因特网控制报文协议 (ICMP),传输控制协议 (TCP),地址转换协议 (ARP),虚终端协议 (Telnet),反向地址转换协议 (RARP),外部网关协议 (EGP)版本 2,引导协议(BootP),路由信息协议 (RIP),距离向量多播路 由协议 (DVMRP)。下面对其中的 4 个协议做一些简单的介绍: IP :网际协议 IP 是 TCP/IP 的心脏,也是网络层中最重要的协议。 IP 层接收由更低层(网络接口层 , 例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层 -TCP或 UDP 层;相反, IP 层也把从 TCP 或 UDP 层接收来的数据包传送到更低层。 IP数据包是不可靠的,因为 IP 并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。 IP 数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。 高层的 TCP 和 UDP 服务在接收 数据包时,通常假设包中的源地址是有效的。也可以这样说, IP 地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。 IP 确认包含一个选项,叫作 IP Source Routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些 TCP 和 UDP 的服务来说,使用了该选项的 IP 包好象是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的 ,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠 IP 源地址做确认的服务将产生问题并且会被非法入侵。 嘉兴学院本科毕业生毕业论文(设计) 6 TCP:如果 IP 数据包中有已经封好的 TCP 数据包,那么 IP 将把它们向上传送到TCP 层。 TCP 将包排序并进行错误检查,同时实现虚电路间的连接。 TCP 数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。 TCP 将它的信息送到更高层的应用程序,例如 Telnet 的服务程序和客户程序。应用程序轮流将信息送回 TCP 层, TCP 层便将它们向下传送到 IP 层,设备驱动程序和物理介质,最后到接收方。 面向连接的服务(例如 Telnet、 FTP、 Rlogin、 X Windows和 SMTP)需要 高度的可靠性,所以它们使用了 TCP。 DNS 在某些情况下使用 TCP(发送和接收域名数据库),但使用 UDP 传送有关单个主机的信息。 UDP:UDP 与 TCP 位于同一层,但对于数据包的顺序错误或重发。因此, UDP 不被应用于那些使用虚电路的面向连接的服务, UDP 主要用于那些面向查询 -应答的服务,例如 NFS。相对于 FTP 或 Telnet,这些服务需要交换的信息量较小。使用 UDP 的服务包括 NTP(网落时间协议)和 DNS( DNS 也使用 TCP)。 欺骗 UDP 包比欺骗 TCP 包更容易,因为 UDP 没有建立初始化连接(也可以称 为握手)(因为在两个系统间没有虚电路),也就是说,与 UDP 相关的服务面临着更大的危险。 ICMP: ICMP 与 IP 位于同一层,它被用来传送 IP 的的控制信息。它主要是用来提供有关通向目的地址的路径信息。 ICMP 的 Redirect信息通知主机通向其他系统的更准确的路径,而 Unreachable信息则指出路径有问题。另外,如果路径不可用了, ICMP 可以使 TCP 连接体面地终止。 PING 是最常用的基于 ICMP 的服务。 6 2.2.4 数据包简介 “ 包 ”(Packet) 是 TCP/IP 协议 通信传输中的数据单位,一般也称 “ 数据包 ” 。有人说,局域网中传输的不是 “ 帧 ”(Frame) 吗?没错,但是 TCP/IP协议是工作在 OSI模型 第三层 (网络层 )、第四层 (传输层 )上的,而帧是工作在第二层 (数据链路层 )。上一层的内容由下一层的内容来传输,所以在局域网中, “ 包 ” 是包含在 “ 帧 ” 里的。 OSI(Open System Interconnection,开放系统互联 )模型是由国际标准化组织 (ISO)定义的标准,它定义了一种分层体系结构,在其中 的每一层定义了针对不同通信级别的协议。 OSI 模型有 5 层, 1 到5 层分别是:物理层、数据链路层、网络层、传输层、应用层。 OSI 模型在逻辑上可分为两个部分:低层的 1至 3 层关注的是原始数据的传输;高层的 4至 5 层关注的是网络下的应用嘉兴学院本科毕业生毕业论文(设计) 7 程序。 我们可以用一个形象一些的例子对数据包的概念加以说明:我们在邮局邮寄产品时,虽然产品本身带有自己的包装盒,但是在邮寄的时候只用产品原包装盒来包装显然是不行的。必须把内装产品的包装盒放到一个邮局指定的专用纸箱里,这样才能够邮寄。这里,产品包装盒相当于数据包,里面放着的产品相当于可用的数 据,而专用纸箱就相当于帧,且一个帧中只有一个数据包。 “ 包 ” 听起来非常抽象,那么是不是不可见的呢?通过一定技术手段,是可以感知到数据包的存在的。比如在 Windows 2000 Server 中,把鼠标移动到任务栏右下角的网卡图标上 (网卡需要接好双绞线、连入网络 ),就可以看到 “ 发送: 包, 收到: 包 ” 的提示 ,如 下图 所示: 通过数据包捕获软件,也可以将数据包捕获并加以分析。 就是用网络嗅探器捕获数据包,可以查看捕获到的数据包的 MAC 地址 、 IP 地址 、协议类型端口号等细节。通过分析这些数据,网管员就可以知道网络中到底有什么样的数据包在活动了。数据包的结构非常复杂,不是三言两语能够说清的,在这里主要了解一下它的关键构成就可以了,这对于理解 TCP/IP协议的通信原理是非常重要的。数据包主要由“目的 IP 地址”、“源 IP 地址”、“净载数据”等部分构 成。 数据包的结构与我们平常写信非常类似,目的 IP 地址是说明这个数据包是要发给谁的,相当于收信人地址;源 IP 地址是说明这个数据包是发自哪里的,相当于发信人地址;而净载数据相当于信件的内容。 正是因为数据包具有这样的结构,安装了 TCP/IP协议的计算机之间才能相互通信。我们在使用基于 TCP/IP 协议的网络时,网络中其实传递的就是数据包。比如说当 你上网 时 打开 某个 网页,这个简单的动作,就是你先发送数据包给 那个 网站,它接收到了之后,根据你发送的数据包的 IP 地址,返回给你网页的数据包,也就是说,网页的浏览,实际上就是 数据包的交换。 理解数据包,对于 网络管理 的 网络安全 具有至关重要的意义。 嘉兴学院本科毕业生毕业论文(设计) 8 2.3 可行性分析 可行性研究 (Feasibility Study)是通过对项目的主要内容和配套条件,如市场需求、资源供应、建设规模、工艺路线、设备选型、环境影响、资金筹措、盈利能力等,从技术、经济、工程等方面进行调查研究和分析比较,并对项目建成以后可能取得的财务、经济效益及社会环境影响进行预测,从而提出该项目是否值得投资和如何进行建设的咨询意见,为项目决策提供依据的一种综合性的 系统分析方法 。可 行性研究应具有预见性、公正性、可靠性、科学性的特点。 7 当然这次论文的可行性研究并没有上述的如此意义重大,只是理清整个系统分析和设计的大致过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。它的目的不是解决问题,而是确定问题是否值得去解决。当然在现阶段这样的信息安全背景下,网络嗅探器的研究与使用的价值是毋庸置疑的。不仅可以有效地诊断网络状况,更可以为信息安全战打攻坚战。 它是广大的网络技术人员不可或缺的工具之一。 嘉兴学院本科毕业生毕业论文(设计) 9 3 详细设计 3.1 设计原理 嗅探器 是如何工作的?如何窃听网络上的信息?网络的一个特点就是数据总是在流动中,从一处到另外一处,而互联网是由错综复杂的各种网络交汇而成的,也就是说 :当你的数据从网络的一台电脑到另一台电脑的时候,通常会经过大量不同的网络设备, (我们用tracert 命令就可以看到这种路径是如何进行的 )。如果传 输过程中,有人看到了传输中的数据,那么问题就出现了 这就好比我们 用手机给人发了一条短信,结果 除了发送对象以外, 还发到别人的手机上了一样,这样说或许还不是很可怕,要是传送的数据是企业的机密文件 呢 ,或是用户的信用卡帐号和密码呢 ? 8 嗅探侦听主要有两种途径,一种是将侦听工具软件放到网络连接的设备或者放到可以控制网络连接设备的电脑上, (比如网关服务器,路由器 ) 当然要实现这样的效果可能也需要通过其他黑客技术来实现 :比如通过木马方式将嗅探器发给某个网络管理员,使其不自觉的为攻击者进行了安装。另外一种是针对不安全的局域网 (采用交换 HUB 实现 ),放到个人电脑上就可以实现对整个局域网的侦听,这里的原理是这样的 :共享 HUB 获得一个子网内需要接收的数据时,并不是直接发送到指定主机,而是通过广播方式发送到每个电脑,对于处于接受者地位的电脑就会处 理该数据,而其他非接受者的电脑就会过滤这些数据,这些操作与电脑操作者无关,是系统自动完成的,但是电脑操作者如果有意的话, 就 可以将那些原本不属于他的数据打开 , 这就是安全隐患 ! 以太网的数据传输是基于“共享”原理的:所有的同一本地网范围内的计算机共同接收到相同的数据包。这意味着计算机直接的通讯都是透明可见的。正是因为这样的原因,以太网卡都构造了硬件的“过滤器” 。 这个过滤器将忽略掉一切和自己无关的网络信息。事实上是忽略掉了与自身 MAC 地址不符合的信息。 嗅探程序正是利用了这个特点,它主动的关闭了这个 过滤器 ,也就是 前面提到的设置网卡“混杂模式”。因此,嗅探程序就能够接收到整个以太网内的网络数据了信息了。 9 什么是以太网的 MAC 地址( MAC: Media Access Control) , 由于大量的计算机在以太网内“共享“数据流,所以必须有一个统一的办法用来区分传递给不同计算机的数据流的。这 种问题不会发生在拨号用户身上,因为计算机会假定一切数据都由你发 送 给 MODEM, 然后通过电话线传送出去。可是,当你发送数据到以太网上的时候,你必须弄清楚,哪台计算机是你发送数据的对象。的确,现在有大量的双向通讯程序出现了,看上去,他 们好像只会在两台机器内交换信息,可是你要明白,以太网的信息是共享的,其他用户,其实一样接收到了你发送的数据,只不过是被过滤器给忽略掉了。 10 举例一下,很多的小 型局域网 计算机用户都为实现文件和打印共享,安装了“ NetBEUI” 嘉兴学院本科毕业生毕业论文(设计) 10 因为它不是基于 TCP/IP 协议的,所以来自于网络的黑客一样无法得知他们的设备情况。基于 Raw 协议,传输和接收都在以太网里起着支配作用。你不能直接发送一个 Raw 数据给以太网,你必须先做一些事情,让以太网能够理解你的意思。这有点类似于发短信的方法,你不可能直接把一条短信直接发送出去 ,你还要输入对方的手机号码才可以发送,同样的网络上的传输数据也是一个道理。 11 以下是一个帮助我们理解数据传送的简单图示: _ /. /.Internet. +-+ +-+.+-+ 用户 A - 路由 . 用户 B +-+ +-+.+-+ ./ -/ +-+ 嗅探器 +-+ 用户 A IP 地址 : 0 用户 B IP 地址 : 现在知道用户 A 要于用户 B 进行计算机通讯,用户 A 需要为 0到用户 B 的通讯建立一个 IP 包 。这个 IP 包在网络上传输,它必须能够穿透路由器。因此,用户 A 必须首先提交这个包给路由器。由每个路由器考查目地 IP 地址然后决定传送路径。 用户 A 所知道的只是本地与路由连接和用户 B的 IP 地址。用户 A 并不清 楚网络的结构情况和路由走向。用户 A 必须告诉路由器准备发送数据包的情况,以太网数据传输结构大概是这样的: +-+-+-+-+-+-+ 目标 MAC +-+-+-+-+-+-+ 源 MAC +-+-+-+-+-+-+ 0x0800 +-+-+-+ IP 包 嘉兴学院本科毕业生毕业论文(设计) 11 +-+-+-+-+-+ CRC 校验 +-+-+-+-+ 理解一 下这个结构,用户 A 的计算机建立了一个数据包假设它由 100 个字节的长度( 假设一下, 20 个字节是 IP 信息, 20 个字节是 TCP 信息,还有 60 个字节为传送的数据)。现在把这个数据包发送给以太网 ,放 14 个字节在目的 MAC 地址之前,源 MAC 地址 还要置一个0x0800 的标记,他指示出了 TCP/IP 栈后的数据结构。同时,也附加了 4 个字节用于做 CRC校验( CRC 校验用来检查传输数据的正确性)。 现在发送数据到网络, 所有在 局域 网内的计算机通过适配器都能够发现这个数据包,其中也包括路由适配器,嗅探器和其他一些机器。通常,适配 器都具有一块芯片用来做结构比较的,检查结构中的目地 MAC 地址和自己的 MAC 地址,如果不相同,则适配器会丢弃这个结构。这个操作会由硬件来完成,所以,对于计算机内的程序来说,整个过程时毫无察觉的。 当路由器的以太网适配器发现这个结构后,它会读取网络信息,并且去掉前 14 个字节,跟踪 4 个字节。查找 0x0800 标记,然后对这个结构进行处理(它将根据网络状况推测出下一个最快路由节点,从而最快传送数据到预定的目标地址)。 设想,只有路由机器能够检查这个结构,并且所有其他的机器都忽略这个结构,则嗅探器无论如何也无法检测到这 个结构的。 MAC 地址的格式是什么?以太网卡的 MAC 地址是一组 48 比特的数字,这 48 比特分为两个部分组成,前面的 24 比特用于表示以太网卡的 厂商 ID,后面的 24 比特是一组序列号,是由 厂商 进行 分 派的 ,就像我们身份证上的号码一样具有全球唯一性 。这样可以担保没有任何两块网卡的 MAC 地址是相同的(当然可以通过特殊的方法实现)。如果出现相同的地址,将发生问题,所有这一点是非常重要的。这 24 比特被称之为 OUI( Organizationally Unique Identifier)。 可是, OUI 的真实长度只有 22 比特,还 有两个比特用于其他:一个比特用来校验是否是广播或者多播地址,另一个比特用来分配本地执行地址(一些网络允许管理员针对具体情况再分配 MAC 地址)。 举个例子,你的 MAC 地址在网络中表示为 03 00 00 00 00 01 。第一个字节所包含的值二进制表示方法为 00000011。可以看到,最后两个比特都被置为真值。他指定了一个多播模式,向所有的计算机进行广播,使用了“ NetBEUI”协议(一般的,在 Windows 计算机的网络中,文件共享传输等是不使用 TCP/IP 协议的)。 12 3.2 功能说明 本次论文我 们只对抓取到的本机在网络中的通信数据 (如协议类型,源、目的地址和端嘉兴学院本科毕业生毕业论文(设计) 12 口、数据包的大小等 )加以分析,实现一个简单的网络嗅探器。一个窗体显示主页面,另一个页面显示详细的包信息。 详细信息页面, 显示的信息如下 : 开始时间:嗅探器抓取数据包的时间; 源端口:源目的 IP 地址 +端口号; 目的端口:目的 IP 地址 +端口号; 协议类型:只分析一下常见的类型,如 ICMP, IGMP,IP, TCP,UDP; 版本信息:协议的版本; 生存时间:数据包的生命周期; 报头大小:报文报首部大小; 报文总长:整个数据报的大小; 优先级别: 提供七个级别,分别是 Routine = 0,Priority = 1,Immediate = 2,Flash = 3,FlashOverride = 4,CRITICECP = 5,InternetworkControl = 6,NetworkControl = 7; 延迟: NormalDelay = 0、 LowDelay = 1; 吞吐量: NormalThroughput = 0,HighThroughput = 1; 可靠性: NormalReliability = 0,HighReliability = 1; 13 3.3 系统实施 (1) Microsoft Visual Studio 2005 中新建项目 Windows 应用程序 PackerMonitor。 (2)添加窗体文件和类文件,分别命名 PacketForm.cs、 PacketMonitorForm.cs 和Packet.cs、 PacketMonitor.cs。 PacketForm.cs 实现 详细信息 页面, PacketMonitorForm.cs实现 主 页面。 14 (3)编码,当使用 C#系统类提供的接口取到数据包的 比特 流时, 然后 对流的初始化处理 如下: public Packet(byte raw, DateTime time) if (raw = null) throw new ArgumentNullException(); if (raw.Length 4; 嘉兴学院本科毕业生毕业论文(设计) 13 m_HeaderLength = (raw0 & 0x0F) * 4; if (raw0 & 0x0F) 5); m_Delay = (Delay)(raw1 & 0x10) 4); m_Throughput = (Throughput)(raw1 & 0x8) 3); m_Reliability = (Reliability)(raw1 & 0x4) 2); m_TotalLength = raw2 * 256 + raw3; if (m_TotalLength != raw.Length) throw new ArgumentException(); / 无效的数据包大小 m_Identification = raw4 * 256 + raw5; m_TimeToLive = raw8; if (Enum.IsDefined(typeof(Protocol), (int)raw9) m_Protocol = (Protocol)raw9; else m_Protocol = Protocol.Other; m_Checksum = new byte2; m_Checksum0 = raw11; m_Checksum1 = raw10; m_SourceAddress = new IPAddress(BitConverter.ToUInt32(raw, 12); m_DestinationAddress = new IPAddress(BitConverter.ToUInt32(raw, 16); if (m_Protocol = Protocol.Tcp | m_Protocol = Protocol.Udp) m_SourcePort = rawm_HeaderLength * 256 + rawm_HeaderLength + 1; m_DestinationPort = rawm_HeaderLength + 2 * 256 + rawm_HeaderLength + 3; else m_SourcePort = -1; m_DestinationPort = -1; 15 嘉兴学院本科毕业生毕业论文(设计) 14 3.4 系统测试 网络嗅探器运行后的界面: 点击绿色按钮,开始抓取以太网中与本机通信的 IP 数据包 。 嘉兴学院本科毕业生毕业论文(设计) 15 点击红色按钮,停止监听。抓取到的信息如下图: 从图中可以看出,抓到的有 UDP 数据报, TCP 数据报, ICMP 数据报。鼠标双击列表行,分别得到详细的报文信息。 嘉兴学院本科毕业生毕业论文(设计) 16 UDP 协议详细的报文信息 如下 : 嘉兴学院本科毕业生毕业论文(设计) 17 TCP 协议详细的报文信息 如下 : 嘉兴学院本科毕业生毕业论文(设计) 18 ICMP 协议详细的报文信息 如下 : 嘉兴学院本科毕业生毕业论文(设计) 19 4 论文总结 网络嗅探器是一把双刃剑,网络安全管理人员利用它可保障网络畅通,防范网络被攻击,以达到维护网络安全的目的,但是到了入侵者手中,嗅探器成了捕获网络传输的机密、敏感数据的厉害武器。所以,作为网络安全管理人员,应该在技术上把握优势,挥舞这把双刃剑,在与入侵者的斗争中取得胜利。单纯的嗅探器的功能始终是局限的,例如无法穿过交换机、路由器,所以在大多数的情况下,嗅探器往往和其他手段结合起来使用,嗅探器和 spoof(欺骗 )以及其他技术手段结合在一起对网络构成的危害是巨大的。例如结 合 ARPSpoof(ARP欺骗 )、 MAC Flooding、 Fake the MAC Address(欺骗 MAC地址 )、 ICMP Router Advertisements、ICMP Redirect(ICMP重定向 )等技术手段就可以跨交换机、路由器实施嗅探了。其实嗅探器的目的说穿了只有一个,就是抓包,从抓包这个概念上引伸下去,所有为了能够抓到网络上的信息包而采用的技术都可以归入嗅探,单纯的嗅探是没有什么效率的。嗅探器技术被广泛应用于网络维护和管理方面,它工作的时候就像一部被动声纳,默默的接收看来自网络的各种信息,通过对这些数据的分析,网络管理员可以深入了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辽宁政法职业学院《交互界面原型》2023-2024学年第二学期期末试卷
- 西北大学《传感器技术于应用》2023-2024学年第二学期期末试卷
- 厦门华天涉外职业技术学院《模拟电子线路综合》2023-2024学年第二学期期末试卷
- 新疆第二医学院《幼儿教育名著选读》2023-2024学年第二学期期末试卷
- 贵州中医药大学《刑事法律精讲》2023-2024学年第二学期期末试卷
- 广西大学《Access数据库程序设计》2023-2024学年第二学期期末试卷
- (高清版)DG∕TJ 08-2165-2015 建设项目交通影响评价技术标准
- 数字通信原理(第3版)课件 第8章 数字载波调制传输
- 3 1《蜀道难》导学案 (含部分答案)统编版高中语文选择性必修下册
- 全套三级安全教育培训
- 书画素养测试题及答案
- 钢琴艺术培训管理制度
- 校园广播设备维保合同
- 反诈宣传课件小学生版
- 八年级数学上学期期中期末冲刺卷-特训10 一次函数 压轴题(八大母题型归纳)(原卷版)
- 胰腺假性囊肿治疗
- 浮生六记课件
- 2025年形势与政策-加快建设社会主义文化强国+第二讲中国经济行稳致远
- 求职趣味测试题及答案
- 中国企业可持续发展报告指南CASS-ESG 6.0-土木工程建筑业
- 2025浙江杭州学军中学保送生自主招生数学试卷(含答案详解)
评论
0/150
提交评论