ARP协议以及ARP欺骗
ARP协议简介
ARP是“Address Resolution Protocol“也就是地址解析协议的缩写,在以太网环境中,数据的传输所依懒的是MAC地址而非IP地址,而将已知IP地址转换为MAC地址的工作是由ARP协议来完成的。
ARP工作原理
在计算机网络中,以ping命令为例
ping 10.10.10.1
我们只给出了目标的IP地址,没有给出MAC地址,这就好比寄快递只给了收件人姓名,没有给收件地址
ARP协议就是为了通过收件人姓名而得到收件地址,最终实现收发快递功能的协议
那么ARP协议是怎样工作的呢?
如图,是我刚刚连入网络获取到ip地址时,抓取到的收到以回复及相应的ARP包
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ii6tehdO-1626717064758)(1.png)]
可以分析到如下内容
数据包分析
第一个数据包来自MAC地址58:41:20:2D:D5:B1
的主机,这个数据包的目标地址为Broadcast
也就是广播地址ff-ff-ff-ff-ff-ff
,向本网段里的全部机器发送,询问who has 10.1.40.106
,想要IP为10.1.40.106
的主机地址回复自身的MAC
地址
恰好我的主机所获取到的IP地址就是10.1.40.106
,所以我的主机回复了一条消息给MAC地址为58:41:20:2D:D5:B1
的主机,也就是网关主机,告知他我持有他询问的ip,同时给出我的MAC地址
然后网关在得到我的MAC后,就能愉快的和我通信啦
ARP欺骗
举例来说,这是一个基本的家庭网络结构,两台设备通过路由器网关上网左边的PC1为攻击者的主机,此时的PC2正常上网
PC1向PC2发送ARP数据包,告知网关IP所对应的MAC地址是自己也就是PC1
PC2的ARP表刷新后,PC1的MAC地址对应的是网关,所以一切正常的通过网关发送到互联网的数据包都发送到了PC1
但是PC1毕竟不是网关,所以此时的PC2就已经断网了,因为假的网关可不会帮他转发数据,这就达到了一个简单的断网攻击
但是攻击者通常不希望被发现攻击,窃取隐私才是最重要的,所以通常会再将PC2发来的流量转发给路由器,这样PC2还可以继续正常上网,但是所有的上网流量都要经过PC1,此时PC1知道PC2在访问什么web,web上有哪些图片,以及登录操作所传输的账号密码等。
部分攻击并不满足于看,更要篡改数据,比如当你访问http://www.baidu.com
的时候,更改你的数据包内容,重定向去访问了http://www.e-wolf.top
,或者等baidu.com
回复给你页面写着空腹不能吃饭
被篡改为空腹要多喝水