VLAN Hopping攻击技术与缓解措施 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

VLAN Hopping攻击技术与缓解措施

41yf1sh 漏洞 2018-09-25 11:17:22
519655
收藏

导语:VLAN,即虚拟局域网,用于物理网络的共享,通过创建虚拟的网段从而实现特定组的划分。

关于VLAN

VLAN,即虚拟局域网,用于物理网络的共享,通过创建虚拟的网段从而实现特定组的划分。举例来说,在同一个物理局域网上,VLAN 1的所有主机与VLAN 2的所有主机相分隔,如果要在VLAN之间发送任何数据包,都必须经过路由器或其他第3层(网络层)设备。这样的特点保证了网络的安全性,由此VLAN也被众多网络管理员应用到实际配置中。然而,通过“VLAN Hopping”的攻击方式,攻击者可以绕过上述这些安全实现。如果各位读者想了解更多关于网络分段和VLAN的知识,建议阅读: https://www.alienvault.com/blogs/security-essentials/demystifying-network-isolation-and-micro-segmentation

VLAN Hopping攻击技术

VLAN Hopping漏洞允许攻击者绕过为划分主机而构建的任何第2层(数据链路层)限制。如果网络管理员对交换机端口进行了正确配置,那么攻击者必须通过路由器或其他第3层设备才能访问其目标。然而,在许多网络中都没有合理的进行VLAN规划,或者对VLAN进行了错误配置,这样一来攻击者就能够进行该漏洞利用。在本文中,我将主要介绍VLAN Hopping的两种方法,分别是“交换欺骗”(Switched Spoofing)和“双重标记”(Double Tagging)。在最后,我将介绍针对此类攻击的缓解措施。

交换网络

如果我们想要发现并利用漏洞,首先要了解交换机的运行方式。我们在这里并不是对设备存在的漏洞进行利用,而是针对于协议和配置存在的漏洞。

在交换机上,端口可以配置为Access(访问)或Trunking(中继)。通常,将主机连接到交换机时,使用的是Access端口。通过VLAN,每个Access端口仅分配给一个VLAN。如果要将两个交换机或交换机与路由器连接在一起,那么需要使用到Trunking端口。Trunking端口允许接收来自多个VLAN的流量。针对Trunking端口,我们可以手动配置,也可以使用动态中继协议(Dynamic Trunking Protocol,DTP)动态创建中继端口。

DTP是Cisco的专有协议,其用途之一就是动态建立两个交换机之间的中继链路。

攻击技术1:交换欺骗

攻击者伪装成交换机,从而欺骗合法交换机在二者之间创建中继链路。如前所述,中继链路允许来自任何VLAN的数据包通过。一旦建立了中继链路,那么攻击者就可以从任何VLAN中访问到流量数据。这种攻击技术仅在合法的交换机配置为“经协商的中继模式”(Negotiate a Trunk)时才会成功。具体而言,就是接口配置为“动态可取”(Dynamic Desirable)、“动态自动”(Dynamic Auto)或“中继”(Trunk)模式。如果目标交换机配置为其中的某一种模式,那么攻击者可以从其计算机上生成DTP消息,并且可以成功产生中继链路。

攻击技术2:双重标记

攻击者在以太网帧上添加或修改标记,从而允许通过任何VLAN发送数据包,这种方法就叫做双重标记。这种攻击方式利用了大部分交换机在处理标记时存在的一个问题,大多数交换机仅会删除外部标记,然后将帧转发到所有本地VLAN端口。尽管如此,但实际上只有当攻击者位于中继链路的本地VLAN时,其漏洞利用才会成功。另外,这种攻击方式只能单向进行,因此无法对返回的数据包进行封装。

漏洞利用1:交换欺骗攻击

在该漏洞利用场景中,存在攻击者、交换机和目标服务器。首先,攻击者连接到交换机上的FastEthernet 0/12接口,目标服务器连接到FastEthernet 0/11接口并且作为VLAN 2的成员。其拓扑图如下:

1.png

交换机的部分配置如下:

interface FastEthernet0/11
switchport mode access
switchport mode nonegotiate
switchport access vlan 2
!
interface FastEthernet0/12
switchport mode dynamic auto

