zoukankan      html  css  js  c++  java
  • 网络安全基础之arp

    ARP(Address Resolution Protocol),中文解释为地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议

    ARP大致工作流程如下:

      • 主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址。
      • 收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
      • 地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存(重点来了,我们要利用的就是这个点!)
      • 攻击者可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。
      • 那么 我们如何利用ARP协议来进行断网攻击呢?大致思路如下:

         

        首先,ARP是建立在网络中各个主机互相信任的基础上的,它的诞生使得网络能够更加高效的运行,但其本身也存在缺陷:

        ARP地址转换表(ARP缓存)是依赖于计算机中高速缓冲存储器动态更新的,而高速缓冲存储器的更新是受到更新周期的限制的,只保存最近使用的地址的映射关系表项,这使得攻击者有了可乘之机,可以在高速缓冲存储器更新表项之前修改地址转换表,实现攻击。ARP请求为广播形式发送的,网络上的主机可以自主发送ARP应答消息,并且当其他主机收到应答报文时不会检测该报文的真实性就将其记录在本地的MAC地址转换表,这样攻击者就可以向目标主机发送伪ARP应答报文,从而篡改本地的MAC地址表。这就是所谓的APR欺骗攻击。

        ARP欺骗可以导致目标计算机与网关通信失败,更会导致通信重定向,所有的数据都会通过攻击者的机器,因此存在极大的安全隐患,这里我们是使目标主机通信失败,之后的教程会介绍重定向的方法。

        ARP攻击大致流程如下:


        第一步:假设主机A访问某网站,那么要告知某网站我的IP和MAC地址,但这是以广播的方式告知的。

        第二步,由于是广播方式告知,猥琐的B主机也知道了A的IP和Mac地址,于是猥琐的B主机把自己伪装成某网站,给A发送回复,A误以为B就是某网站,因此更新了自己本机的ARP缓存。

        第三步,两者建立连接,A不断将自己的请求发给B,可怜的某网站被挂在一遍了。如果B转发A的请求给某网站,再转发给A,那相当于A的流量都从B经过,这就是步骤4,因此可以会话劫持;如果B给A的是一个假地址,那么可怜的A永远上不了网了。

        如何进行伪造地址的详细资料在参考资料里有详细说明,读者可以自己仔细了解下原理。

         

         

        下面讲解如何在Kali下进行ARP断网攻击:

        攻击方需要与被攻击方在同一个内网,攻击者需要知道被攻击者的IP。由于本文的目的是学习研究ARP,所以这里如何获取被攻击者的IP我们不做详细介绍,有兴趣的自己找资料。我们把本机作为被攻击者,虚拟机上运行Kali作为攻击者

        先在本机访问网页,看一下是否可以顺利访问

    arpspoof -i eth0 -t 192.168.106 192.168.1.1

    命令行方式

    接下来,我们尝试ARP欺骗,获取被攻击者的用户名和密码。

     

    首先,我们要使用的工具还是ARPSpoof,因为我们此次攻击方式是欺骗,同时,我们还是用Eteercap去嗅探目标靶子的流量,来获取目标的重要信息。

    但是,首先要开始IP转发功能,linux因为系统安全考虑,是不支持IP转发的,其配置文件写在/proc/sys/net/ipv4的ip_forward中。默认为0,接下来修改为1

     

    此时欺骗成功,接下来我们使用ettercap嗅探。

    ettercap -Tq -i eth0

     

     

  • 相关阅读:
    intent-filter 之 data 「scheme, host, port, mimeType, path, pathPrefix, pathPattern」
    Android 自定义RecyclerView 实现真正的Gallery效果
    Android手势监听类GestureDetector的使用
    Android 屏幕手势滑动中onFling()函数的技巧分析
    onTouchEvent方法的使用
    Android 手势&触摸事件
    android关闭日志
    android intent和intent action大全
    调用新浪微博显示用户信息
    android 反编译
  • 原文地址:https://www.cnblogs.com/kingle-study/p/9486900.html
Copyright © 2011-2022 走看看