一、交换欺骗
1、网络拓扑图
2、攻击条件
(1)攻击者接入Trunk端口。
(2)攻击者连接到的交换机上必须启用了802.1Q聚合。
3、环境配置
Core-1:
conf t
vlan 10
name v1
vlan 11
name v2
exit
int e0/1
switchport mode access
switchport access vlan 10
int e0/2
switchport mode access
switchport access vlan 11
int e0/0
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk allowed vlan add 10
switchport trunk allowed vlan add 11
int e0/3
switchport trunk encapsulation dot1q
switchport mode trunk
Core-2:
仿照Core-1配置
4、攻击过程
Attacker可以伪造802.1Q数据包发送给Core-1,以此访问vlan11(192.168.0.4),在SW2 port 1和SW3 port 1上的监听结果分别如下图所示:
5、结论
虽然可通过此方法访问到指定的vlan,但限制太大,首先需要接入到一个Trunk端口,其次需要知道目标vlan在802.1Q中的ID号。
二、Double Tagging攻击
1、 网络拓扑图
如同一。
2、 攻击条件
(1) 攻击者连接到access端口。
(2) 攻击者连接的交换机启用了802.1Q聚合。
(3) 攻击者所连接的access口所属VLAN必须是Trunk的Native VLAN(本征vlan,在trunk链路上不用加tag的vlan)。
3、 环境配置
Core-1:
conf t
vlan 10
name v1
vlan 11
name v2
exit
int e0/1
switchport mode access
switchport access vlan 10
int e0/2
switchport mode access
switchport access vlan 11
int e0/0
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk allowed vlan add 10
switchport trunk allowed vlan add 11
switchport trunk native vlan 10 //配置本征vlan
int e0/3
switchport mode access
switchport access vlan 10
Core-2:
仿照Core-1配置,trunk端口上需配置相同的native vlan。
4、 攻击过程
Attacker可以伪造Double Tagging发送至Core-1,由于在Trunk口上设置的本征vlan与Attacker所属的vlan相同,所以Core-1会去掉第一层tag,然后将数据包发送给Core-2,而在第二层tag中,访问的vlan ID属于vlan11,因此Core-2就将此数据包转发到vlan11中。在SW2 PORT 1、SW1 PORT 1和SW3 PORT 1分别抓包如下图所示:
5、 限制
对于Double Tagging攻击,即使可以让数据包跳跃vlan,但是却无法接收到返回的应答包,攻击场景很有限。
6、 其它一些思路
数据包跳跃vlan后的确是无法再返回到攻击者所在的vlan了,但我们还是可以通过其它一些手段去探测另一个网段的信息,思路就是发送过去的数据包同时伪造来源地址,让收到数据包的主机将响应包发送到攻击者伪造的源地址上,比如将响应包返回到外网IP。用这种手法可以尝试去扫描另一个vlan的开放服务。
7、实测
在SW2 PORT 1和SW4 PORT 1上抓包如下图所示:
参考:
https://www.nlogic.co/understanding-vlan-hopping-attacks/
http://syslog.lofter.com/post/426320_1782d76
http://jasonliping.blog.51cto.com/471157/1153039