本科毕业论文(设计)-MAC地址在攻防演绎中的作用_第1页
本科毕业论文(设计)-MAC地址在攻防演绎中的作用_第2页
本科毕业论文(设计)-MAC地址在攻防演绎中的作用_第3页
本科毕业论文(设计)-MAC地址在攻防演绎中的作用_第4页
本科毕业论文(设计)-MAC地址在攻防演绎中的作用_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

晋中学院本科毕业论文(设计)题目MAC地址在攻防演绎中的作用院系计算机科学与技术学院专业计算机科学与技术姓名学号XX】学习年限20XX年09月至2XXX年06月指导教师XXX职称副教授申请学位理学学士学位2010年5月18日Mac地址在攻防演绎中的作用摘要:目前,因为基于MAC攻击而导致企业网络瘫痪的例子举不胜举,很多企业面对这些攻击束手无策。基于MAC攻击对网络安全造成的巨大危害引起业界的充分重视,各大杀毒软件公司纷纷推出了自己的产品,各种针对基于MAC攻击的防火墙也随之出现。基于mac的攻击同时涉及到网络安全的两个方面,一方面基于mac的攻击可以使用户的访问受到限制;另一方面同时可以窃取用户之间以及用户与服务器之间所传递的数据和信息。本文采用C语言作为编程语言,Winpcap作为开发环境,系统主要实现了MAC地址泛红、ARP欺骗等功能。针对这些攻击技术,详细论述了在局域网中的防御措施。关键词:mac地址攻击;arp攻击;winpcap;网络安全

MacaddressintheinterpretationoftheroleofoffensiveanddefensiveAuthor’sName:Tutor:ABSTRACT:Atpresent,attacksonmacasaresultofthecorporatenetworkattacksparalyzedtheexamplelistgoeson,manyenterpriseshelplessinthefaceoftheseattacks.Withattacksonmaconthenetworksecurityofthegreatdangersarisingfromtheindustry'sfullattention,majorantivirussoftwarecompanieshavelaunchedtheirownproducts,andallkindsofattacksonmacagainstthefirewallalsowillbethere.Attacksonmacbasedonnetworksecurityalsoinvolvestwoaspects,bothonthemacattackallowsuserstoaccessrestricted;Theotherhand,usersalsocanstealandpassbetweentheuserandserverdataandinformation.ThisdesignusesClanguageasaprogramminglanguage,Winpcapasadevelopmentenvironmentandwritealocalareanetworktestsystem.SystemismainlyimplementedMACaddressredness,ARPdeceptionandotherfunctions,anddescribedindetailinthetextcorrespondingtoattackdefenses.

