为了账号安全,请及时绑定邮箱和手机立即绑定

ARP原理以及ARP攻击

2019.03.15 14:46 386浏览

一、什么是ARP

ARP (地址解析协议)是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。(内容来自百度百科)

图片描述
二、工作过程
假设主机A想要与主机B进行通信,首先主机A需要判断它是否与B在同一局域网下。
1.在同一局域网下
首先A会查看在自己的缓存表中是否有B的mac地址,如果有则直接发送请求报文,如果没有则在局域网中以广播的形式发送一个请求报文,请求报文包含了自己的ip地址,mac地址等信息,过程如下,A大声喊我的ip是AAA.AAA.AAA.AAAA,mac地址是AA-AA-AA-AA-AA-AA,谁的ip是BBB.BBB.BBB.BBB,快告诉我你的mac地址,这时候主机B发现A在叫自己,于是把自己的mac发给a,并将a的mac添加到自己的ARP缓存中,当a收到b的回应后,将b的mac也添加到自己的ARP缓存中。
2.不在同一局域网下
首先A会通过掩码进行对比,发现自己与C不在 同一局域网下,于是需要网关来进行转发,我们的路由器就相当于一个网关。同理,A先查看自己的ARP缓存中是否有网关1的MAC,如果有的话A将数据发给网关1,网关收到数据后将其发送给网关2,网关2收到数据发现是A要发给C的数据,查看一下自己的ARP表中是否有C的mac,有的话将其发送给C,没有的话和同一局域网下思想一样广播一下获取地址。ARP是广播请求,单播回应

三、常用的ARP请求命令
1.查看缓存列表

arp -a

2.建立静态缓存列表
动态缓存表在一段时间内如果主机不与此IP通信,则会删除对应的地址,但是静态的ARP缓存则是永久性的。命令如下

arp -s ip mac

3.清空缓存表

arp -d 

四、ARP欺骗
上述过程中,我们可以发现ARP请求并不安全,举个简单的例子,主机B向主机A发送一个ARP请求,主机A接受到了这个请求并将mac地址放到自己的缓存表中,同样主机B也向网关1发送一个ARP请求,网关1也将mac地址放到了自己的缓存表中,这里就存在一个问题,主机A和网关1并没有对mac地址进行验证就进行了替换。接下来主机A要与主机C进行通信了,首先主机A会检查自己的ARP缓存表中是否有网关1的mac地址,一看有那好我直接发送数据报,可是这时的mac地址并不是网关1的而是主机B的,主机B收到数据偷偷看了后再发送给真正的网关1,网关1再发送给目标主机C,返回过程同理,也就是说在这个过程中有了中间人B其可以偷窥A与C之间的数据传输,上述例子便是一个ARP欺骗。
五、ARP攻击
方法工具都挺多大家可以自行搜索,在这里只列举一个。
在这里介绍一个好用的工具,ettercap,此款工具在kali下自带如下图所示图片描述选择sniff,unified sniffing(中间人嗅探)选择网关,hosts,scan for hosts扫描存活主机,可以通过hosts list查看存活主机列表,在攻击过程中我们也可以使用ettercap来查看捕获的数据包。
六、防御
1.防火墙
2.arp静态绑定

arp -s ip mac
点击查看更多内容

本文首次发布于慕课网 ,转载请注明出处,谢谢合作

0人点赞

若觉得本文不错,就分享一下吧!

评论

相关文章推荐

正在加载中
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消