网络嗅探器的设计与实现.doc
《网络嗅探器的设计与实现.doc》由会员分享,可在线阅读,更多相关《网络嗅探器的设计与实现.doc(30页珍藏版)》请在咨信网上搜索。
1、XX理工大学计算机科学与技术学院课程设计报告2012 2013学年第一学期课程名称 网络安全 设计题目 网络嗅探器设计与实现 姓 名 xxxxxxxxxx 学 号 XXXXXXXXXXX 专业班级 XXXXXXXXXX 指导教师 xxxxxxxxxxx 2013 年 1 月 2 日简单的网络嗅探器摘 要计算机网络嗅探器是可以窃听计算机程序在网络上发送和接收到的数据,程序实现了对抓取到的本机在网络中的通信数据的协议类型、源地址、目的地址、端口和数据包的大小加以简单的分析,改程序应用C#语言编写,实现了一个简单的网络嗅探功能。网络嗅探器具有两面性,攻击者可以用它来监听网络中数据,达到非法获得信息的
2、目的,网络管理者可以通过使用嗅探器捕获网络中传输的数据包并对其进行分析,分析结果可供网络安全分析之用。本文对网络嗅探技术进行了简要分析,研究了网络数据包的捕获机制。文中首先分析了嗅探的原理和危害并介绍了几种常见的嗅探器,然后研究了入侵检测系统中使用的包捕获技术.利用原始套接字在windows 平台下实现了一个网络嗅探器程序,完成了对数据包进行解包、分析数据包的功能。关键词:网络嗅探器;发送和接受到的数据;协议类型;源地址;目地地址;端口和数据包;分析;C言语目录一 引言1。1 基本原理二 基本原理2.1概述2.2作用2。3分类2.4可能造成的危害2.5基本工作原理2。6工作环境三需求分析3.1
3、需求说明3。2需求分析四概要设计4。1编程环境4。2模块分析五详细设计5。1嗅探器的具体实现过5。2主要数据结构六嗅探器的实现与测试6。1实现与测试6.2实验体会七附录(主要代码)一、 引言1。1基本原理 网络安全的现状随着各种新的网络技术的不断出现、应用和发展,计算机网络的应用越来越广泛,其作用也越来越重要.但是由于计算机系统中软硬件的脆弱性和计算机网络的脆弱性以及地理分布的位置、自然环境、自然破坏以及人为因素的影响,不仅增加了信息存储、处理的风险,也给信息传送带来了新的问题。计算机网络安全问题越来越严重,网络破坏所造成的损失越来越大。Internet 的安全已经成为亟待解决的问题二、网络嗅
4、探器的基本原理2.1概述 网络嗅探器又称为网络监听器,简称为Sniffer子系统,放置于网络节点处,对网络中的数据帧进行捕获的一种被动监听手段,是一种常用的收集有用数据的方法,这些数据可以是用户的账号和密码,可以是一些商用机密数据等等。他广泛地应用于流量分析、安全监控、网管分析、防火墙等的实现中。Sniffer是利用计算机的网络接口截获目的地为其他计算机的数据报文的一种工具。Sniffer的正当用处主要是分析网络的流量,以便找出所关心的网络中潜在的问题.例如,假设网络的某一段运行得不是很好,报文的发送比较慢,而我们又不知道问题出在什么地方,此时就可以用嗅探器截获网络中的数据包,分析问题的所在。
5、而嗅探器也可作为攻击工具被黑客所利用为其发动进一步的攻击提供有价值的信息。2.2作用 嗅探器是网络的抓包工具,可以对网络中大量数据抓取,从而方便使用者对网络中用户的一些信息进行分析,所以,通常被黑客运用于网络攻击.我们如果也能掌握网络嗅探器的原理和设计,可以将它运用与网络故障检测、网络状况的监视,还可以加强企业信息安全防护。2。3分类Sniffer分为软件和硬件两种,软件的Sniffer有NetXray、Packetboy、Netmonitor等,其优点是物美价廉,易于学习使用,同时也易于交流;缺点是无法抓取网络上所有的传输,某些情况下也就无法真正了解网络的故障和运行情况。硬件的Sniffer
6、通常称为协议分析仪,一般都是商业性的,价格也比较贵。实际上本文中所讲的Sniffer指的是软件。它把包抓取下来,然后打开并查看其中的内容,可以得到密码等。Sniffer只能抓取一个物理网段内的包,就是说,你和监听的目标中间不能有路由或其他屏蔽广播包的设备,这一点很重要。所以,对一般拨号上网的用户来说,是不可能利用Sniffer来窃听到其他人的通信内容的。2。4可能造成的危害sniffing是作用在网络基础结构的底层。通常情况下,用户并不直接和该层打交道,有些甚至不知道有这一层存在.所以,应该说snffer的危害是相当之大的,通常,使用sniffer是在网络中进行欺骗的开始。它可能造成的危害:嗅
7、探器能够捕获口令.这大概是绝大多数非法使用sniffer的理由,sniffer可以记录到明文传送的userid和passwd。能够捕获专用的或者机密的信息.比如金融帐号,许多用户很放心在网上使用自己的信用卡或现金帐号,然而sniffer可以很轻松截获在网上传送的用户姓名、口令、信用卡号码、截止日期、帐号和pin.比如偷窥机密或敏感的信息数据,通过拦截数据包,入侵者可以很方便记录别人之间敏感的信息传送,或者干脆拦截整个的email会话过程。可以用来危害网络邻居的安全,或者用来获取更高级别的访问权限。窥探低级的协议信息。这是很可怕的事,通过对底层的信息协议记录,比如记录两台主机之间的网络接口地址、
8、远程网络接口IP地址、IP路由信息和TCP连接的字节顺序号码等。这些信息由非法入侵的人掌握后将对网络安全构成极大的危害,通常有人用sniffer收集这些信息只有一个原因:他正要进行一次欺骗(通常的IP地址欺骗就要求你准确插入TCP连接的字节顺序号).事实上,如果你在网络上存在非授权的嗅探器就意味着你的系统已经暴露在别人面前了。简单的放置一个嗅探器并将其放到随便什么地方将不会起到什么作用.将嗅探器放置于被攻击机器或网络附近,这样将捕获到很多口令,还有一个比较好的方法就是放在网关上。sniffer通常运行在路由器,或有路由器功能的主机上。这样就能对大量的数据进行监控。sniffer属第二层次的攻击
9、。通常是攻击者已经进入了目标系统,然后使用sniffer这种攻击手段,以便得到更多的信息.如果这样的话就能捕获网络和其他网络进行身份鉴别的过程2。5基本工作原理网络嗅探器利用的是共享式的网络传输介质。共享即意味着网络中的一台机器可以嗅探到传递给本网段(冲突域)中的所有机器的报文.网络嗅探器通过将网卡设置为混杂模式来实现对网络的嗅探。一个实际的主机系统中,数据的收发是由网卡来完成的,当网卡接收到传输来的数据包时,网卡内的单片程序首先解析数据包的目的网卡物理地址,然后根据网卡驱动程序设置的接收模式判断该不该接收,认为该接收就产生中断信号通知CPU,认为不该接收就丢掉数据包,所以不该接收的数据包就被
10、网卡截断了,上层应用根本就不知道这个过程。CPU如果得到网卡的中断信号,则根据网卡的驱动程序设置的网卡中断程序地址调用驱动程序接收数据,并将接收的数据交给上层协议软件处理。下面给出一个简单的图示,简单理解数据传送的原理:_/.。.。.。/。.Internet。+-+-+.。.。.。.。.。+-+UserA-路由.。UserB+-+-+。.。.。.+.。.。.。./-/+-+嗅探器+-+UserAIP地址:10。0.0.23UserBIP地址:192。168.100。54现在知道UserA要于UserB进行计算机通讯,UserA需要为10.0.0。23到192。168.100.54的通讯建立一个
11、IP包。这个IP包在网络上传输,它必须能够穿透路由器。因此,UserA必须首先提交这个包给路由器。由每个路由器考查目地IP地址然后决定传送路径。UserA所知道的只是本地与路由的连接,和UserB的IP地址。UserA并不清楚网络的结构情况和路由走向.UserA必须告诉路由预备发送的数据包的情况,以太网数据传输结构大概是这样的:+-+-+-+-+目标MAC+-+-+-+-+-+源MAC+-+-+-+-+0800+-+-+.。IP包。.+-+-+-+CRC校验+-+-+-+理解一下这个结构,UserA的计算机建立了一个包假设它由100个字节的长度(我们假设一下,20个字节是IP信息,20个字节是
12、TCP信息,还有60个字节为传送的数据)。现在把这个包发给以太网,放14个字节在目地MAC地址之前,源MAC地址,还要置一个0x0800的标记,他指示出了TCP/IP栈后的数据结构。同时,也附加了4个字节用于做CRC校验(CRC校验用来检查传输数据的正确性)。现在发送数据到网络.所有在网内的计算机通过适配器都能够发现这个数据片,其中也包括路由适配器,嗅探器和其他一些机器。通常,适配器都具有一块芯片用来做结构比较的,检查结构中的目地MAC地址和自己的MAC地址,如果不相同,则适配器会丢弃这个结构.这个操作会由硬件来完成,所以,对于计算机内的程序来说,整个过程时毫无察觉的。当路由器的以太网适配器发
13、现这个结构后,它会读取网络信息,并且去掉前14个字节,跟踪4个字节。查找0x8000标记,然后对这个结构进行处理(它将根据网络状况推测出下一个最快路由节点,从而最快传送数据到预定的目标地址)。设想,只有路由机器能够检查这个结构,并且所有其他的机器都忽略这个结构,则嗅探器无论如何也无法检测到这个结构的。sniffer工作在网络环境中的底层,它会拦截所有的正在网络上传送的数据,并且通过相应的软件处理,可以实时分析这些数据的内容,进而分析所处的网络状态和整体布局。值得注意的是:sniffer是极其安静的,它是一种消极的安全攻击。2。6工作环境snifffer就是能够捕获网络报文的设备。嗅探器的正当用
14、处在于分析网络的流量,以便找出所关心的网络中潜在的问题。例如,假设网络的某一段运行得不是很好,报文的发送比较慢,而我们又不知道问题出在什么地方,此时就可以用嗅探器来作出精确的问题判断。嗅探器在功能和设计方面有很多不同.有些只能分析一种协议,而另一些可能能够分析几百种协议。一般情况下,大多数的嗅探器至少能够分析下面的协议:1.标准以太网2.TCP/IP3.IPX4.DECNet三需求分析3.1需求说明实现Sniffer的基本功能。Sniffer是一种用于监测网络性能、使用情况的工具。能够侦听所有进出本主机的数据包,完整显示数据包网络层和传输层(ICMP、IP、TCP和UDP)的头信息。比如,对I
15、P头而言,需要显示版本、头长度、服务类型、数据包长度、标识、DF/MF标志、段内偏移、生存期、协议类型、源目的IP地址、选项内容。要求显示数据的实际含义;侦听来源于指定IP地址的数据,显示接收到的TCP数据包的全部实际内容.需要考虑一个TCP包划分为多个IP包传输的情况;功能验证手段:在运行Sniffer的同时,执行标准的Ping、Telnet和浏览网页等操作,检查Sniffier能否返回预期的结果。3.2 需求分析有于水平有限,不可能实现像Sniffer或者影音神探那样复杂的设置和分析,所以我们只对抓取到的本机在网络中的通信数据(如协议类型,源、目的地址和端口、数据包的大小等)加以分析,实现
16、一个简单的网络嗅探器。一个窗体显示主页面,另一个页面显示详细的包信息。详细信息页面,我们显示一下信息:开始时间:嗅探器抓取数据包的时间;源端口:源目的IP地址+端口号;目的端口:目的IP地址+端口号;协议类型:只分析一下类型,GPG,ICMP,IDP,IGMP,IP,ND,PUP,TCP,UDP,其他的不再分析;版本信息:协议的版本;生存时间:;报头大小:报文报首部大小;报文总长:整个数据报的大小;优先级别:提供七个级别,分别是Routine=0,Priority=1,Immediate=2,Flash=3,FlashOverride=4,CRITICECP=5,InternetworkCon
17、trol=6,NetworkControl=7;延迟:NormalDelay=0、LowDelay=1;吞吐量:NormalThroughput=0,HighThroughput=1;可靠性:NormalReliability=0,HighReliability=1;四、概要设计4.1编程环境本软件是在VC+环境下编写,使用WinPcap中定义的头文件和lib文件为支持,运用WinPcap提供的数据包捕获程序执行核心操作。4。2模块分析(1)本软件使用的主要模块及其功能如下:1 线程控制模块2 抓包模块3 数据包分析模块(2)模块间的调用关系如下:开启线程关闭线程抓包解包五、详细设计5.1嗅探
18、器的具体实现过程程序在执行过程中有两个核心的工作,一是调用Winpcap函数库实现下层抓包。二是对抓到的包文进行分析。下面分别列出两个核心过程的基本算法与相关的实现代码。抓包算法:第一:初始化Winpcap开发库第二:获得当前的网卡列表,同时要求用户指定要操作的网卡第三:获得当前的过滤规则,可为空第四:调用库函数,pcap_loop(),同时并指定其回调函数,其中其回调函数为数据包分析过程。分析算法:第一:得到数据包,先将其转存到内存里,以备以后再用。第二:分析当前的数据包,分析过程如下:1. 数据包的前14个字节(Byte)代表数据链路层的报文头,其报文格式是前6Byte为目的MAC地址,随
19、后的6个Byte为源Mac地址,最后的2Byte代表上层协议类型这个数据很重要,是我们分析上层协议的依据.2. 根据1所分析到的协议类型进行类似1的迭代分析。这样就可以得到各层中的报文头信息和数据信息。第三:结束本次分析。5。2主要模块清单我们使用了MFC人机交互界面完成该功能的设置,其主要函数如下(详细代码见附录):AdapaterSelection.cpp/网卡配置选择函数ARPPacket.cpp/ARP协议包函数CapturePacket。cpp/捕获包协议CapturePacketDlg.cpp/捕获包协议对话框DirDialog.cpp/目标文件函数FilterDl。cpp/文件协
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 嗅探器 设计 实现
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。