kali vim命令ARP欺骗的原理,攻击,防御
ARP协议简介
  ARP是Address Resolution Protocol (地址解析协议)的缩写。在以太⽹中,两台主机想要通信,就必须要知道⽬标主机的MAC (Medium/Media Access Control,介质访问控制)地址,如何获取⽬标主机的MAC地址呢?这就是地址解析协议ARP的⼯作。地址解析协议的基本功能就是在主机发送数据之前将⽬标IP转换为MAC地址,完成⽹络地址到物理地址的映射,以保证两台主机能够正常通信。
ARP缓存表
  任何⼀台主机安装了 TCP/IP协议都会有ARP缓存表,该表保存了这个⽹络(局域⽹)中各主机IP对应的MAC地址,ARP缓存表能够有效地保证数据传输的⼀对⼀特性。在Windows 中可以使⽤arp-a命令来查看缓存表,结果如下:
C:\>arp -a
Interface: 192.168.1.8  0x20002
Internet Address    Physical Address
192.168.1.1          00-27-19-66-48-84
192.168.1.12        2c-d0-5a-05-8e-fl
  在此时的ARP缓存表中可以看到,192.168.1.12对应的MAC地址为2c-d0-5a-05-8e-fl,并且类型为动态。如果主机在⼀段时间内不与此IP 通信,将会删除对应的条⽬。⽽静态ARP缓存条⽬是永久性的。
  在Windows中建⽴静态类型的ARP缓存表可以使⽤arp -s命令,如: C:\>arp -s 192.168.1.23 f4-b7-e2-8f-ld-91 〃建⽴静态缓存表查看ARP缓存表可以发现,192.168.1.23类型已经变为静态,内容如下: C:\>arp -a
Interface: 192.168.1.8 —— 0x20002
Internet Address      Physical Address        Type
192.168.1.1        00-27-19-66-48-84      dynamic
192.168.1.23      f4-b7-e2-8f-ld-91        static
如果想要清空ARP缓存表,可以使⽤arp -d命令;如果想删除单个条⽬,则可以使⽤arp -d ip命令。
ARP缓存表中的条⽬也是有时效的,在超过指定的时间后,将从缓存中删除它们,Windows 默认的ARP缓存项存活时间为两分钟。
注:MAC地址如同⾝份证号码,具有全球唯⼀性。
局域⽹主机通信
  假设现在拥有两个⽹段、两个⽹关和三台主机,内容分别如下:
主机IP MAC
⽹关1192.168.0.101-01-01-01-01-01
主机A192.168.0.202-02-02-02-02-02
主机B192.168.0.303-03-03-03-03-03
⽹关2192.168.1.111-11-11-11-11-11
主机C192.168.1.212-12-12-12-12-12
  现在主机A与主机B通信,主机A使⽤命令ping 192.168.0.3,这时主机A⾸先会通过⼦⽹掩码进⾏对⽐,看与⽬标主机是否在同⼀局域⽹内,如果在同⼀个局域⽹中,主机A将会查询本机的ARP缓存表,看是否存在主机B的MAC地址,如果存在,则直接发送数据,如果不存在,主机A将会对局域⽹内所有的主机⼤喊:“我是192.168.0.2, MAC地址是02-02-02-02-02-02,谁是192.168.0.3,快把你的MAC地址给我,我要给你发送数据!”,局域⽹内所有的主机都可以听到“叫声”,当主机B听到有⼈叫⾃⼰,就会将⾃⼰的MAC地址发送给主机A,并且将主机A的MAC地址加⼊⾃⼰的ARP缓存中,⽽其他主机发现不是在“叫” ⾃⼰,所以不会有任何应答。
  接下来,主机A会收到主机B的响应,并把主机B的MAC地址加⼊到⾃⼰的ARP缓存中,⽅便下次联系,然后发送数据。主机A这声“呐喊”其实就是以⼴播⽅式发送⼀个ARP请求报⽂。ARP请求报⽂中包含本机的IP地址、MAC地址等信息。
在局域⽹中通信⽐较简单,不需要经过⽹关就可以直接通信,但若不在⼀•个局域⽹内就⽐较复杂了,如主机A与主机C的通信过程如下:
  主机A通过⽹络掩码对⽐,发现与主机C不在同⼀局域⽹内,所以需要⽹关来转发处理。主机A⾸先将会查询⾃⼰的ARP缓存中是否存在⽹关1的MAC地址,如果不存在,使⽤⼴播获取,如果存在,就直接向⽹关1发送数据包,由⽹关1向⽹关2发送数据包,⽹关2 收到数据包之后发现是发送给主机C的数据,