KEYWORDS:macaddressattack;arpattacks;winpcap;networksecurity目录引言 11论文背景知识介绍 21.1网络层次模型 21.2什么是MAC地址 21.3IP地址与MAC地址的区别 31.4为什么要用到MAC地址 41.5如何修改自己的MAC地址 42开发环境介绍 52.1Winpcap简介 52.2Winpcap的安装使用方法 52.3Winpcap的一些基本的功能的实现 53基于MAC的攻击的技术分析 73.1MAC攻击 73.1.1MAC地址欺骗 73.1.2MAC地址洪泛 83.2ARP攻击 93.2.1ARP协议 93.2.2ARP欺骗 93.2.3ARP恶作剧 103.2.4ARP洪泛 114对基于MAC攻击的防御措施 115结论 14参考文献 14致谢 14PAGE14引言网络技术的发展逐渐趋向成熟,应用也越来越广泛,但在其发展过程中出现了一个很大的制约瓶颈,这就是安全。而对于日益风行的各类木马病毒这样的隐形杀手,网络攻击则是人们能深刻体会而又无可奈何的诟病。本文针对网络攻击中的基于mac的攻击加以叙述分析,以求让广大朋友了解其运行机制,并让防御也寻之有道,从攻击中吸取教训,从防御中积累经验。1论文背景知识介绍1.1网络层次模型如今的网络是分层来实现的,就像是搭积木一样,先设计某个特定功能的模块,然后把模块拼起来组成整个网络。局域网也不例外,一般来说,在组网上我们使用的是IEEE802参考模型,从下至上分为:物理层、媒体接入控制层(MAC),逻辑链路控制层(LLC)。图1-1OSI网络七层模型标识网络中的一台计算机,一般至少有三种方法,最常用的是域名地址、IP地址和MAC地址,分别对应应用层、网络层、物理层。网络管理一般就是在网络层针对IP地址进行管理,但由于一台计算机的IP地址可以由用户自行设定,管理起来相对困难,MAC地址一般不可更改,所以把IP地址同MAC地址组合到一起管理就成为常见的管理方式。1.2什么是MAC地址MAC地址就是在媒体接入层上使用的地址,也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。MAC地址与网络无关,也即无论将带有这个地址的硬件(如网卡、集线器、路由器等)接入到网络的何处,都有相同的MAC地址,它由厂商写在网卡的BIOS里。MAC地址可采用6字节(48比特)或2字节(16比特)这两种中的任意一种。但随着局域网规模越来越大,一般都采用6字节的MAC地址。这个48比特都有其规定的意义,前24位是由生产网卡的厂商向IEEE申请的厂商地址,目前的价格是1000美元买一个地址块,后24位由厂商自行分配,这样的分配使得世界上任意一个拥有48位MAC地址的网卡都有唯一的标识。另外,2字节的MAC地址不用网卡厂商申请。MAC地址通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如:08:00:20:0A:8C:6D就是一个MAC地址,其中前6位16进制数08:00:20代表网络硬件制造商的编号,它由IEEE分配,而后3位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。每个网络制造商必须确保它所制造的每个以太网设备都具有相同的前三字节以及不同的后三个字节。这样就可保证世界上每个以太网设备都具有唯一的MAC地址。1.3IP地址与MAC地址的区别IP地址是指Internet协议使用的地址,而MAC地址是Ethernet协议使用的地址。IP地址与MAC地址之间并没有什么必然的联系,MAC地址是Ethernet网卡上带的地址,长度为48位。

每个Ethernet网卡生产厂家必须向IEEE组织申请一组MAC地址,在生产网卡时在网卡的串行EEPROM中写入一个唯一的MAC地址。任何两个Ethernet网卡的MAC地址,不管是哪一个厂家生产的都不应相同。Ethernet芯片厂家不必负责MAC地址的申请,MAC地址存在于每一个Ethernet包中,是Ethernet包头的组成部分,Ethernet交换机根据Ethernet包头中的MAC源地址和MAC目的地址实现包的交换和传递。

