ARP协议分析

ARP协议原理

  1. ARP(Address Resolution Protocol,地址解析协议),用于实现从IP地址到MAC地址的映射。
  2. 在网络通信中,主机和主机通信的数据包需要依据TCP/IP协议栈从上到下进行数据封装,当数据封装完成后,再向外发出。所以在局域网的通信中,不仅需要源目IP地址的封装,也需要源目MAC的封装。
  3. 一般情况下,上层应用更多关心IP地址而不关心MAC地址,所以需要通过ARP协议来获知目的主机的MAC地址,完成数据封装。
  4. 如果要给TCP/IP协议栈选择一个“最不安全的协议”,那么选择ARP协议准没错。我们经常知道的这些术语,包括“网络扫描”、“内网渗透”、“中间人拦截”、“局域网流控”、“流量欺骗”,基本跟ARP脱不了干系。大量安全工具,例如大名鼎鼎的Cain、功能完备的Ettercap、操作傻瓜式的P2P终结者,底层都要基于ARP实现。

30e85e350f2752bf99a194c55c87ba2a

ARP协议实战

  1. 开启Wireshark并监听网卡
  2. arp -d删除ARP表项
  3. ipconfig /all查看网关地址
  4. Wireshark此时便能抓到ARP协议包

1664697580286-28166a43-14a7-4273-9a17-5a4eb91df451

一个是目的IP地址为broadcast的请求包:

1664697485134-5fc06a66-8a36-4f38-a561-3714f17039c9

另一个源IP地址为HuaweiTe的响应包:

1664697670018-584c9560-d268-4c15-af45-9c20320b0fd7

数据包解读

  • Hardware Type:硬件类型,标识链路层协议
  • Protocol Type:协议类型,标识网络层协议
  • Hardware Size:硬件地址大小,标识
  • MAC 地址长度Protocol Size:协议地址大小,标识IP地址长度
  • Opcode:操作代码,标识ARP 数据包类型
  • Sender MAC address:发送者 MAC
  • Sender IP address:发送者IP
  • Target MAC address:目标 MAC,此处全0表示在请求
  • Target IP address:目标IP

基于ARP协议的攻击软件实战

  • cain的ARP欺骗
  • P2P限流软件