⽹关2将会查询⾃⼰的ARP缓存中是否存在主机C的MAC地址,若存在,则直接发送数据,不存在则以⼴播⽅式获取MAC地址后发送数据。
ARP欺骗原理
  ARP协议最初设计的⽬的是为了⽅便传输数据,设计该协议的前提是在⽹络绝对安全的情况下。随着信息技术的发展,攻击者的⼿段层出不穷,他们经常会利⽤ARP协议的缺陷发起攻击,ARP协
议主要的缺陷如下:
  •由于主机不知道通信对⽅的MAC地址,所以才需要ARP⼴播请求获取。当在⼴播请求时,攻击者就可以伪装ARP应答,冒充真正要通信的主机,以假乱真。
  ·ARP协议是⽆状态的,这就表⽰主机可以⾃由地发送ARP应答包,即使主机并未收到查询,并且任何ARP响应都是合法的,许多主机会接收未请求的ARP应答包。
  • ⼀台主机的IP被缓存在另⼀台主机中,它就会被当作⼀台可信任的主机。⽽计算机没有提供检验IP到MAC地址是否正确的机制。当主机接收到⼀个ARP应答后,主机不再考虑IP        到MAC地址的真实性和有效性,⽽是直接将应答包中的MAC地址与对应的1P 地址替换掉原有ARP缓存表的相关信息。
我们知道,以太⽹中主机之间不知道对⽅的MAC地址是⽆法通信的,所以主机会以⼴播的形式发送请求来获取对⽅的MAC地址,请求中包含发送⽅的IP、MAC地址,如果⼊侵者正处在局域⽹内,利⽤ARP设计的⼀些缺陷可以在⽹络中发送虚假的ARP请求或响应,这就是 ARP 欺骗。
  从上⾯内容可知,主机A与主机C之间通信会经过⽹关1和⽹关2,但当主机收到⼀个ARP的应答包后,它并不会去验证⾃⼰是否发送过这个ARP请求,⽽是直接将应答包的 MAC地址与IP替换掉原有的ARP缓存信息,这就导致了主机A与主机C之间的通信内容可能会被主机B截取。下⾯是主机B的ARP欺骗场景:
  ⾸先,主机B向主机A发送⼀个ARP响应:192.168.0.1的MAC地址是03-03-03-03-03-03 (主机B的MAC地址),⽽主机A接收到响应后却不会去验证数据的真实性,⽽是直接替换本机ARP缓存表中192.168.0.1的MAC地址。同时主机B也向主机⽹关1发送⼀个ARP响应:192.168.0.3的MAC地址是03-03-03-03-03-03,同样⽹关也不会去验证,直接放到⾃⼰的ARP 缓存中。当主机A与主机C通信时,主机A⾸先会检査⾃⼰的ARP缓存表中是否有⽹关的MAC地址,发现有缓存MAC地址为:03-03-03-03-03-03,于是直接向MAC地址发送数据,但是此时的MAC却不是⽹关1的,⽽是主机B的MAC地址。主机B接收到数据后再转发到真正的⽹关1,由⽹关1发送到主机C。当主机C接收到数据后,可能会返回数据,⽽返回数据在到达⽹关1的时候,⽹关I⾸先会检查⾃⼰的ARP缓存表,去寻192.168.0.3对应的MAC 地址,MAC地址为:03-03-03-03-03-03,也就是主机B的地址,当主机B接收到数据包后,再转发
给真正的主机A,可以说主机A与主机C的通信数据都经过了主机B,没有任何秘密可⾔,这就是ARP欺骗。
  ARP欺骗是⼊侵者常⽤的攻击⼿段,也许读者听说过⼀种攻击⼀中间⼈攻击。中间⼈攻击即Man-in-the-Middle Attack,简称“MITM攻击”,是⼀种“间接”的⼊侵攻击,就好⽐主机A与主机C之间通信都要通过主机B,主机B就被称为“中间⼈”。使⽤“中间⼈”能够与原始计算机建⽴活动连接,并允许其读取或修改传递的信息,然⽽两个原始计算机却认为它们是在直接通信。