IP地址是Internet协议地址,每个Internet包必须带有IP地址,每个Internet服务提供商(ISP)必须向有关组织申请一组IP地址,然后一般是动态分配给其用户。IP地址现是32位长,正在扩充到128位。IP地址与MAC地址无关,因为Ethernet的用户,仍然可通过Modem连接Internet,取得一个动态的IP地址,这个地址每次可以不一致。IP地址通常工作于广域网,路由器处理的就是IP地址。MAC地址工作于局域网,局域网之间的互连一般通过现有的公用网或专用线路,需要进行网间协议转换。可以在Ethernet上传送IP信息,此时IP地址只是Ethernet信息包数据域的一部分,Ethernet交换机或处理器看不见IP地址,只是将其作为普通数据处理。1.4为什么要用到MAC地址这是由组网方式决定的,如今比较流行的接入Internet的方式(也是未来发展的方向)是把主机通过局域网组织在一起,然后再通过交换机和Internet相连接。这样一来就出现了如何区分具体用户,防止盗用的问题。由于IP只是逻辑上标识,任何人都随意修改,因此不能用来标识用户;而MAC地址则不然,它是固化在网卡里面的。从理论上讲,除非盗来硬件(网卡),否则是没有办法冒名顶替的具体的通信方式:接收过程,当有发给本地局域网内一台主机的数据包时,交换机接收下来,然后把数据包中的IP地址按照“表”中的对应关系映射成MAC地址,转发到对应的MAC地址的主机上,这样一来,即使某台主机盗用了这个IP地址,但由于他没有这个MAC地址,因此也不会收到数据包。发送过程和接收过程类似,限于篇幅不叙述1.5如何修改自己的MAC地址MAC地址是固化在网卡中的,MAC地址具有唯一性,难道没有办法更改了么?不是的,我们完全不用修改EPROM的内容,而只通过修改存储单元的内容就能达到修改MAC地址的目的。例如在Windows中可以通过注册表来修改。在“开始”菜单的“运行”中输入regedit.exe,展开注册表到:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}子键,在子键下的0000,0001,0002等分支中查找DriverDesc(如果你有一块以上的网卡,就有0001,0002……在这里保存了有关你的网卡的信息,其中的DriverDesc的内容就是你的网卡的信息描述,比如我的网卡就是Intel21041basedEthernetController),在这里假设你的网卡在0000子键。在0000子键下添加一个字符串,命名为“NetworkAddress”,键值为修改后的MAC地址,要求为连续的12个16进制数。然后在“0000”子键下的NDI\params中新建一项名为NetworkAddress的子键,在该子键下添加名为“default”的字符串,键值为修改后的MAC地址。在NetworkAddress的子键下继续建立名为“ParamDesc”的字符串,其作用为指定NetworkAddress的描述,其值可为“MACAddress”。这样以后打开网络邻居的“属性”,双击相应的网卡就会发现有一个“高级”设置,其下存在MACAddress的选项,它就是你在注册表中加入的新项NetworkAddress,以后只要在此修改MAC地址就可以了。关闭注册表,重新启动,你的网卡地址已改。打开网络邻居的属性,双击相应网卡项会发现有一个MACAddress的高级设置项,用于直接修改MAC地址。当然,你还可以用工具软件来修改网卡的MAC地址,如MAC2001这款软件就可以达到我们的目的。2开发环境介绍2.1Winpcap简介Winpcap是UNIX下的libpcap移植到windows下的产物,他是一个freeandopensource的项目。Winpcap工作于驱动(Driver)层,所以能以很高的效率进行网络操作。Winpcap提供了以下强大的功能:(1).捕获原始的数据包(2).设置filter,只捕获自己敢兴趣的数据包(3).方便的把捕获的数据包输出到文件和从文件输入(4).发送原始的数据包(5).统计网络流量2.2Winpcap的安装使用方法(1).到http://winpcap.polito.it下载winpcap的安装包,程序员开发包。(2).执行安装包,这样你的机子就能运行winpcap程序了(3).解压开发包,在VC的option的include和lib中加入winpcap的include和lib(4).在你的程序中加入#include<pcap.h>,#include<remote-ext.h>.然后在工程的setting中加入预定义宏:WPCAP,HAVE_REMOTE.导入wpcap.lib库(5).就可以编写wpcap程序了2.3Winpcap的一些基本的功能的实现(1).捕获数据包<1>.枚举所有的可用的设备[pcap_findalldevs_ex](可选)<2>.通过名字打开一个设备[pcap_open()]在这里可以打开一个文件,只是在打开这个文件之前需要通过pcap_createsrcstr创建相应的namestring<3>.设置Filter[pcap_compile,pcap_setfilter](可选)<4>.捕获数据有几种捕获数据的方法(捕获数据的数据都是最原始的数据包,即包含数据链路层的数据头)a.是以回调的方式[pcap_loop,pcap_dispatch()].这两种方法基本相同,底层收集数据包,当满足一定的条件(timeout或者缓冲区满),就会调用回调函数,把收集到的原始数据包s,交给用户。他们返回的数据缓冲区包含多个包b.pcap_next_ex()的方式每当一个包到到达以后,pcap_next_ex就会返回,返回的数据缓冲区里只包涵一个包。(2).发送包Winpcap中有发送单个包和发送多个包的方法。这里只说说发送单个包<1>.通过名字打开一个设备[pcap_open]<2>.自己构造一个原始数据包(这个数据包会不经过任何处理就发送出去,所以必须把包中的各个字段设置好。另外这个数据包是包含数据链路层报头的)<3>.使用pcap_sendpacket()发送数据包(3).统计网络流量<1>.通过名字打开一个设备[pcap_open]通过read_timeout来设置统计的时间间隔<2>.设置filter[pcap_compile,pcap_setfilter](可选)<3>.设置设备的为统计模式[pcap_setmode(MODE_STAT);]<4>.开始统计,pcap_loop/pcap_dispatch()3基于MAC的攻击的技术分析3.1MAC攻击3.1.1MAC地址欺骗将合法的MAC地址修改成不存在的MAC地址或其他计算机的MAC地址,从而隐藏自己真实的MAC,来达到一些不可告人的目的,这就是MAC地址欺骗。图3-1修改网卡MAC地址在WINXP,在"网上邻居"图标上点右键,选择"属性",出来一个"网络"对话框,在"配置"框中,双击你要修改的网卡,出来一个网卡属性对话框。在"高级"选项中,也是点击"属性"标识下的"NetworkAddress"项,在右边的两个单选项中选择上面一个,再在框中输入你要修改的网卡MAC地址,点"确定"后,系统会提示你重新启动。重新启动后,你的网卡地址就告修改成功!!如果你想把网卡的MAC地址恢复原样,只要再次把"NetworkAddress"项右边的单选项选择为下面一个"没有显示"再重新启动即可。在WIN2000、XP下面是选择"不存在",当然也不用重新启动了。3.1.2MAC地址洪泛交换机内部的MAC地址表空间是有限的,MAC攻击会很快占满交换机内部MAC地址表,使得单播包在交换机内部也变成广播包向同一个VLAN中所有端口转发,每个连在端口上的客户端都可以受到该报文,交换机变成了一个Hub,用户的信息传输也没有安全保障了。图3-2MAC地址泛洪基于以上原理,我们会发现一个非常有趣的现象。某台PC不断发送去往未知目的地的数据帧,且每个包的源MAC地址都不同,当这样的数据包发送的速度足够快之后,快到在刷新时间内将交换机的CAM表迅速填满。CAM表被这些伪造的MAC地址占据,真实的MAC地址条目却无法进入CAM表。那么任何一个经过交换机的正常单播数据帧都会以广播帧的形式来处理。图3-3攻击者利用抓包软件盗取用户信息3.2ARP攻击3.2.1ARP协议在以太网中传输的数据包是以太包,而以太包的寻址是依据其首部的物理地址(MAC地址)。仅仅知道某主机的逻辑地址(IP地址)并不能让内核发送一帧数据给此主机,内核必须知道目的主机的物理地址才能发送数据。ARP协议的作用就是在于把逻辑地址变成物理地址,也既是把32bit的IP地址变换成48bit的以太地址。每个主机都有一个ARP高速缓存,此缓存中记录了最近一段时间内其它IP地址与其MAC地址的对应关系。如果本机想与某台主机通信,则首先在ARP高速缓存中查找此台主机的IP和MAC信息,如果存在,则直接利用此MAC地址构造以太包;如果不存在,则像本网络上每一个主机广播一个ARP请求包,其意义是“如果你有此IP地址,请告诉我你的MAC地址”,目的主机受到此请求包的后,发送一个ARP响应包,本机受到此响应包后,把相关的信息记录在ARP高速缓存中。3.2.2ARP欺骗按照RFC的规定,PC在发ARP响应时,不需要一定要先收到ARP请求报文,局域网中任何一台PC都可以向其网络内其它PC通告:自己就是PCAMACA的对应关系,这就给攻击者带来了可乘人之危的漏洞!利用上面讲到的ARP漏洞,发送虚假的ARP请求报文和响应报文,报文中的源IP和源MAC均为虚假的,扰乱局域网中被攻击PC中保留的ARP表,使得网络中被攻击PC的流量都可流入到攻击者手中。图3-4ARP欺骗3.2.3ARP恶作剧ARP恶作剧:和ARP欺骗的原理一样,报文中的源IP和源MAC均为虚假的,或错误的网关IP和网关MAC对应关系。它的主要目的不是窃取报文,而是扰乱局域网中合法PC中保存的ARP表,使得网络中的合法PC中保存的ARP表,使得网络中的合法PC无法正常上网、通讯中断。图3-5ARP恶作剧3.2.4ARP洪泛ARP洪泛:网络病毒利用ARP协议,在网络中大量发送伪造ARP报文,扰乱网络中主机和设备的ARP缓存,导致无法正常访问网络的攻击行为。相关病毒:TrojnaDropper.Win32.Juntador.cWin32.Troj.Mr2Win32.Troj.Zypsw.33952网络设备在处理ARP报文时需要占用系统资源,同时因为系统内存和查找ARP表效率的要求,一般网络设备会限制ARP表的大小。攻击者就利用这一点,通过伪造大量源IP地址变化的ARP报文,使设备ARP表溢出,合法用户的ARP报文不能生成有效的ARP表项,导致正常通信中断。另外,通过向设备发送大量目标IP地址不能解析的IP报文,使设备反复地对目标IP地址进行解析,导致CPU负荷过重,也是泛洪攻击的一种。4对基于MAC攻击的防御措施研究了很多MAC攻击和ARP攻击后对外部网络的联系方式,发现他们总是和制造者的邮箱有着千丝万缕的联系,如今的ARP病毒攻击与制造者的经济利益密不可分。比如局域网内某台主机感染ARP木马程序时,会欺骗局域网内所有主机和路由器,让所有上网的流量必须经过病毒主机。其他用户原来直接通过路由器上网,现在却要通过病毒主机过滤数据,切换的时候用户会断一次线。切换到病毒主机过滤后,如果用户已经登录了某些游戏或者网上银行服务器,那么病毒主机就会经常伪造断线的假象,用户就得重新登录服务器,此过程就是病毒主机盗取用户账户和密码的过程。

