相信很多新手小白对arp欺骗原理和arp欺骗防护的了解处于懵懂状态,通过这篇文章的总结,希望你能有所收获。如下资料是关于arp欺骗的内容。
如上图,PC1与PC2在同一个网段,PC2要与PC1通讯,由于以太网的通讯机制,PC2需要先知道PC1的mac地址,通过mac地址与PC1通讯。PC2会先通过自己的arp表查找192.168.20.11对应的mac,如下:
PC1的arp表:
PC2的arp表:
可以看到PC2没有192.168.20.11的记录,这时PC2通过arp广播向全网询问谁有ip 192.168.20.11,PC1收到这个广播后发现是要请求192.168.20.11的mac,这个ip正是自己的ip,向PC2回应一个包告诉PC2 192.168.20.11的mac,由于PC2发送的arp广播中已经携带了PC2的mac,PC1这时会将PC2的arp信息记录在自己的arp表中,如下是在PC2中pingPC1后的arp表:
PC1的arp表:
PC2的arp表:
此时PC1和PC2就可以通讯了。
arp这个协议算个脆弱的协议了,只要PC2能收到arp应答包就会更新自己的arp表,PC2是没法验证这个arp应答包是否真的来自PC1。此时如果PC3不停的发送arp应答包给PC2,告诉PC2我就是192.168.20.11,PC2就会不停的更新自己的arp表,拥有一个错误的arp记录。
可以在PC3上使用arpspoof命令不停的向PC2发送arp应答包。
arpspoof -i eth2 -t 192.168.20.12 192.168.20.11
此时查看PC2的arp表:
可以看到192.168.20.11对应的mac和192.168.20.9的mac相同,08-00-27-37-7b-cc这个mac是PC3的。
这样当PC2向PC1发送数据时就会发送到PC3。此时在PC2上ping PC1是不通的
之所以ping不通,是因为PC3上就没有192.168.20.11这个ip,PC2发送的包是给192.168.20.11的,PC3当然就会丢弃了。
在PC3的eth2上添加ip 192.168.20.11
ip add add dev eth2 192.168.20.11/24
再到PC3上ping 192.168.20.11就可以ping通了。
但这样做,对于一个心怀恶意的人没什么用。因为PC2是要访问PC1的资源。PC3通常是提供不了这些的资源的,除非PC3非常清楚PC1的资源,并能成功克隆一份以至PC2不会怀疑。更为廉价的方式是,PC3把PC1到PC2的流量也劫持了。
arpspoof -i eth2 -t 192.168.20.11 192.168.20.12
执行上面的命令前需要用下面的命令取消PC3的eth2上绑定的192.168.20.11
ip add del dev eth2 192.168.20.11/24
这样PC3把PC1到PC2的流量也支持了。但此进PC2还是不通ping能PC1。这是因为PC1、PC2的流量都到了PC3,但这些流量的目的地都不是PC3,PC3会丢弃。可以在PC3上开启ip转发来转发双方的流量,PC3开启ip转发后,PC3就相当于一台路由了,可以转发目的地址不是自己的流量。
echo 1 > /proc/sys/net/ipv4/ip_forward
此时PC2和PC1可以正常通讯了,而所有流量都会经过PC3,PC3就可以进行抓包之类的进行流量分析了。如果PC2与PC1的通讯包含明文用户名、密码,这些用户名、密码就会被PC3得知。
查询网上,arp欺骗的防护没有太多的办法,有三种办法。
arp -s ip mac
windows使用:
arp -s ip mac
这种方式法对主机很多的情况不适用。
arp欺骗的隐蔽性还是有点强
在linux中下可以使用arping检测:
可以看到除了第一条,后面的都是PC3的mac,arping在检测的时候也是不容易发现。但还是出现了两个不同的mac,这时可以怀疑是有arp欺骗了。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。