• ARP级ping命令:arping


    一.工作原理

      地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议,是网络链路层的协议,在局域网中使用。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。


     ARP的工作过程:

    主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01

    主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02

    当主机A要与主机B通信时,地址解析协议可以将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,以下为工作流程:

    第1步:根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址。

    第2步:如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查

    是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。
    第3步:主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。
    第4步:主机B将包含其MAC地址的ARP回复消息直接发送回主机A。
    第5步:当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了

    arp的数据帧格式如下:

    使用wireshark抓取一个普通的arp请求包,格式如下:
    可以看到协议类型为arp,目的MAC地址为广播地址ff:ff:ff:ff:ff:ff,操作码Opcode为1,即arp请求包。
     
    再用wireshark抓取一个arp应答包,格式如下:
     
     
    可以看到arp应答包返回了目的主机的MAC地址,且操作码Opcode为2,即arp应答包
    arping不受MAC地址欺骗的影响

    二.命令格式

    arping  [-AbDfhqUV] [-c count] [-w deadline] [-s source] [-I interface] destination

    三.常用参数

           -A            #和U参数作用相同,不过发送的是ARP应答包
           -b            #保持广播状态(收到arp应答之后会切换成单一传播模式)
           -c count      #发送指定数量的ARP请求包
           -D            #冲突检测模式,如果返回为空,则代表该ip没有被占用
           -f            #当收到确认主机存活的第一个数据包时,停止发送
           -I interface  #指定发送ARP数据包使用的网卡设备
           -h            #打印帮助并退出
           -q            #不显示警告信息
      -s source #设置源ip地址,DAD模式下为0.0.0.0,主动模式下为自己设定的ip地址,不设置则为本机实际ip地址 -U #主动发送ARP请求来更新其他主机的ARP缓存 -V #打印版本信息并退出 -w deadline #设置超时时间,

     四.实践

     打开虚拟机,设置仅主机模式,将虚拟机和本机设置在同一网段,本实验中物理机ip为192.168.56.1,MAC为0a:00:27:00:00:00;虚拟机ip为192.168.56.101,MAC为08:00:27:ed:95:88

    1.先用虚拟机广播发送发送arp请求包

    可以看到虚拟机收到了物理机arp应答包,且物理

    同时查看物理机的ARP缓存

    # arp -i vboxnet0 -a
    ? (192.168.56.101) at 08:00:27:ed:95:88 [ether] on vboxnet0

    与实际相符

    2.冲突检测模式

    使用物理机进行冲突检测,冲突检测目的ip为虚拟机ip

    # arping -D -I vboxnet0 192.168.56.101
    ARPING 192.168.56.101 from 0.0.0.0 vboxnet0
    Unicast reply from 192.168.56.101 [08:00:27:ED:95:88]  0.890ms
    Sent 1 probes (1 broadcast(s))
    Received 1 response(s)
    # arping -D -I vboxnet0 -w 3 192.168.56.10
    ARPING 192.168.56.10 from 0.0.0.0 vboxnet0
    Sent 4 probes (4 broadcast(s))
    Received 0 response(s)

    可以看到第一个arping有返回值,说明192.168.56.101已经被占用了;而第二个arping没有返回,说明该ip可用




































     

                                                                                                                      

  • 相关阅读:
    【GitHub】在Mac上配置/使用Github
    【IOS开发】《多线程编程指南》笔记
    【设计模式】二、观察者模式
    php 接受json数据时有转义字符处理办法
    highcharts 常用配置
    apache虚拟主机配置
    php,phpexcel插件导出excel使用
    json_decode转换json数据为数组出现的问题!
    redis 主从服务器
    linux 下安装redis
  • 原文地址:https://www.cnblogs.com/sunshine-cat/p/8087401.html
Copyright © 2020-2023  润新知