网络学习-2 ARP协议
Posted shouzhuo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络学习-2 ARP协议相关的知识,希望对你有一定的参考价值。
协议
ARP = Address Resolution Protocol = 查下ipv4地址的mac地址的协议
L2层协议.
协议格式: (https://tools.ietf.org/html/rfc826)
Ipv4(PLN=4byte)+MAC地址(HLN=6byte)的格式如下
operation 0x0100 = arp request
operation 0x0200 = arp response
通过raw socket, 可以构建上述格式包发送.
环境
机器 | IP | MAC |
---|---|---|
路由器 | 192.168.0.1 | MAC1 |
PC | 192.168.0.101 | MAC2 |
PHONE | 192.168.0.102 | MAC3 |
攻击PHONE
$ arp srcip[192.168.0.102] srcmac[MAC2] dstip[192.168.0.1] dstmac[MAC2] reply # 向路由器发送arp reply包. 192.168.0.102的MAC地址是MAC1
路由器会更新192.168.0.102的MAC地址为MAC2. 后续路由器会将IP包交给PC. PHONE也就无法正常通信. 测试成功
为PC申请多个IP地址
既然可以告诉路由器某个ip地址的mac是什么. 那么也应该可以告诉路由器一个新的IP地址也是自己
arp srcip[192.168.0.103] srcmac[MAC2] dstip[192.168.0.1] dstmac[MAC2] reply
可以查看路由器"IP与MAC映射表", 发现新增了一个 104 -> MAC2的记录. 此时ping104, PC机会收到ICMP echo request请求. 但是无法ping通. 因为PC机并不会发送echo reply. 这个需要实现icmp协议后才能完成. 测试成功
通过arp发送数据
ethernet包长度1518, 去掉ethernet头(14),fcs(4),ARP(28), 还剩下1472个字节. 这些应该可以用来发送数据. 待测试
以上是关于网络学习-2 ARP协议的主要内容,如果未能解决你的问题,请参考以下文章