网络嗅探器的设计与实现_第1页
网络嗅探器的设计与实现_第2页
网络嗅探器的设计与实现_第3页
网络嗅探器的设计与实现_第4页
网络嗅探器的设计与实现_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘 要:随着各种新的网络技术的不断出现、应用和发展,计算机网络的应用越来越广泛,其作用也越来越重要。Internet 的安全已经成为亟待解决的问题。多数黑客入侵成功并植入后门后的第一件事就是选择一个合适当前网络的嗅探器,以获得更多的受侵者的信息。嗅探器是一种常用的收集有用数据的方法,可以作为分析网络数据包的设备。网络嗅探器就是利用计算机的网络接口截获其他计算机的数据报文的一种工具,而且它与一般的键盘捕获程序不同。键盘捕获程序捕获在终端上输入的键值,而嗅探器捕获的则是真实的网络报文.关键词:Internet; 网络嗅探器; 网络数据包;网络报文;目录1 引 言 .11.1 开发背景 .11.2 开发意义 .12 系统分析 .22.1 设计概述 .22.1.1 实现目标 .22.1.2 开发环境 .22.2 开发相关技术简介 .22.2.1 C#语言简介 .22.2.2 嗅探技术简介 .32.2.3 TCP/IP 协议 .42.2.4 数据包简介 .62.3 可行性分析 .83 详细设计 .93.1 设计原理 .93.2 功能说明 .123.3 系统实施 .123.4 系统测试 .144 论文总结 .195 参考文献 .206 致 谢 .211第一章 引 言1.1 开发背景随着各种新的网络技术的不断出现、应用和发展,计算机网络的应用越来越广泛,其作用也越来越重要。但是由于计算机系统中软硬件的脆弱性和计算机网络的脆弱性以及地理分布的位置、自然环境、自然破坏以及人为因素的影响,不仅增加了信息存储、处理的风险,也给信息传送带来了新的问题。计算机网络安全问题越来越严重,网络破坏所造成的损失越来越大。Internet 的安全已经成为亟待解决的问题。多数黑客入侵成功并植入后门后的第一件事就是选择一个合适当前网络的嗅探器,以获得更多的受侵者的信息。嗅探器是一种常用的收集有用数据的方法,可以作为分析网络数据包的设备。网络嗅探器就是利用计算机的网络接口截获其他计算机的数据报文的一种工具,而且它与一般的键盘捕获程序不同。键盘捕获程序捕获在终端上输入的键值,而嗅探器捕获的则是真实的网络报文.如果把网络嗅探器放置于网络节点处,对网络中的数据帧进行捕获的一种被动监听手段,是一种常用的收集有用数据的方法,可以分析各种信息包并描述出网络的结构和使用的机器,由于它接收任何一个在同一网段上传输的数据包,所以也就存在着捕获密码、各种信息、秘密文档等一些没有加密的信息的可能性。这成为黑客们常用的扩大战果的方法,用来夺取其他主机的控制权。当然嗅探器的正当用处主要是网络管理人员分析网络的流量,以便找出所关心的网络中潜在的问题。例如,假设网络的某一段运行得不是很好,报文的发送比较慢,而我们又不知道问题出在什么地方,此时就可以用嗅探器截获网络中的数据包,分析问题的所在。 11.2 开发意义本次毕业设计是基于 C#的网络嗅探器的设计与实现,由于本人能力上的限度,只是对抓取到的本机在网络中的通信数据,比如说协议类型,源、目的地址和端口、数据包的大小等加以分析,而无法做到像 Sniffer 或者影音神探那种成熟的嗅探器所拥有的强大功能。作为从事网络技术方面的人员来说,要想有效地利用它、防范它,就得深入地学习、分析网络嗅探技术。最为重要的是,对于网络嗅探器的设计与实现,使我对网络通信,数据传输和网络信息安全等有了切身的体会与融入,同时也是对大学四年的学以致用,不断提高自我的一种有效途径。2第二章 系统分析2.1 设计概述基于 C#的网络嗅探器的设计与实现,首先就是要设定好实现的目标,确定开发的环境。有个合理的设计目标使得在设计过程中不茫然,思路更清楚。而一个好的开发环境对提高开发的效率同样起着很重要的作用。2.1.1 实现目标实现一个简单的网络嗅探器。具备以下功能:1、实现一个简洁的易操作的计算机操作用户界面2、实现抓取数据包的功能3、实现暂停抓取数据包的功能4、实现清空列表的功能5、实现显示数据包详细信息的显示功能2.1.2 开发环境Microsoft Visual Studio 2005,Windows XP2.2 开发相关技术简介本节将对本设计中用到的一些主要技术进行简单的介绍。2.2.1 C#语言简介C#是微软于 2000 年提出的一种源于 C+、类似于 Java 的面向对象编程语言,适合于分布式环境中的组件开发。C# 是专门为 .NET 设计的,也是.NET 编程的首选语言。C的产生是因为微软在.NET 上需要一种类 Java 的语言,而Java 本身却不能胜任这一需求。C太像 C+了,以至于它很难给人带来体验新事物时的那种兴奋。不过,绝大部分的 C+开发者将会因为 C保留了 C+中大部分其喜欢的、强大的、令人激动的功能而选择使用它。C通过避免一般的编程错误和自动资源管理,使得 C的稳定性得到了极大的增强。另外,C#语言功能强大且可以实现对象之间的转换,轻松实现各种对象转换成字符串。鉴于以上种种,我选用 C#作为我本次设计的开发语言。 232.2.2 嗅探技术简介数据在网络上是以很小的称为帧(Frame)的单位传输的,帧由几部分组成,不同的部分执行不同的功能。帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。就是在这个传输和接收的过程中,存在安全方面的问题。 每一个在局域网(LAN)上的工作站都有其硬件地址,这些地址惟一地表示了网络上的机器(这一点与 Internet 地址系统比较相似) 。当用户发送一个数据包时,这些数据包就会发送到 LAN 上所有可用的机器。 3图示:一个简单的局域网组成在一般情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的数据包则不予响应(换句话说,工作站 A 不会捕获属于工作站 B 的数据,而是简单地忽略这些数据) 。 嗅探器工作在网络的底层,在网络上监听数据包来获取敏感信息。从原理上来说,在一个实际的系统中,数据的收发是由网卡来完成的,网卡接收到传输来的数据,网卡内的单片程序接收数据帧的目的 MAC 地址,根据计算机上的网卡驱动程序设置的接收模式判断该不该接收,认为该接收就接收后产生中断信号通知 CPU,认为不该接收就丢掉不管,所以不该接收的数据网卡就截断了,计算机根本就不知道。对于网卡来说一般有四种接收模式:a)广播方式:该模式下的网卡能够接收网络中的广播信息。b)组播方式:设置在该模式下的网卡能够接收组播数据。c)直接方式:在这种模式下,只有目的网卡才能接收该数据。d)混杂模式:在这种模式下的网卡能够接收一切通过它的数据,而不管该数据是否是传给它的。首先,在以太网中是基于广播方式传送数据的,也就是说,所有的物理信号都要经过我的机器。其次,如果某个工作站的网络接口处于混杂模式,那么它4就可以捕获网络上所有的数据包和帧。Sniffor 程序是一种利用以太网的特性把网络适配卡(NIC,一般为以太网卡)置为混杂模式状态的工具,一旦网卡设置为这种模式,它就能接收传输在网络上的每一个信息包,而不管该数据是否传给它的。 4 2.2.3 TCP/IP 协议因特网是一个发展非常活跃的领域。在 1968 年,它的早期研究成果开始崭露头角,后来便出现了它的前身 ARPANET,ARPANET 为表现因特网特性的试验平台做出了重大贡献,1973 年,因特网正式面世。从那时起,关于因特网的研究和努力就一直没有间断过,其中大部分努力都是围绕着被称为网络的一个新型赛博空间所需要的标准而进行的。因特网协议及其标准与世界上任何其他事物的结构不同,它总是由一些机构或专业人士中的个人首先提出的。为了了解新的协议是如何出现并最终成为标准的,应该首先熟悉缩写词 RFC,即 Request for Comment。它的发展变迁过程要追溯到 1 9 6 9 年,起因是由于因特网的成员过于分散。正如这个词的字面意思所示,这些文档是一些实用文档、方法、测试结果、模型甚至完整的规范。因特网社会的成员可以阅读,也可以把意见反馈给 RFC,如果这些想法(或基本原理)被社会接受,就有可能成为标准。在因特网社会中关于 R F C 的用法(M O)以及如何操作并没有太大的变化。1969 年,当时只有一个网络,整个社会不超过一百位专业人员;随着因特网的飞速发展,因特网不但需要一个机构来集中和协调这些成果,并且需要制定一个最低要求的准则,至少能在成员之间进行有效的通信并取得相互了解。1974年前后,摆在 ARPANET 面前的形势很清晰了,通信联络需要进一步扩展,它需要的不仅是要能容纳成倍增加的通信媒体,而且要了解早已存在于群组中的许多领域的意义。这个领域需要一个管理者。大约在 1977 年,随着作为因特网实验备忘录(IEN)一部分的许多实验的进行,著名的 T C P / I P 协议获得了发展的动力。没过多久(1986 年) ,为了 RFC 讨论的需要,需要建立一个由工程技术人员组成的、对标准的发展负责的工作机构,以便有效地引导因特网的发展成长,这样,因特网工程工作组(INENG)成立了。今天,因特网工程部(IETF)和因特网研究部(TRTF)成为对因特网近期工程需求和远期研究目标负责、并担负重任的两个工作组。这两个组织曾直接隶属于国际网络执行委员会(IAB) ,现在属于因特网协会(1992 年成立) ,这个协会最终也是为因特网技术的发展负责的。但是,如果你是一个因特网上的常客,可能对缩略词 IAB 并不满意,的确,在 IAB 的逐步发展并走向成熟过程中,IAB 将它的名字改为“Internet 5Architecture 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 源地址做确认的服务将产生问题并且会被非法入侵。 TCP:如果 IP 数据包中有已经封好的 TCP 数据包,那么 IP 将把它们向上传送到 TCP 层。TCP 将包排序并进行错误检查,同时实现虚电路间的连接。TCP 数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。 TCP 将它的信息送到更高层的应用程序,例如 Telnet 的服务程序和客户程序。应用程序轮流将信息送回 TCP 层,TCP 层便将它们向下传送到 IP 层,设备驱动程序和物理介质,最后到接收方。 面向连接的服务(例如 Telnet、FTP、rlogin、X Windows 和 SMTP)需要高度的可靠性,所以它们使用了 TCP。DNS 在某些情况下使用 TCP(发送和接收域名数据库) ,但使用 UDP 传送有关单个主机的信息。6 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 的服务。 62.2.4 数据包简介 “包”(Packet)是 TCP/IP 协议通信传输中的数据单位,一般也称“数据包”。有人说,局域网中传输的不是“帧”(Frame)吗?没错,但是 TCP/IP 协议是工作在 OSI 模型第三层(网络层)、第四层(传输层)上的,而帧是工作在第二层(数据链路层)。上一层的内容由下一层的内容来传输,所以在局域网中, “包”是包含在“帧”里的。OSI(Open System Interconnection,开放系统互联)模型是由国际标准化组织(ISO)定义的标准,它定义了一种分层体系结构,在其中的每一层定义了针对不同通信级别的协议。OSI 模型有 5 层,1 到 5 层分别是:物理层、数据链路层、网络层、传输层、应用层。OSI 模型在逻辑上可分为两个部分:低层的 1 至 3 层关注的是原始数据的传输;高层的 4 至 5 层关注的是网络下的应用程序。 我们可以用一个形象一些的例子对数据包的概念加以说明:我们在邮局邮寄产品时,虽然产品本身带有自己的包装盒,但是在邮寄的时候只用产品原包装盒来包装显然是不行的。必须把内装产品的包装盒放到一个邮局指定的专用纸箱里,这样才能够邮寄。这里,产品包装盒相当于数据包,里面放着的产品相当于可用的数据,而专用纸箱就相当于帧,且一个帧中只有一个数据包。 “包”听起来非常抽象,那么是不是不可见的呢?通过一定技术手段,是可以感知到数据包的存在的。比如在 Windows 2000 Server 中,把鼠标移动到任务栏右下角的网卡图标上(网卡需要接好双绞线、连入网络),就可以看到“发送:包,收到:包”的提示。 (详见下图)7通过数据包捕获软件,也可以将数据包捕获并加以分析。 就是用网络嗅探器捕获数据包,可以查看捕获到的数据包的 MAC 地址、 IP 地址、协议类型端口号等细节。通过分析这些数据,网管员就可以知道网络中到底有什么样的数据包在活动了。数据包的结构非常复杂,不是三言两语能够说清的,在这里主要了解一下它的关键构成就可以了,这对于理解 TCP/IP 协议的通信原理是非常重要的。数据包主要由“目的 IP 地址” 、 “源 IP 地址” 、 “净载数据”等部分构成。数据包的结构与我们平常写信非常类似,目的 IP 地址是说明这个数据包是要发给谁的,相当于收信人地址;源 IP 地址是说明这个数据包是发自哪里的,相当于发信人地址;而净载数据相当于信件的内容。 正是因为数据包具有这样的结构,安装了 TCP/IP 协议的计算机之间才能相互通信。我们在使用基于TCP/IP 协议的网络时,网络中其实传递的就是数据包。比如说当你 上 网 打 开 网页 , 这 个 简 单 的 动 作 , 就 是 你 先 发 送 数 据 包 给 网 站 , 它 接 收 到 了 之 后 , 根 据你 发 送 的 数 据 包 的 IP 地 址 , 返 回 给 你 网 页 的 数 据 包 , 也 就 是 说 , 网 页 的 浏览 , 实 际 上 就 是 数 据 包 的 交 换 。 理解数据包,对于 网络管理的网络安全具有至关重要的意义。2.3 可行性分析可行性研究(Feasibility Study)是通过对项目的主要内容和配套条件,如市场需求、资源供应、建设规模、工艺路线、设备选型、环境影响、资金筹措、盈利能力等,从技术、经济、工程等方面进行调查研究和分析比较,并对项目建成以后可能取得的财务、经济效益及社会环境影响进行预测,从而提出该项目是否值得投资和如何进行建设的咨询意见,为项目决策提供依据的一种综合性的系统分析方法。可行性研究应具有预见性、公正性、可靠性、科学性的特点。 7当然这次论文的可行性研究并没有上述的如此意义重大,只是理清整个系8统分析和设计的大致过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。它的目的不是解决问题,而是确定问题是否值得去解决。当然在现阶段这样的信息安全背景下,网络嗅探器的研究与使用的价值是毋庸置疑的。不仅可以有效地诊断网络状况,更可以为信息安全战打攻坚战。第

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论