web渗透测试----28、ARP欺骗
一、ARP协议简介
ARP是Address Resolution Protocol(地址解析协议)得缩写。在以太网中,两台机器想要通信,就必须知道目标主机得MAC地址,而ARP协议的作用就是获取MAC。ARP协议的基本功能就是在主机发送数据之前将IP地址转换为MAC地址,完成网络地址到物理地址的映射。
1、ARP缓存表
任何一台主机安装了TCP/IP协议都有ARP缓存表,该表保存了局域网中个主机IP对应的MAC地址,ARP缓存表能够有效地保证数据传输的一对一特性。在Windows中可以使用arp -a来查看缓存表。
ARP缓存表中的数据是有时效性的,在超过指定的时间后,将从缓存中删除它们,Windows中默认的存活时间为两分钟。
2、局域网主机通信
假设两个网段、两个网关、三台主机,如下:
主机IP MAC
网关1 192.168.0.1 01-01-01-01-01-01
主机A 192.168.0.2 02-02-02-02-02-02
主机B 192.168.0.3 03-03-03-03-03-03
网关2 192.168.1.1 04-04-04-04-04-04
主机C 192.168.1.2 05-05-05-05-05-05
1、A和B通信:主机A使用ping 192.168.0.3
,主机A进行子网掩码对比,发现与B在同一局域网 内:
A查询本机ARP缓存表,查看是否存在B的MAC地址。
①存在:直接发送数据。
②不存在:A发送ARP请求报文(包含IP、MAC地址、请求地址等),局域网内主机在收到请求报文时,仅有B应答,并将自己的MAC地址发送给A,而且会将A的MAC地址存在自己的ARP缓存表中。在主机A收到B的响应之后,会将B的MAC地址保存在自己的ARP缓存表中,然后发送数据。
2、A与C通信时:主机A通过子网掩码对比,发现与主机C不在同一局域网中,所以需要网关转发处理:
主机A查询ARP缓存表中是否存在网关1的MAC地址。
①不存在时:通过广播获取网关1的MAC地址。
②存在时:向网关1发送数据包,由网关1向网关2发送数据包,网关2查看数据包发现是发送给C的。然后网关2查看自己的ARP缓存表是否存在C的MAC地址。存在,直接发送数据包;不存在,则广播获取MAC地址之后发送。
二、ARP欺骗原理
1、ARP协议的部分缺陷:
①当广播请求时,攻击者伪装ARP应答,冒充真正的主机。
②ARP协议时无状态的,这就表示主机可以自由地发送ARP应答包,即使主机并未收到查询,并且任何ARP响应都是合法的,许多主机会接收为请求的ARP应答包。
③一台主机的IP被缓存在另一台主机中,他就会被当作一台可信任的主机。而计算机不提供检验IP到MAC地址是否正确的机制。当主机接收到一个ARP应答后,主机不再考虑IP到MAC地址的真实性和有效性,而是直接将应答包中的MAC地址与对应的IP地址替换到原有的ARP缓存表的相关信息。
2、ARP欺骗原理
以太网中,主机之间不知道对方的MAC地址时无法通信的,所以主机会以广播的形式发送请求来获取对方的MAC地址,请求包中包含发送方的IP、MAC地址,如果攻击者正好处于局域网中,可以利用ARP缺陷,在网络中发送一些虚假的ARP请求或者响应,这就是ARP欺骗。
3、ARP欺骗过程
在上文中,主机A和主机C之间通信会经过网关1、2,但是当主机收到一个ARP应答包后,他并不会去验证自己是否发送过ARP请求,而是直接就将应答包的MAC地址于与IP地址替换掉原有的ARP缓存信息,这就导致了主机A与主机C之间的通信内容可能被主机B截取。
主机B的ARP欺骗过程:
主机B向主机A发送一个ARP响应:192.168.0.1的MAC地址时03-03-03-03-03-03(主机B的MAC地址),主机A收到响应后不会验证是否真实,而是直接替换本机ARP缓存表中的192.168.0.1的MAC地址。同时主机B也向主机网关1发送一个ARP响应:192.168.0.3的MAC地址为03-03-03-03-03-03,同样的,网关也不会进行验证,直接放到自己的ARP缓存表中。
当主机A与C通信时,A会先检查自己的ARP缓存中是否由网关1的MAC地址,发现有缓存地址03-03-03-03-03-03,于是向MAC地址发送信息,但是此时MAC地址是B的MAC地址。主机B接收到数据之后再转发到真正的网关1,由网关1发送给主机C。当主机C接收到数据后,可能会返回数据,二返回数据在到达网关1时,网关1会先检查自己的ARp缓存表,去寻找192.168.0.3的MAC地址,MAC地址为03-03-03-03-03-03,也就是B,当主机B接收到数据包后,再转发给真正的通信对象主机A。主机A和C的通信都经过了B,B是可以控制整个通信过程的。
三、ARP欺骗的危害
1.造成局域网中的其他主机断网。
2.劫持局域网中其他主机或网关的流量,获取敏感信息等。
四、ARP欺骗的防御
1、每台计算机的ARP一律改用静态的方式,不过这在大型的网上是不可行的,因为需要经常更新每台计算机的ARP表。
2、例如DHCP snooping,网上设备可借由DHCP保留网络上各计算机的MAC地址,在伪造的ARP数据包发出时即可侦测到。此方式已在一些厂牌的网上设备产品所支持。
3、有一些软件可监听网络上的ARP回应,若侦测出有不正常变动时可发送邮箱通知管理者。例如UNIX平台的Arpwatch以及Windows上的XArp v2或一些网上设备的Dynamic ARP inspection功能。
相关文章
- 测试开发基础,教你做一个完整功能的Web平台之环境准备
- web安全day6:IIS之WEB服务器
- 渗透测试-Web安全测试信息收集篇
- 2014阿里巴巴面试总结(测试岗)
- web渗透测试----5、暴力破解漏洞--(8)PostgreSQL密码破解
- web渗透测试----5、暴力破解漏洞--(3)FTP密码破解
- web渗透测试----5、暴力破解漏洞--(2)SNMP密码破解
- web渗透测试----31、检测到绕过web应用防火墙
- web渗透测试----27、基于DOM的HTML5存储操作
- web渗透测试----26、SQL注入漏洞--(1)原理篇
- web渗透测试----25、跨站脚本攻击简介--(2)XSS Filter
- web渗透测试----25、跨站脚本攻击简介
- web渗透测试----20、反序列化漏洞--(1)序列化和反序列化
- web渗透测试----21、网站备份文件泄露
- web渗透测试----17、Xpath漏洞
- web渗透测试----16、JSON注入
- web渗透测试----15、SSRF漏洞(服务端请求伪造漏洞)
- web渗透测试----12、HTTP主机标头漏洞
- web渗透测试----6、目录遍历漏洞
- 《WEB安全渗透测试》(34)记一次攻防演练之红队总结
- 《WEB安全渗透测试》(19)Vue.js中的XSS攻击
- 《WEB安全渗透测试》(10)SQL注入实战:XFF注入
- 《WEB安全渗透测试》(8)SQL注入实战:cookie注入
- 《HTML5和JavaScript Web应用开发》——2.6 QA和设备测试
- Web安全测试之XSS
- WEB测试番外之----XSS攻击
- VS2010中的自动化测试——Web性能测试
- Web测试中,各类web控件测试点总结