1. 程式人生 > 實用技巧 >網路學習 ARP協議

網路學習 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協議後才能完成