(1).针对MAC的攻击,有如下防范:<1>.MAC静态地址锁<2>.802.1×自动绑定MAC地址<3>.限定交换机某个端口上可以学习的MAC数量图4-1ARP攻击防范示意图(2).针对ARP的攻击,有如下防范:<1>.用户端绑定在用户端计算机上绑定交换机网关的IP和MAC地址。首先,要求用户获得交换机网关的IP地址和MAC地址,用户在DOS提示符下执行arp-a命令,具体如下:C:\DocumentsandSettings\user>arp-aInterface:0x2InternetAddressPhysicalAddressType5400-05-0F-ED-1D-5Bdynamic其中54和00-05-0F-ED-1D-5B分别为网关的IP地址和MAC地址,因用户所在的区域、楼体和交换机不同,其对应网关的IP地址和MAC地址也不相同。编写一个批处理文件arp.bat,实现将交换机网关的MAC地址和网关的IP地址的绑定,内容如下:@echooffarp-darp-s5400-05-0F-ED-1D-5B用户应该按照第一步中查找到的交换机网关的IP地址和MAC地址,填入arp-s后面即可,同时需要将这个批处理软件拖到“windows--开始--程序--启动”中,以便用户每次开机后计算机自动加载并执行该批处理文件,对用户起到一个很好的保护作用。<2>.网管交换机端绑定在核心交换机上绑定用户主机的IP地址和网卡的MAC地址,同时在边缘交换机上将用户计算机网卡的MAC地址和交换机端口绑定的双重安全绑定方式。IP和MAC地址的绑定。在核心交换机上将所有局域网络用户的IP地址与其网卡MAC地址一一对应进行全部绑定。这样可以极大程度上避免非法用户使用ARP欺骗或盗用合法用户的IP地址进行流量的盗取。MAC地址与交换机端口的绑定。根据局域网络用户所在的区域、楼体和用户房间所对应的交换机端口号,将用户计算机网卡的MAC地址和交换机端口绑定。此方案可以防止非法用户随意接入网络端口上网。网络用户如果擅自改动本机网卡的MAC地址,该机器的网络访问将因其MAC地址被交换机认定为非法而无法实现上网,自然也就不会对局域网造成干扰了。<3>.采用VLAN技术隔离端口局域网的网络管理员可根据本单位网络的拓卜结构,具体规划出若干个VLAN,当管理员发现有非法用户在恶意利用ARP欺骗攻击网络,或因合法用户受病毒ARP病毒感染而影响网络时,网络管理员可利

温馨提示

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

评论

0/150

提交评论