




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络与信息安全课程设计-网络嗅探器的设计与实现网络与信息安全课程设计专业班级:计算机学院网络工程06-2班学 号:310609040203姓 名:设计题目:网络嗅探器的设计与实现指导老师:日 期:2008年12月27日17网络嗅探器的设计与实现目 录摘要 2一、网络嗅探器的定义3二、网络嗅探器的作用4三、嗅探器的原理4 1、网络技术与设备简介4 2、网络监听原理5 3、嗅探器分类6 4、网络监听目的7四、嗅探器的扩展应用8五、嗅探器的简单用法8六、反嗅探技术10七、实现一个简单的嗅探器11八、总结16参考文献17网络嗅探器的设计与实现 摘要 随着网络技术的发展和网络应用的普及,越来越多的信息资源放在了互联网上,网络的安全性和可靠性显得越发重要。因此,对于能够分析、诊断网络,测试网络性能与安全性的工具软件的需求也越来越迫切。网络嗅探器具有两面性,攻击者可以用它来监听网络中数据,达到非法获得信息的目的,网络管理者可以通过使用嗅探器捕获网络中传输的数据包并对其进行分析,分析结果可供网络安全分析之用。 本文对网络嗅探技术进行了简要分析,研究了网络数据包的捕获机制,如winpcap、原始套接字。文中首先分析了嗅探的原理和危害,并介绍了几种常见的嗅探器,然后研究了入侵检测系统中使用的包捕获技术。本文利用原始套接字在windows平台下实现了一个网络嗅探器程序,完成了对数据包进行解包、分析数据包的功能。 一、什么是嗅探器 嗅探器,可以理解为一个安装在计算机上的窃听设备它可以用来窃听计算机在网络上所产生的众多的信息。简单一点解释:一部电话的窃听装置, 可以用来窃听双方通话的内容,而计算机网络嗅探器则可以窃听计算机程序在网络上发送和接收到的数据。 可是,计算机直接所传送的数据,事实上是大量的二进制数据。因此, 一个网络窃听程序必须也使用特定的网络协议来分解嗅探到的数据, 嗅探器也就必须能够识别出那个协议对应于这个数据片断,只有这样才能够进行正确的解码。 计算机的嗅探器比起电话窃听器,有他独特的优势: 很多的计算机网络采用的是“共享媒体。也就是说,你不必中断他的通讯,并且配置特别的线路,再安装嗅探器,你几乎可以在任何连接着的网络上直接窃听到你同一掩码范围内的计算机网络数据。我们称这种窃听方式为“基于混杂模式的嗅探”(promiscuous mode) 。 尽管如此,这种“共享” 的技术发展的很快,慢慢转向“交换” 技术,这种技术会长期内会继续使用下去, 它可以实现有目的选择的收发数据。二、网络嗅探器的作用嗅探器是网络的抓包工具,可以对网络中大量数据抓取,从而方便使用者对网络中用户的一些信息进行分析,所以,通常被黑客运用于网络攻击。我们如果也能掌握网络嗅探器的原理和设计,可以将它运用与网络故障检测、网络状况的监视,还可以加强企业信息安全防护。三、嗅探器的原理1网络技术与设备简介 首先需要讲述局域网设备的一些基本概念。 数据在网络上是以很小的称为帧(Frame)的单位传输的,帧由几部分组成,不同的部分执行不同的功能。帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。就是在这个传输和接收的过程中,嗅探器会带来安全方面的问题。 每一个在局域网(LAN)上的工作站都有其硬件地址,这些地址惟一地表示了网络上的机器(这一点与Internet地址系统比较相似)。当用户发送一个数据包时,这些数据包就会发送到LAN上所有可用的机器。 如果使用Hub/即基于共享网络的情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的数据包则不予响应(换句话说,工作站A不会捕获属于工作站B的数据,而是简单地忽略这些数据)。如果某个工作站的网络接口处于混杂模式(关于混杂模式的概念会在后面解释),那么它就可以捕获网络上所有的数据包和帧。 但是现代网络常常采用交换机作为网络连接设备枢纽,在通常情况下,交换机不会让网络中每一台主机侦听到其他主机的通讯,因此嗅探器技术在这时必须结合网络端口镜像技术进行配合。而衍生的安全技术则通过ARP欺骗来变相达到交换网络中的侦听。2网络监听原理 嗅探器程序是一种利用以太网的特性把网络适配卡(NIC,一般为以太网卡)置为杂乱(promiscuous)模式状态的工具,一旦网卡设置为这种模式,它就能接收传输在网络上的每一个信息包。 普通的情况下,网卡只接收和自己的地址有关的信息包,即传输到本地主机的信息包。要使嗅探器能接收并处理这种方式的信息,系统需要支持BPF,Linux下需要支持SOCKET一PACKET。但一般情况下,网络硬件和TCPIP堆栈不支持接收或者发送与本地计算机无关的数据包,所以,为了绕过标准的TCPIP堆栈,网卡就必须设置为我们刚开始讲的混杂模式。一般情况下,要激活这种方式,内核必须支持这种伪设备Bpfilter,而且需要root权限来运行这种程序,所以嗅探器需要root身份安装,如果只是以本地用户的身份进入了系统,那么不可能唤探到root的密码,因为不能运行嗅探器。 也有基于无线网络、广域网络(DDN, FR)甚至光网络(POS、Fiber Channel)的监听技术,这时候略微不同于以太网络上的捕获概念,其中通常会引入TAP (测试介入点)这类的硬件设备来进行数据采集。3. 嗅探器的分类 嗅探器分为软件和硬件两种,软件的嗅探器有 嗅探器 Pro、Network Monitor、PacketBone等,其优点是易于安装部署,易于学习使用,同时也易于交流;缺点是无法抓取网络上所有的传输,某些情况下也就无法真正了解网络的故障和运行情况。硬件的嗅探器通常称为协议分析仪,一般都是商业性的,价格也比较昂贵,但会具备支持各类扩展的链路捕获能力以及高性能的数据实时捕获分析的功能。 基于以太网络嗅探的嗅探器只能抓取一个物理网段内的包,就是说,你和监听的目标中间不能有路由或其他屏蔽广播包的设备,这一点很重要。所以,对一般拨号上网的用户来说,是不可能利用嗅探器来窃听到其他人的通信内容的。 4网络监听的目的 当一个黑客成功地攻陷了一台主机,并拿到了root权限,而且还想利用这台主机去攻击同一(物理)网段上的其他主机时,他就会在这台主机上安装嗅探器软件,对以太网设备上传送的数据包进行侦听,从而发现感兴趣的包。如果发现符合条件的包,就把它存到一个LOg文件中去。通常设置的这些条件是包含字“username”或“password”的包,这样的包里面通常有黑客感兴趣的密码之类的东西。一旦黑客截获得了某台主机的密码,他就会立刻进入这台主机。如果嗅探器运行在路由器上或有路由功能的主机上,就能对大量的数据进行监控,因为所有进出网络的数据包都要经过路由器。 嗅探器属于第M层次的攻击。就是说,只有在攻击者已经进入了目标系统的情况下,才能使用嗅探器这种攻击手段,以便得到更多的信息。 嗅探器除了能得到口令或用户名外,还能得到更多的其他信息,比如一个重要的信息、在网上传送的金融信息等等。嗅探器几乎能得到任何在以太网上传送的数据包。 四、嗅探器的扩展应用1、专用领域的嗅探器嗅探器被广泛应用到各种专业领域,例如FIX (金融信息交换协议)、MultiCast(组播协议)、3G (第三代移动通讯技术)的分析系统。其可以解析这些专用协议数据,获得完整的解码分析。2、长期存储的嗅探器应用由于现代网络数据量惊人,带宽越来越大。采用传统方式的嗅探器产品很难适应这类环境,因此诞生了伴随有大量硬盘存储空间的长期记录设备。例如nGenius Infinistream等。3、易于使用的嗅探器辅助系统由于协议解码这类的应用曲高和寡,很少有人能够很好的理解各类协议。但捕获下来的数据却非常有价值。因此在现代意义上非常流行如何把协议数据采用最好的方式进行展示,包括产生了可以把嗅探器数据转换成Excel的BoneLight类型的应用和把嗅探器分析数据进行图形化的开源系统PacketMap等。这类应用使用户能够更简明地理解嗅探器数据。五、嗅探器的一些简单用法假设有以下的设置:在一个子网中有两台主机,一台运行了嗅探器,我们称之为,另一台是,我们称之为。你希望检查嗅探器是否能运行sniffit:/#sniffit-d-p7-t 并且开另一个窗口:sniffit:/$7你可以看到嗅探器将你telnet到对方7号端口echo服务的包捕获了。你希望截获上的用户密码sniffit:/#主机的根用户声称有奇怪的FTP连接并且希望找出他们的击键sniffit:/#sniffit-p21-l0-t你希望能阅读所有进出的信件niffit:/#sniffit-p25-l0-b-t&sniffit:/#sniffit-p25-l0-b-s&你希望使用用户交互界面sniffit:/#sniffit-i有错误发生而且你希望截获控制信息sniffit:/#sniffit-Picmp-b-sGowildonscrollingthescreen.sniffit:/#sniffit-Pip-Picmp-Ptcp-p0-b-a-d-x-s与之效果相当的是sniffit:/#sniffit-Pipicmptcp-p0-b-a-d-x-s你可以用more66*读取下列方式记录下的密码sniffit:/#sniffit-p23-A.-t或者 sniffit:/#sniffit-p23-A-六、反嗅探技术 如何才能检测网内是否存在有嗅探程序? 理论上,嗅探程序是不可能被检测出来的,因为嗅探程序是一种被动的接收程序,属于被动触发的,它只会收集数据包,而不发送出任何数据,尽管如此,嗅探程序有时候还是能够被检测出来的。 一个嗅探程序,不会发送任何数据,但是当它安装在一台正常的局域网内的计算机上的时候会产生一些数据流。举个例子,它能发出一个请求,始DNS根据IP地址进行反相序列查找。 下面一种简单的检测方法: ping 方法 很多的嗅探器程序,如果你发送一个请求给哪台有嗅探程序的机器,它将作出应答 说明: 1. 怀疑IP地址为的机器装有嗅探程序,它的MAC地址确定为00-40-05-A4-79-32. 2. 确保机器是在这个局域网中间。3. 现在修改MAC地址为00-40-05-A4-79-33. 4. 现在用ping命令ping这个IP地址。 5. 没有任何人能够看到发送的数据包,因为每台计算机的MAC地址无法与这个数据包中的目地MAC不符,所以,这个包应该会被丢弃。 6. 如果看到了应答,说明这个MAC包没有被丢弃,也就是说,很有可能有嗅探器存在。 现在,这种方法已经得到了广泛的推崇和宣扬,新一代的黑客们也学会了在他们的代码中加入虚拟的MAC地址过滤器很多的计算机操作系统(比如Windows)都支持MAC过滤器(很多过虑器只检查MAC的第一个字节,这样一来,MAC地址FF-00-00-00-00-00和FF-FF-FF-FF-FF- FF就没有区别了。(广播地址消息会被所有的计算机所接收)。这种技术通常会用在交换模型的以太网中。当交换机发现一个未知的MAC地址的时候,它会执行类似“flood”的操作,把这个包发送给每个节点。 七、实现一个简单的网络嗅探器下面是一个MSN消息捕捉器的源代码#include #include #include #include #pragma comment( lib, ws2_32.lib )using namespace std;struct IPHeaderunsigned char mHeaderLengthAndVersion;unsigned char mTypeOfService;unsigned short mTotalLength;unsigned short mIdentifier;unsigned short mFragment;unsigned char mTTL;unsigned char mProtocolType;unsigned short mCheckSum;unsigned int mSourceIP;unsigned int mDestIP;int getHeaderLength() constreturn mHeaderLengthAndVersion & 0xf;struct TCPHeaderunsigned short mSourcePort;unsigned short mDestPort;unsigned int mSequence;unsigned int mAck;unsigned char mLengthAndReserve;unsigned char mFlags;unsigned short mWindow;unsigned short mCheckSum;unsigned short mUrgent;struct UDPHeaderunsigned short mSourcePort;unsigned short mDestPort;unsigned short mLength;unsigned short mCheckSum;struct ICMPHeaderunsigned char mType;unsigned char mCode;unsigned short mCheckSum;unsigned short mID;unsigned short mSequence;unsigned long mTimeStamp;void ProcessIPPacket( char*, int );void ProcessTCPPacket( char*, int );void ProcessUDPPacket( char*, int );void main( )WSADATA data;WSAStartup( MAKEWORD( 2, 0 ), &data );SOCKET rawSock = socket( AF_INET, SOCK_RAW, IPPROTO_IP );char name 1024 ;gethostname( name, sizeof( name ) );hostent* ent = gethostbyname( name );SOCKADDR_IN addr;addr.sin_family = AF_INET;addr.sin_port = htons( 8888 );memcpy( &addr.sin_addr.S_un.S_addr, ent-h_addr_list 0 , ent-h_length );bind( rawSock, (PSOCKADDR)&addr, sizeof( addr ) );DWORD dummy;WSAIoctl( rawSock, SIO_RCVALL, &dummy, sizeof( dummy ), &dummy, sizeof( dummy ), &dummy, NULL , NULL );for(;)vector vc( 128 * 1024 );ProcessIPPacket( &vc0, recv( rawSock, &vc0, (int)vc.size(), 0) );void ProcessIPPacket( char* packet, int size )IPHeader* header = (IPHeader*)packet;if( header-mProtocolType = IPPROTO_TCP )Pr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南省保山市2025年上半年事业单位公开遴选试题含答案分析
- 河北省阳原县2025年上半年公开招聘城市协管员试题含答案分析
- 河北省怀安县2025年上半年事业单位公开遴选试题含答案分析
- 2025版体育赛事组织委托与赞助商采购合同
- 2025版进口生鲜产品代理销售合同范本
- 2025版碳晶片工程安全风险评估与治理合同
- 2025年度私人商铺租赁合同(含能耗管理及环保责任)
- 2025版快递快递运输合同快递业务转包与分包规定
- 2025年度房地产公司员工劳动合同规范文本
- 2025年度绿色建筑企业法人股权转让与绿色建筑技术实施合同
- 网络摄像机-模组接口规格书精简板
- 社工政策与法规
- 绿茶多酚及超级灵芝萃取物与预防癌症之关系博士
- 小学语文人教二年级上册 我最喜爱的玩具
- 2021年成都中医药大学辅导员招聘笔试试题及答案解析
- 人身损害误工期护理期营养期评定规范
- 辽师大版三年级上册英语素材各单元单词带音标重点句子
- 高中英语3500词汇表
- 《绣球》课件
- “隆德”概念讲解—控制脑容量为目标控制颅内高压
- 实数单元测试卷含答案
评论
0/150
提交评论