zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    IE表单拦截器
    使用网站作为WCF服务宿主的几种做法
    Javascript执行效率小结
    Ajax无刷新技术实现省市县三级联动下拉菜单Asp.Net
    序列化DataContractSerializer
    变化多端的列表
    腾讯微信
    Mac OS 和 iOS 操作系统架构
    程序员远离你的细节思维
    ObjectiveC概述
  • 原文地址:https://www.cnblogs.com/liqik/p/12324173.html
Copyright © 2011-2022 走看看