浅谈ARP欺骗原理与实战.docx
文本预览下载声明
浅谈ARP欺骗原理与实战关于ARP的简述ARP(Address Resolution Protocol),即地址解析协议,是是根据IP地址获取物理地址的一个TCP/IP协议。在OSI七层模型中,IP地址在第三层,MAC地址在第二层,彼此不直接打交道。在通过以太网发送IP数据包时,需要先封装第三层(IP地址)、第二层(MAC地址)的报头,但由于发送时只知道目标IP地址,不知道其MAC地址,又不能 跨第二、三层,所以需要使用地址解析协议。使用地址解析协议,可根据网络层IP数据包包头中的IP地址信息解析出目标硬件地址(MAC地址)信息,以保证通信的顺利进行。ARP欺骗原理ARP协议工作的一个重要要素是ARP缓存表,每一个主机上都有一个ARP缓存表,表里边记录着与其通信主机的IP——MAC地址,当地址解析协议被询问一个已知IP地址节点的MAC地址时,先在ARP缓存表中查看,若存在,就直接返回与之对应的MAC地址,若不存在,则发送ARP请求向局域网查询。ARP缓存表中有动态和静态两种项目类型,静态项目是从创建开始一直存在不会自动修改,而动态项目则是随着网络中ARP应答报文的接受而改变。ARP请求包以广播形式发送,网络上的主机也可以自己发送ARP应答包,而由于协议本身的缺陷,当其他主机接收到应答报文的时候,不会去检测这条报文的来源和真实性就直接更新本地的缓存表,这也就给攻击者以可乘之机。以监听AB两台主机间通信为例:C(攻击者)想要截获A与B之间的通信,就需要让A以为自己是B,让B以为自己是A,于是,C向网络中发送ARP应答包,“xxx:xxx:xxx:xxx(B的IP)是我(C的MAC地址)”,这样接收到该应答包的A,就会将本地的ARP缓存表中B的地址更新,同理发送伪装为A的应答包,将B中A的地址更新为C,这样一来,对于A来说C就是B,对于B来说C就是A,A与B的通信先经过C才传送给对方,C就可以通过抓取数据包来得到自己想要的内容了。监听整个网络与上述过程基本一致,只是需要将C伪装成该网络的网关,进而监听所有主机间的通信。实战ARP欺骗首先用虚拟机搭建一个局域网,A和B作为被攻击对象,C作为攻击者,本机作为网关监听网络中所有的流量。A、B、C的配置如下序号IPMACA192.168.0.308-00-27-BF-9A-0BB192.168.0.408-00-27-1D-98-03C192.168.0.208-00-27-FD-B3-43利用LanTalk.NET(一款局域网聊天软件,打开后自动添加使用该软件的主机)建立A与B的通信,同时A与B的ARP列表更新为对方地址。通过wireshark软件可以看到A、B建立连接时ARP应答启动C主机中的ARP欺骗软件开始扫描(WinArpAttacker)扫描过程中网络中的ARP流量C开始欺骗欺骗成功欺骗过程中网络中的ARP流量ARP欺骗之后根据ARP协议,在欺骗成功后,C即可得到A与B之间所有的通信消息,若是掌握了A、B的密钥就可以完全知道A和B说了些什么,甚至C可以告诉A一个来自“B”的错误消息。如果C伪装成了网关,那么,所有人的流量就会被捕获,进而得到网络中的所有数据,但是随之而来的问题就是,C主机需要足够强大才能禁得住分析全部主机的流量。
显示全部