我们可以发现fa0/12端口存在配置问题。这一端口被设置为接受传入协商,从而确定该端口被用于访问(Access)还是中继(Trunking)。这也就意味着,攻击者可以进行交换欺骗攻击。一旦攻击者连接到该端口,便可以发送DTP消息,并建立中继链路。

攻击者可以使用Yersinia工具来制作和发送DTP消息。Yersinia是一个涉农图测试框架,可以用于攻击位于第2层(数据链路层)的许多协议。该框架上预装了Kali Linux,并且有易于使用的图形化界面(GUI)。

Yersina的官方主页是:http://www.yersinia.net/

要执行Yersina,只需运行命令:

yersinia –G

以下是Yersina的图形界面截图:

2.png

现在,借助该工具,我们可以通过以下步骤来发送DTP消息:

1、点击“Launch attack”(发起攻击);

2、单击“DTP”选项卡;

3、点击“Enable Trunking”(启动中继);

4、点击“OK”。

3.png

Yersinia将会发送DTP消息,并在几秒内建立一个中继链路。在我们的场景中,攻击者可以访问流经VLAN 2的所有流量,并且在无需借助任何第3层(网络层)设备的情况下可以直接实现攻击。

4.png

漏洞利用2:双重标记攻击

在该漏洞利用场景中,存在攻击者、2个交换机和目标服务器。攻击者连接到交换机1,而交换机1与交换机2相连接,我们攻击的目标就是最终成功连接到交换机2上。其拓扑图如下:

5.png

在熟悉拓扑图后,我们看到交换机1的部分配置如下:

interface FastEthernet0/12
 switchport mode access
 switchport nonegotiate
 switchport access vlan 1
!
interface FastEthernet0/11
 switchport trunk encapsulation dot1q
 switchport mode trunk
 switchport nonegotiate
 switchport trunk native vlan 1

通过上述配置,我们可以看到,攻击者现在无法进行交换欺骗攻击。但是,攻击者目前位于Trunk端口的本地VLAN中,这也就意味着可以执行双重标记攻击。

攻击者可以使用Scapy工具,创建此攻击所需的特制帧。Scapy是一个用来对数据包进行修改的Python程序。

Scapy的官方主页:https://scapy.net/

Scapy的官方文档:http://scapy.readthedocs.io/en/latest/usage.html

要启动Scapy,可以使用以下命令:

sudo ./scapy

攻击者通过sendp()函数来制作数据包:

>>>sendp(Ether()/Dot1Q(vlan=1)/Dot1Q(vlan=2)/IP(dst='<destination IP', src='<source IP>')/ICMP())

执行此命令后,将会为VLAN 2上的目标生成经两次802.1q封装的数据包。下图展现了交换机是如何对此帧进行管理的:

6.png

从图中我们可以看出,交换机1只会读取并删除外部标记。它会检查主机是否为对应VLAN的成员,并将数据包转发到所有本地VLAN端口(VLAN 1)。然后,交换机2会接收到只剩下一个头部的数据包,它会根据其中的标记,认为此帧属于VLAN 2,随后将其转发到配置为VLAN 2的所有端口上。这样一来,目标就可以接收到攻击者所发送的数据包。

考虑到上述攻击的性质,从严格意义来说,这些都属于攻击方式。另外需要注意的是,这些攻击方式可能不适用于新型交换机,具体列表参见: http://packetlife.net/blog/2010/feb/22/experimenting-vlan-hopping/

VLAN Hopping缓解措施

交换欺骗

要缓解交换欺骗攻击,我们应该采取以下步骤:

1、不要使用“动态可取”(Dynamic Desirable)、“动态自动”(Dynamic Auto)或“中继”(Trunk)模式配置任何接入点;

2、手动配置访问端口,并在所有访问端口上禁用DTP;

switchport mode access
switchport mode nonegotiate

3、手动配置所有中继端口,并在所有中继端口上禁用DTP;

switchport mode trunk
switchport mode nonegotiate

4、关闭所有当前不使用的接口。

双重标记

要防止双重标记攻击,需要保证所有中继端口的本地VLAN与用户VLAN是不同的。

总结

通过本文所介绍的攻击技术和缓解方式,可以让大家理解——交换机不是为了安全而构建的。因此,在每一层都采取正确的安全配置,并注意进行相应安全防护就显得尤为重要。如果你需要对网络进行隔离,请一定确保正确并安全地进行,配置网络的过程需要慎重。

  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务