中间人攻击——ARP欺骗的原理、实战及防御
0x01 网关是啥?
网关是工作在OSI七层模型中的传输层或者应用层,用于高层协议的不同
网络之间的连接,网关就好比一个房间通向另一个房间的一扇门。
0x02 ARP协议
ARP(Address Resolution Protocol)地址转换协议,工作在OSI模型的数据链路层,在以太网中,网络设备之间互相通信是用MAC地址而不是IP地址,ARP协议就是用来把IP地址转换为MAC地址的。而RARP和ARP相反,它是反向地址转换协议,把MAC地址转换为IP地址。
假设A(192.168.1.2)与B(192.168.1.3)在同一局域网,A要和B实现通信。A首先会发送一个数据包到广播地址(192.168.1.255),该数据包中包含了源IP(A)、源MAC、目的IP(B)、目的MAC,这个数据包会被发放给局域网中所有的主机,但是只有B主机会回复一个包含了源IP(B)、源MAC、目的IP(A)、目的MAC的数据包给A,同时A主机会将返回的这个地址保存在ARP缓存表中。
0x03 ARP欺骗原理
在每台主机中都有ARP缓存表,缓存表中记录了IP地址与MAC地址的对应关系,而局域网数据传输依靠的是MAC地址(网络设备之间互相通信是用MAC地址而不是IP地址)。
假设主机 A 192.168.1.2,B 192.168.1.3,C 192.168.1.4; 网关 G 192.168.1.1;
在同一局域网,主机A和B通过网关G相互通信,就好比A和B两个人写信,由邮递员G送信,C永远都不会知道A和B之间说了些什么话。但是并不是想象中的那么安全,在ARP缓存表机制存在一个缺陷,就是当请求主机收到ARP应答包后,不会去验证自己是否向对方主机发送过ARP请求包,就直接把这个返回包中的IP地址与MAC地址的对应关系保存进ARP缓存表中,如果原有相同IP对应关系,则原有的会被替换。
这样C就有了偷听A和B的谈话的可能,继续思考上面的例子:
C假扮邮递员,首先要告诉A说:“我就是邮递员” (C主机向A发送构造好的返回包,源IP为G 192.168.1.1,源MAC为C自己的MAC地址),愚蠢的A很轻易的相信了,直接把“C是邮递员”这个信息记在了脑子里;
C再假扮A,告诉邮递员:“我就是A” (C向网关G发送构造好的返回包,源IP为A 192.168.1.2,源MAC地址为自己的MAC地址),智商捉急的邮递员想都没想就相信了,以后就把B的来信送给了C,C当然就可以知道A和B之间聊了些什么
上面ABCG的故事就是ARP双向欺骗的原理了
ARP单向欺骗就更好理解了,C只向A发送一个返回包,告诉A:G 192.168.1.1 的MAC地址为 5c-63-bf-79-1d-fa(一个错误的MAC地址,C的MAC地址),A把这个信息记录在了缓存表中,而G的缓存表不变,也就是说,A把数据包给了C,而G的包还是给A,这样就是ARP单向欺骗了。
arp欺骗怎么解决?其实ARP欺骗只是有目的的发布错误ARP广播包的行为,从而骗取目标主机发送的网络信息达到窃取信息的目的,那么想解决arp欺骗只要绑定ip与MAC地址即可,下面我们来列举下具体的方法。
三、通过网管软件解决。
-
百度下载大势至网络准入控制系统,在其官网下载完成后解压,在解压的文件中找到LANProtector.exe和WinPcap.exe这两个安装文件,首先双击安装LANProtector.exe,安装完成后再双击WinPcap.exe进行安装,直至安装完成。
-
返回电脑桌面,依次点击开始,在弹出的菜单中点击所有程序,然后找到并点击展开大势至网络准入控制系统,点击名为大势至网络准入控制系统的快捷方式。
-
在弹出的大势至网络准入控制系统登录框中输入初始密码,然后点击登录。
-
在弹出的主界面中左上角找到并点击网段配置,然后根据具体局域网的情况选择配置单网段还是配置多网段,小编这边网络环境较为简单,只有一个网段,那么就选择配置单网段。
-
在弹出的对话框中首选点击网络适配器后面的向下箭头,在弹出的网络适配器中选择目标网卡,然后在下方网段IP范围中输入起止IP地址,最后点击确定。
-
上述设置完成后点击网段配置旁边的启动管理,这时系统会根据网段IP范围扫描并列举当前活动的主机列举到黑名单列表中。
-
然后在黑名单列表中依次全部选中主机,然后点击右侧的移至白名单,在弹出的窗口中点击全部绑定即可。
-
这样IP与MAC已经进行了绑定,有效防止ARP欺骗。