• ARP协议、ARP欺骗


    0x00:前言

    ARP协议“Address Resolution Protocol”地址解析协议,位于TCP/IP协议簇的网络层,其作用是实现IP地址和MAC地址之间的转换工作

    TCP/IP协议簇:

    0x01:ARP流程、方式

    ARP:IP地址转化为MAC地址

    RARP:MAC地址转化为IP地址

    (1)ARP流程

    假设计算机 A   192.168.1.10  ping  计算机  B  192.168.1.11,计算机A必须知道计算机B的MAC地址。

    1)首先计算机A检查自己的ARP映射表,若有192.168.1.11的MAC地址,则直接转发;反之在局域网中广播,该数据包包含源地址(A地址)、源MAC(A)、目的地址(B地址),向所有计算机询问计算机B 192.168.1.11的MAC地址,

    2)接着计算机B收到广播,进行响应,首先检查数据包中的目的IP是否是自己,若不是,则忽略,若是,则把数据包的源主机的IP地址和MAC地址写入自己的ARP列表中,若存在则覆盖,后将自己的MAC地址写入ARP的响应包中,该数据包包含源地址(B地址)、源MAC(B)、目的IP(A地址)和目的MAC(A),告诉源主机自己是他要找的MAC地址;

    3)A收到后,在映射表中添加IP地址到MAC的记录,转发数据

    (2)方式

    静态、动态

    0x02:ARP欺骗

    原理:计算机 A 广播后,攻击者C和计算机B都收到广播,攻击者C通过手段截取B的ARP响应,攻击者C伪造IP地址和MAC地址将ARP报文响应给 A,攻击者C只要不断的持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。可能会导致网络阻塞。

     ARP断网攻击是基于ARP协议的缺陷。就是以我的网卡代替网关,目标的主机上网需要经过网关,但现在我欺骗了目标主机,让他误以为我的网卡是网关,当数据包到达我的网卡之后,全部丢弃,即造成断网。

    现象:在主机看来访问外部服务的响应变慢;或者对于服务器而言,上层应用忙于处理这种异常而无法响应外来请求

     ARP断网攻击

    kali  IP:  192.168.1.116

    winxp  IP:  192.168.1.117

    扫描本网段主机:nmap -sP 网段   或者  fping -g 192.168.1.1/24   alive表示主机存在

     

     结果:

     

    ARP欺骗 

    (1)欺骗

    arpspoof -i eth0 -t 192.168.1.117 192.168.1.1    命令之后,靶机的arp缓存表变了,上面是欺骗之前,下面是欺骗之后变为kali的MAC地址,达到欺骗的目的

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

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

     Linux中   echo命令的使用:

    echo是打印变量的值或者给定的字符串,

    比如,输入echo hello或者echo "hello"都是在控制台打印出hello单词

    但是我们需要把打印出来的字符串记录到文本文件中,就需要>和>>命令

    touch a.txt        新建一个文本文件a.txt

    echo hello > a.txt

    则a.txt中会记录下hello,但是如果再次执行echo hello > a.txt。则会覆盖之前的hello,

    怎样追加呢?需要>>命令

    echo world >> a.txt  则a.txt中会记录的是hello word,但是hello和word不是写在一行的,

    而是每个单词占用一行的。

    再比如 echo $HOME 控制台则会打印出当前用户的根路径/home/picc4

    (2)监听

    依然使用arpspoof,具体参数及操作参考上面ARP攻击的部分,在完成ARP攻击操作后,新建一个终端窗口或者标签页使用ettercap嗅探。

     靶机ping www.baidu.com  的时候 出现了这个

    获取靶机上网,网页的部分图片,如果靶机此时在浏览相册,更容易造成信息泄露

     靶机这边:

    IP地址冲突 

    在同一个局域网中,如果两台计算机同时使用了相同的IP地址,或者其中一台计算机已经通过DHCP获得IP地址了,同时其他计算机手动分配了与此相同的IP地址。其中一台计算机无法正常上网。IP地址冲突也是ARP攻击的一部分,这种攻击可以在局域网中产生大量的ARP通信,造成局域网闭塞。黑客只要不断地发出伪造的ARP响应数据,就能更改目标计算机ARP缓存中的IP/MAC地址信息,造成目标计算机不断显示IP地址冲突,无法正常上网。

     0x03:总结

     ARP欺骗的防范

    1.主机级被动检测

      当系统接收到来自局域网上的ARP请求时,系统检查该请求发送端的IP地址是否与自己的IP地址相同。如果相同,则说明该网络上另有一台机器与自己具有相同的IP地址。

    2.主机级主动检测

      主机定期向所在局域网发送查询自己IP地址的ARP请求报文。如果能够收到另一ARP响应报文,则说明该网络上另
    有一台机器与自己具有相同的IP地址。

    3.服务器级检测

      当服务器收到ARP响应时,为了证实它的真实性,根据反向地址解析协议(RARP)就用从响应报文中给出的 地 MAC
    址再生成一个RARP请求,它询问这样一个问题:“如果你是这个MAC地址的拥有者,请回答你的IP地址”。这样就会查询到这个MAC地址对应的IP地址,比较这两个IP地址,如果不同,则说明对方伪造了ARP响应报文。

    4.网络级检测

      配置主机定期向中心管理主机报告其ARP缓存的内容。这样中心管理主机上的程序就会查找出两台主机报告信息的不一致,以及同一台主机前后报告内容的变化。这些情况反映了潜在的安全问题。或者利用网络嗅探工具连续监测网络内主机硬件地址与IP地址对应关系的变化。

           从影响网络连接通畅的方式来看,ARP欺骗分为二种,一种是对路由器ARP表的欺骗;另一种是对内网PC的网关欺骗。

      ARP欺骗攻击的后果,大多数情况下会造成大面积掉线;如果是被中间人攻击,截取Internet与这个目标主机的之间的全部通信,则会导致信息泄露,在主机看来访问外部服务的响应变慢;或者对于服务器而言,上层应用忙于处理这种异常而无法响应外来请求。

     5.其他

    在主机绑定网关MAC与IP地址为静态(默认为动态),命令:arp -s 网关IP 网关MAC;

    在网关绑定主机MAC与IP地址;

    使用ARP防火墙

    拓展

    kali  arping 命令的使用

    命令详解:https://www.cnblogs.com/nul1/p/8732761.html

    演示:https://www.ixigua.com/i6775090840332141070/

     

    arping干嘛用的?

      arping主要干的活就是查看ip的MAC地址及IP占用的问题。

    参数

    -0:指定源地址为0.0.0.0,这个一般是在我们刚刚安装好系统,电脑还没配置好IP的时候

    -a:Audible ping.这个当有reply回来的时候,你的电脑有喇叭的话,就会滴滴的叫

    -A:Only count addresses matching requested address

    -b:类似-0,指定源broadcast为255.255.255.255

    -B:指定这个就相当于 arping 255.255.255.255

    -c count:发送指定数量的arp包后,即停止退出

    -d:这个比较重要,当局域网有IP占用的时候,可以指定这个参数,当有相同的IP的不同MAC地址reply的时候,arping会退出,退出码为1
    -D:这个检测是否丢包的,当丢包的时候打印感叹号,正常的时候打印逗号

    -e:和-a相反,当没有reply的时候,会滴滴滴

    -p:打开混杂模式,当前用户对mac无权限时,可以加上这个选

    -r:输出的时候只打印MAC,写脚本的时候用得到,不用自己对结果awk了

    -R:输出的时候只打印IP,和上面一样

    -s MAC:指定源MAC地址

    -S IP:指定源IP,设置了源IP,如果目标主机没有到源IP的route,则有可能收不到answer

    -t MAC:指定目的MAC

    -T IP:指定目的IP,

    -i interface:指定发送arp包的设备。不指定的话,默认为系统的第一块网卡

    -q:表示不打印输出,写脚本不想打印输出的时候,应该用的到

    -u:没啥大用,结果显示的时候,加这个参数和不加,index的显示形式不同

    -v:打印详细的输出,默认打印的好像就是verbose

    -w deadline:指定两个ping直接的时间间隔,单位为毫秒,默认为1秒

    用法

    讲了这么多,感觉大多数的参数都用不到吧。记住常见用法就OK了

    用法1:查看某个IP的MAC地址

    1
    arping 192.168.131.155

    用法2:查看某个IP的MAC地址,并指定count数量

    1
    arping -c 1 192.168.131.155

    用法3:当有多块网卡的时候,指定特定的设备来发送请求包

    1
    arping -i eth1 -c 1 192.168.131.155

    用法4:查看某个IP是否被不同的MAC占用

    1
    arping -d 192.168.131.155

    用法5:查看某个MAC地址的IP,要在同一子网才查得到

    1
    arping -c 1 52:54:00:a1:31:89

    用法6:确定MAC和IP的对应,确定指定的网卡绑定了指定的IP

    1
    arping -c 1  -T 192.168.131.156  00:13:72:f9:ca:60

    用法7:确定IP和MAC对应,确定指定IP绑在了指定的网卡上

       arping -c 1  -t  00:13:72:f9:ca:60 192.168.131.156

    用法8:有时候,本地查不到某主机,可以通过让网关或别的机器去查。以下几种形式测了下都可以

     arping   -c 1  -S 10.240.160.1 -s 88:5a:92:12:c1:c1  10.240.162.115
     arping   -c 1  -S 10.240.160.1   10.240.162.115
     arping   -c 1  -s 88:5a:92:12:c1:c1  10.240.162.115
     
    9: 更改受害者192.168.1.111的 192.168.0.1的ARP映射表
    arping -i eth0 -s 00:11:22:33:44:55 -S 网关 受害者IP
    arping -i eth0 -s 00:11:22:33:44:55 -S 192.168.0.1 192.168.1.111
  • 相关阅读:
    数据劫持
    OpenGL渲染流程
    MySQL查询数据库所有表名及其注释
    java json转义问题(消除反斜杠 etc)
    ubuntu 安装后黑屏问题。
    封装一个函数用来对比原始数组与更新后的数组增加和删除了那些数据
    从tree类型数据格式中找到自己想找到的数据(递归方式)
    elinput输入的几种限制
    封装一个列表转为Tree树结构的方法
    接上一篇使用递归获取Tree数据结构中的目标数据,封装了一个通用函数
  • 原文地址:https://www.cnblogs.com/liqik/p/12324173.html
Copyright © 2020-2023  润新知