我们知道,内网数据的传输是通过很多台PC通过hub相连后,再连接一个switch,还可以是上连一个router实现的,但是很多数据就是通过这样的传输而被窃取的。数据的监听、窃取,都是源于各个设备运行机制的“缺点”:hub的广播(把所要传输的数据公开化);ARP的工作(IP地址和mac地址放心对应)。
那到底ARP是怎样被发现和利用它的缺点呢?
在所有PC、router内存的ram中,都会存在一张arp缓存表,这张表记录着这台router连着所有的PC各自的IP地址,和这些IP地址所对应的PC的mac地址。
那又是如何形成的这张表呢?
举个例子


当A要发送数据给C,那么,A会把数据+C的IP地址给router,而router接收到数据后,内存里的arp就会向A、B、C发送广播,“通知”谁是IPc的PC,如果是,就把你的mac地址传给我,此时,C会把自己的mac地址传给router,ARP就将C的IP地址和mac地址存在一张表中,即ARP缓存表。(当然,A、B内存中的ARP缓存表也会在互相的传输中自动形成)
这张表在你自己的机器上也能看到:
开始—运行—输入cmd—输入arp -a就可以看到表中信息
一般表中有三项信息:IP地址 MAC地址 对应状态(默认为动态)
***思路:
一直以来,对于一些敏感的“个人信息”,***者总是会想办法得到,所以,就会欺骗、伪装记录在册的信息,从而使信息毫无防备的自动上交。在此之前,就要对ARP表里的信息替换掉,用主攻的PC发送一个ARP应答包,就是ARP欺骗。欺骗的对象分为由上而下和由下而上两种:
1、对router的ARP表的欺骗
通知router内网很多的错误mac地址,并按照一定的频率不断进行,使真实的IP——mac地址信息无法更新保存在router中,结果router的所有数据只能发送给PC错误的mac地址,造成信息无法到达PC,而是到达预先设定好的“陷阱”里。
2、对局域网内PC的网关欺骗
网关一般指路由器,建立一个假网关,给局域网中的PC发送ARP的应答包,让PC认为网关已经到了假网关上了,让被它欺骗的PC向假网关发数据,而不是通过真的网关,此时,局域网内的PC也就上不了网了。
防护思路:
既然***者是利用IP地址和mac地址信息都是动态获得的,从而用伪装的方法进行信息替换修改。那么只需把IP地址和mac地址静态绑定,依然是在PC的cmd中运行,输入arp -s IP地址 mac地址,这样就可以静态绑定网关地址。但是要使安全性提高,也要在router上也静态绑定PC的地址。



当然这是最最小白的方法,不过,理解了ARP的原理,职责和缺点,就算了解了ARP,不管我们今后是要去利用它***还是防护(***还是不要的吧),都不是只会使用工具的IT人。
ps:以上都是我的个人理解,如果有什么错误,希望大家积极提出哦~


https://blog.51cto.com/2039833/788842