任务一:根据ARP缓存中毒工作原理,演示中毒过程。
①ARP缓存中毒工作原理
ARP缓存是ARP协议的重要组成部分。一旦MAC地址和IP地址之间的映射被解析为执行ARP协议的结果,映射将被缓存。因此,如果映射已经在缓存中,则不需要重复ARP协议。然而,由于ARP协议是无状态的,所以高速缓存可能会被恶意制作的ARP消息中毒(篡改)。这种攻击称为ARP缓存中毒攻击。在这种攻击中,攻击者使用欺骗ARP消息欺骗受害者接受无效的MAC-IP映射,并将映射存储在其缓存中。
注:实验过程中遇到的问题或者必要知识点的储备如下
(1)ARP协议的作用
这里笔者就不具体介绍了,可以参考百度百科的解释。
(2)主机何时(什么情况下)会添加ARP缓存
这是笔者实验过程中遇到的问题。
错误一:最初我认为只要攻击者发送ARP应答报文,则接收到它的主机就会添加或者更新ARP缓存。(并不会添加,只会更新)
错误二:后来我认为出现错误一的原因可能是,ARP请求主机和应答主机需要通过会话才能添加缓存。所以我使用 netwox 71和73号指令来模拟这个会话(请求方通过netwox 71号指令来发送ARP请求报文,应答方通过netwox 73号指令来发送ARP应答),但是这样依旧不能再请求方添加ARP缓存。
answer:其实错误二的思想应该没错,因为实践证实,通过ping,telnet,ssh指令是可以在请求方添加ARP缓存的,通过观察wireshark抓取的数据包,可以知道ping等指令的执行过程就是会话(请求和应答)的过程,而前面不能成功,我认为是模拟的会话不够完善,或者是使用netwox工具发送的数据包参数设置不完善的问题。
(3)如何构造ARP应答报文
为使得ARP缓存中毒攻击持续有效,我们可以使用netwox 80号指令,执行该指令,可连续的发送ARP应答报文。
指令格式:netwox 80 --eth 00:0A:0B:0C:0D:0E --ip 1.2.3.4
该指令在LAN内持续广播ARP应答报文,报文内容将MAC地址:00:0A:0B:0C:0D:0E与IP地址:1.2.3.4映射在一起。
(4)显示/清除ARP缓存
显示:ip neigh show
清除:
arp -n|awk '/^[1-9]/{system("arp -d "$1)}'
ip neigh flush dev eth0
②过程演示
attacker :Machine1(192.168.175.139)
victim :Machine2(192.168.175.140)
observer:Machine3(192.168.175.141)
(1)让Machine2添加ARP缓存(缓存内容以Machine3的MAC-IP映射为例)
victim产生(添加)ARP缓存并查看
ping 192.168.175.141
ip neigh show
attacker发送恶意ARP应答报文
netwox 80 --eth 00:0A:0B:0C:0D:0E --ip 192.168.175.141
victim查看ARP缓存
错误的ARP缓存使得victim无法与Machine3通信
(2)ARP缓存中毒的其他攻击方式
根据攻击者的动机,可能会有各种各样的后果。例如,攻击者可以通过将不存在的MAC地址与受害者的默认网关的IP地址相关联来对受害者发起DoS攻击;攻击者还可以将流量从受害者重定向到另一台计算机等。
攻击者攻击局域网的默认网关,使局域网内所有主机(除攻击者以外)对默认网关(192.168.175.2)的ARP缓存中毒。这样受害者均不可以访问外网。
attacker
netwox 80 --eth 00:0A:0B:0C:0D:0E --ip 192.168.175.2
victims