ARP和ARP欺骗ARP•ARP是处于网络层的IP协议的辅助协议•ARP:地址解析协议AddressResolutionProtocol•网络层在传递信息包时,利用网络层地址(如:IP地址)来识别目标设备•数据链路层在传递信息包时,利用数据链路层地址(以太网中使用MAC地址)来识别目标设备地址解析协议ARP•IP地址是网络层的概念,IP数据包要在数据链路层上传输,必须使用数据链路层地址,在以太网上,数据链路层使用的是48位的MAC地址•网络层传递信息包给数据链路层时,必须先取得目标设备的MAC地址•在TCP/IP协议中使用地址解析协议ARP来取得网络层地址(IP地址)对应的数据链路层地址(MAC地址)32位IP地址48位MAC地址ARPARP运作方式•网络上设备的IP地址与MAC地址间的对应关系,并未集中记录在某个数据库中,因此,ARP欲取得某设备的MAC地址时,必须直接向该设备询问•ARP的整个运作过程由ARP请求和ARP应答两种数据包组成•在一个网段中有A、B两台主机,A主机已经知道B主机的IP地址,A要向B传送IP信息包时,此时必须先利用ARP协议取得B主机的MAC地址ARP运作方式•ARP请求:A发出ARP请求包广播到网段上所有计算机(以太网广播包的目标MAC地址:FF-FF-FF-FF-FF-FF),该网段上的每一台计算机都会收到这一信息包•ARP请求信息包中除包括要解析对象(B主机)的IP地址外,还会包含A主机的IP地址和MAC地址ARP请求ARP请求ARP运作方式•ARP应答:网段内所有主机都会收到此ARP请求的广播信息包,并与自身的IP地址对比,确定自己是否为要解析的对象,只有B主机是要解析的对象,因此B主机发送ARP应答包,通知A主机自己的MAC地址ARP应答ARP应答ARP运作方式•因为B主机已经从ARP请求信息包得知A主机的IP地址与MAC地址,ARP应答包就不必再使用广播方式,可直接指定A主机的MAC地址为目标地址•同时B主机将A主机的MAC地址存入ARP缓存,以备将来使用•A主机得到B主机的MAC地址后,把它作为以太网数据帧的目标地址向B主机发送数据•同时A主机将刚刚得到的B主机的MAC地址存入ARP缓存跨网段的ARP解析•以太网广播包只能在同一网段内传送,路由器会挡住以太网广播信息包,使之无法跨越到其他网段,因此ARP只能解析同一网段内的MAC地址,无法解析其他网段的MAC地址•若目标主机与源主机不在同一网段,中间需要经过路由器时,就会出现多次ARP地址解析ARP请求ARP应答AB路由器ARP请求ARP应答ARP缓存•ARP请求是数据链路层的广播包,如果经常出现,必然增加网络负担,为了避免这种情况,加入了ARP缓存设计•ARP缓存中记录了常用设备的IP/MAC地址•系统每次要解析MAC地址前,先在ARP缓存中查看是否有记录,若ARP缓存中有记录,则直接使用,若没有记录,才发出ARP请求信息包•ARP缓存可以加快地址解析的过程,避免过多的ARP请求数据包•ARP缓存中的记录有动态和静态两种记录ARP缓存动态记录ARP广播包完成每条IP/MAC地址解析后,会将结果存储在ARP缓存中,下次使用时不必再发送广播包,而直接从缓存中读取,这种由ARP自动产生的记录称为动态记录。动态记录有一定的寿命时间,超时就会被自动删除,以避免出现网络黑洞。生命周期:最近一次使用后2分钟,重启电脑会自动清除静态记录若已知某设备的IP/MAC地址对应关系,可通过手动方式将该记录加入到ARP缓存中,称为静态记录。生命周期:不同操作系统有所不同(XP系统重启电脑会消失,Win7系统重启电脑也不会消失)反向地址解析协议RARP•反向地址解析RARP可以由MAC地址解析出相应的IP地址,主要用于无盘工作站在引导时提供MAC地址到IP地址的映射32位IP地址48位MAC地址RARPARPARP数据包格式•以太网目标地址:MAC地址全1表示广播地址(FF-FF-FF-FF-FF-FF)•以太网源地址:发送主机的MAC地址•帧类型:以太网数据帧可以传送ARP/RARP数据包,也可以传送IP数据包。帧类型指明后面数据的类型,ARP/RARP数据包的帧类型为0x0806•硬件类型:表示硬件地址的类型,1表示以太网地址•协议类型:表示要映射的协议地址的类型,其值为0x0800时表示将硬件地址转换为IP地址以太网目标地址以太网源地址帧类型硬件类型协议类型硬件地址长度操作类型发送端以太网地址发送端IP地址目标端以太网地址目标端IP地址协议地址长度以太网首部ARP/RARP数据ARP数据包格式•操作类型:ARP/RARP的请求和应答帧都采用同一种帧格式,此字段表示ARP/RARP帧的类型,1:ARP请求;2:ARP应答;3:RARP请求;4:RARP应答•发送端以太网地址:即发送端的MAC地址•发送端IP地址:如果此帧为ARP请求帧(操作类型为1),发出请求的主机在请求对方的MAC地址时,同时告知对方自己的IP地址•目标端MAC地址:ARP请求包中此字段为空•目标端IP地址:ARP请求需要转换的IP地址以太网目标地址以太网源地址帧类型硬件类型协议类型硬件地址长度操作类型发送端以太网地址发送端IP地址目标端以太网地址目标端IP地址协议地址长度以太网首部ARP/RARP数据ARP工具程序•Windows系列操作系统提供arp.exe工具程序,用以查看与编辑arp缓存的记录•arp–a:查看arp缓存中目前的记录•arp–d:删除arp缓存中所有记录•arp–d[IP地址]:删除arp缓存中指定记录•arp–s[IP地址][MAC地址]:在arp缓存中添加一条静态记录ARP欺骗•ARP地址解析协议是建立在网络中各个主机互相信任的基础上的。•网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性,就会将其记入本机ARP缓存。•由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了ARP欺骗。主机A:IP:192.168.1.2MAC:02-02-02-02-02-02ARP欺骗原理ARP缓存表192.168.1.203-03-03-03-03-03192.168.1.303-03-03-03-03-03ARP缓存表192.168.1.103-03-03-03-03-03192.168.1.303-03-03-03-03-03ARP缓存表192.168.1.101-01-01-01-01-01192.168.1.202-02-02-02-02-02网关:192.168.1.1MAC:01-01-01-01-01-01主机B:IP:192.168.1.3MAC:03-03-03-03-03-03伪造的ARPReply包:192.168.1.1的MAC地址是03-03-03-03-03-03哪台主机感染ARP病毒?B主机感染了ARP病毒!原理:截获网关数据它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,导致路由器的所有数据包只能发送给错误的MAC地址,造成正常PC无法收到信息原理:伪造网关它建立假网关,让被它欺骗的PC向假网关发送数据包,而不是通过正常的路由器途径上网。在PC看来,就是上不了网了、掉线了ARP欺骗有两种对路由器ARP表的欺骗对本网段PC的网关欺骗ARP病毒•ARP病毒的行为方式一般就是“欺骗网关、欺骗网内的所有主机”,其最终结果是:在网关的ARP缓存表中,网内所有活动主机的MAC地址均为中毒主机的MAC地址网内所有主机的ARP缓存表中,网关的MAC地址也成为中毒主机的MAC地址•前者保证了从网关到网内主机的数据包被发到中毒主机,后者则使得主机发往网关的数据包均发送到中毒主机。