就如Burp Suite那样,作为⼀个代理可以拦截并编辑HTTP请求,也算是⼀个中间⼈攻击软件。
常见的中间⼈攻击有会话劫持、DNS欺骗等。当然,ARP欺骗也属于最常见的中间⼈攻击⼿段
以上内容摘抄于书籍《Web安全深度剖析》,感兴趣的话可以⾃⾏观看~
ARP 攻击
  ARP攻击并不少见,且威⼒巨⼤。有时候攻击者在⼊侵⽬标站点时,由于安全措施很到位,并不能获取权限,恰好服务器也只放了⼀个⽹站,⽆法旁注,这时攻击者就可能通过C段ARP 嗅探攻击,继续⼊侵指定的⽬标⽹站,C段攻击也可以看作是另类的“旁注”。
  所谓C段攻击,就是指同⼀⽹关下的主机ARP嗅探,在嗅探出敏感数据后,继续实施对⽬标⽹站的渗透。⽐如,攻击者的⽬标⽹站为“服务器地址为:192.168.1.8, 在⽆法直接渗透⽬标服务器时,攻击者就可能去⼊侵与192.168.1.8在同⼀⽹关下的服务器,般是192.,也就是C段IP,在得到服务器权限后,对⽬标主机实施ARP嗅探攻击(⼀般嗅探敏感数据为FTP密码、Admin Pass等)
  这⾥我们使⽤kali linux,⾥⾯包含了许多攻击⼯具,包括需要使⽤到的arpspoof,ettercap,driftnet。
  ARP攻击的前提是攻击机与受害机需要在同⼀局域⽹内,但⼀般情况下为了使⽤⽅便,都是直接使⽤net模式,这种模式下虚拟机共享主机的IP地址,Vmware会在主机上创建专⽤的虚拟⽹络,⽤于主机和虚拟机之间进⾏通信,这样的话kali与物理机是不在同⼀局域⽹的,⽽在桥接模式下,虚拟机被当做⼀个完全独⽴的主机,占⽤局域⽹的⼀个IP地址,将虚拟机的⽹卡交接到主机的物理⽹卡上,通过主机的⽹卡访问外部的Internet。所以我们应该选择桥接模式。
  那么怎样桥接使kali与物理机在同⼀局域⽹且能上⽹呢?(我当时也是弄了半天才连上⽹...),如果你已经桥接好了可以pass
1.虚拟机设置中⽹络适配器选择桥接模式
2 . 点击编辑,选择虚拟⽹络适配器设置
3.点击VMnet0,选择桥接模式,⽹卡选择你的物理机正在使⽤的⽹卡,我这⾥是Intel(R) Wireless-AC 9462
4.点击确定,......
你以为这就配好了吗,不这样还是连不上⽹的
我们需要在kali中将IP设置到与物理机是同⼀⽹段
输⼊ vim /etc/network/interfaces
inface eth0 inet static 设置 eth0 使⽤默认的静态地址
address 192.168.1.15 设置 eth0 的ip 地址
gatework 192.168.1.1 配置当前主机的默认⽹关
netmask 255.255.255.0 设置 eth0 的⼦⽹掩码
5.输⼊ vim /f  ⽂件
将物理机的DNS服务器添加进去,我这⾥是192.168.1.1
6.在终端下,输⼊:/etc/init.d/networking restart 回车,进⾏重启⽹卡
7.在终端下,输⼊update-rc.d networking defaults 回车,设置设置系统启动后⾃动启⽤⽹卡OK! ping⼀下百度
说明已经有⽹了(但是ping物理机ping不通,物理机ping kali linux⼜ping得通,我认为是物理机上进⾏了设置禁⽌了外⾯机器ping它,⽽linux没进⾏此设置,不管这些了~~)
下⾯进⼊正题!先使⽤arpspoof进⾏断⽹攻击
需要先在kali中开启端⼝转发功能:
echo 1 >/proc/sys/net/ipv4/ip_forward
查看端⼝转发是否成功:cat /proc/sys/net/ipv4/ip_forward  如果显⽰1则表⽰开启成功,显⽰0则开启失败
使⽤命令arpspoof -i eth0 -t 192.168.1.14 192.168.1.1,其中,-i后⾯的参数是⽹卡名称,-t后⾯的参数是⽬的主机和⽹关,要截获⽬的主机发往⽹关的数据包。
这样物理机就断⽹了....
使⽤arp -a查看arp缓存发现攻击前⽹关192.168.1.1与攻击机192.168.1.15的物理地址是不同的
⽽攻击后物理机192.168.1.15的物理地址变得和⽹关192.168.1.1的物理地址相同了,这样就把物理机给骗了!使原本要发给⽹关的数据包发给了攻击机192.168.1.15
使⽤ettercap进⾏断⽹攻击
使⽤ettercap -G进⼊图形化界⾯
点击勾勾,点击右上⾓的三点,选择Hosts

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。