文/凡夫畏果 源自微信号:给产品经理讲技术
大家应该都知道,现在我们使用的网络协议都是基于IP地址来进行通信的,无论是IPV4还是IPV6都是如此。但是,可能有的同学并不知道,在IP地址之下,还有一个MAC地址(网卡地址)。当网络上「相邻」的两台网络设备通信时,必须明确的知道对方的MAC地址才能通信。在局域网中的主机可以利用ARP(地址解析协议)来获取局域网IP对应主机的MAC地址。
ARP协议的请求过程大致分为下述三个过程:
1、主机A在局域网中发送ARP请求,请求内容为「请主机B把MAC地址告诉我。」;
2、局域网中的所有主机和网关都会收到这个消息,但是只有主机B会回答这个消息「我是主机B,我的MAC地址是XXX」;
3、主机A获得主机B的MAC地址,并将其保存在自己的ARP缓存表中。
通过 arp -a查看本机的arp缓存表
协议很简单,但是,安全隐患也显而易见。尤其是第二步,可能是协议的设计者生活在一个素质高度发达的社会环境中,否则怎么会设计出这种完全靠自觉性保证的通信协议呢?!试想如果网络中的某个家伙不按常理出牌,那主机A肯定会懵逼。就像在一个满是人的大街上喊了一声:「谁是张三?我刚捡到了你掉的一万块钱!」,相信肯定不止有一个「张三」来报道。正是由于ARP协议的这个特点,使得攻击者可以轻而易举的实现ARP攻击。
攻击者利用ARP攻击能达到什么目的呢?
1、制造网络中断。
我们知道网络中两台设备能通信的前提条件是两台设备明确的知道对方MAC地址,而攻击者就是ARP协议的漏洞,打破这个条件,让通信双方中的至少一方无法获得对方正确的MAC地址。比如当主机A发送ARP请求主机B的MAC地址时,攻击者主动回复ARP消息,并将一个错误的MAC地址给到A,进而达到切断A、B之间通信的目的。
2、ARP欺骗,中间人攻击。
利用ARP攻击「制造网络中断」只能算是恶意破坏,大多数情况下攻击者只是为了逞一时之快。相比而言「中间人攻击」的危害就更大了。当主机A请求网关的MAC地址时,恶意主机主动回复该消息,将自己的MAC地址放在应答消息中,伪装成网关,这样,主机A发送和接收到的所有信息都被恶意主机偷窥了一遍,更糟糕的是主机A和网关都不会意识到这个「中间人」的存在。
我们知道ARP攻击的主要手段就是让被攻击主机的ARP缓存表中加入攻击者期望的错误信息,为了避免ARP攻击,我们可以自己配置系统和路由器的IP/MAC地址映射关系。
如果你是windows系统可以通过在命令行中输入”arp -s IP地址 MAC”的方式指定IP到MAC地址的映射。
而路由器的设置界面,一般都有「静态ARP绑定设置」界面,在这里可以指定IP到MAC的映射。
PS:你还能想到其他利用ARP制造网络中断的方法吗?
新闻热点
疑难解答