关于ARP欺骗(中间人)攻击
正常情况下,PC2想访问互联网,需要知道网关的MAC地址,这个是缓存在本地的。
代码语言:javascript复制C:UsersAdministrator>arp -a
接口:
代码语言:javascript复制192.168.1.8 --- 0xc
Internet 地址 物理地址 类型
192.168.1.1 e0-46-9a-6a-fb-16 动态
但是PC1是攻击者,使用软件发起ARP欺骗,首先我们来看如果有人执行ARP扫描,我们抓包的结果:
在软件中执行ARP欺骗
在PC2上验证欺骗结果
此时PC发出大量ARP数据包,说自己的MAC对应192.168.1.1(伪造网关,实施欺骗)
为了防止网关欺骗,我们可以在终端上,把网关的MAC静态绑定到IP上,也就是创建静态的ARP条目
标准语句
代码语言:javascript复制arp -s 192.168.1.1 e0-46-9a-6a-fb-16
此时如果本机网卡比较多,包括很多虚拟网卡,会提示失败。所以我们还要选择绑定的网卡:
代码语言:javascript复制netsh -c i i show in 显示本机网卡编号
本机有4个网卡,其中本地连接是物理网卡,编号是12
代码语言:javascript复制netsh -c i i add neighbors 12 192.168.1.1 e0-46-9a-6a-fb-16
主机上查看ARP条目
代码语言:javascript复制C:UsersAdministrator>arp -a
接口:
代码语言:javascript复制192.168.1.8 --- 0xc
Internet 地址 物理地址 类型
192.168.1.1 e0-46-9a-6a-fb-16 静态
删除绑定:
代码语言:javascript复制netsh -c "i i" del neighbors 12
备注:对于主机数量比较大的环境,比如企业环境,这种方法工作量比较大,而且也不能预防其非网关MAC地址的欺骗,这个可以对部分重点设备,比如网关、服务器进行保护,但是终端主机在公司一般都是动态获取的,此时需要更多的保护措施,比如ARP防火墙、端口安全、DAI等等。下篇再讨论。