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请求了。

上面的代码我们指定了目标主机的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请求数据包的代码。

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

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

3.4.3 小结

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

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

原文链接:http://www.cnblogs.com/xuanhun/p/5841940.html

python黑帽编程视频_Python黑帽编程 3.4 跨越VLAN详解相关推荐

  1. python跳一跳编程构造_python实现微信跳一跳辅助工具步骤详解

    说明 1.windows上安装安卓模拟器,安卓版本5.1以上 2.模拟器里下载安装最新的微信6.6.1 3.最好使用python2.7,python3的pyhook包有bug,解决比较麻烦 步骤 1. ...

  2. python数组对应元素相乘_python的几种矩阵相乘的公式详解

    1. 同线性代数中矩阵乘法的定义: np.dot() np.dot(A, B):对于二维矩阵,计算真正意义上的矩阵乘积,同线性代数中矩阵乘法的定义.对于一维矩阵,计算两者的内积.见如下Python代码 ...

  3. python导入模块的变量_python 环境变量和import模块导入方法(详解)

    1.定义 模块:本质就是.py结尾的文件(逻辑上组织python代码)模块的本质就是实现一个功能 文件名就是模块名称 包: 一个有__init__.py的文件夹:用来存放模块文件 2.导入模块 for ...

  4. python实例化是什么意思_Python中实例化class的执行顺序示例详解

    前言 本文主要介绍了关于Python实例化class的执行顺序的相关内容,下面话不多说了,来一起看看详细的介绍吧 Python里对类的实例化时有怎样的顺序 一般来说一个类里面有类变量和方法,比如我们定 ...

  5. python内存的回收机制_python的内存管理和垃圾回收机制详解

    简单来说python的内存管理机制有三种 1)引用计数 2)垃圾回收 3)内存池 接下来我们来详细讲解这三种管理机制 1,引用计数: 引用计数是一种非常高效的内存管理手段,当一个pyhton对象被引用 ...

  6. python中unicode编码表_Python中的字符串操作和编码Unicode详解

    本文主要给大家介绍了关于 Python中的字符串操作和编码Unicode的一些知识,下面话不多说,需要的朋友们下面来一起学习吧. 字符串类型 str:Unicode字符串.采用''或者r''构造的字符 ...

  7. python 公众号文章发布_python如何导出微信公众号文章方法详解

    1.安装wkhtmltopdf 下载地址:https://wkhtmltopdf.org/downloads.html 我测试用的是windows的,下载安装后结果如下 2 编写python 代码导出 ...

  8. python 接口测试 如何写配置文件_python接口自动化之ConfigParser配置文件的使用详解...

    前言:目前我们使用的绝大多数计算机程序,无论是办公软件,浏览器,甚至游戏.视频都是通过菜单界面系统配置的,它几乎成了我们使用机器的默认方式.而在python中,也有这样的一个配置模块可以把代码可配置化 ...

  9. python做动态折线图_Python数据可视化 pyecharts实现各种统计图表过程详解

    1.pyecharts介绍 Echarts是一款由百度公司开发的开源数据可视化JS库,pyecharts是一款使用python调用echarts生成数据可视化的类库,可实现柱状图,折线图,饼状图,地图 ...

最新文章

  1. [Voice Tips 2] IPHONE
  2. Web三个域对象的区别
  3. Shell and powershell
  4. php.ini 没有pdo,php.ini 没有pdo怎么办
  5. 不能不说的C#特性-迭代器(下),yield以及流的延迟计算
  6. deebot扫地机器人使用_石头扫地机器人T7 Pro使用体验 避障更加“聪明”
  7. 跟小静学MVC3[03]--相关语法特性小补习
  8. 最流行6种微服务RPC技术,你一定要知道
  9. Noip前的大抱佛脚----文章索引
  10. 搭建vue脚手架全教程
  11. windows计算机查看里设置,windows10电脑配置怎么查看
  12. TextView下划线的添加,控制下划线和文字的距离
  13. Redhat7安装HDS存储多路径软件
  14. 局域网的主要特点是什么?为什么局域网采用广播通信方式而广域网不采用呢?
  15. OSI七层模型 (详细讲解,看这一篇就够了)
  16. linux查看内存命令(查看进程虚拟内存)free命令、vmstat命令、pmap命令(free指令、vmstat指令、pmap指令)
  17. HTML简介及基本结构
  18. xshell用rz上传文件,彻底解决乱码
  19. empty() received an invalid combination of arguments - got (tuple, dtype=NoneType, device=NoneType),
  20. 互联网晚报 | 以岭药业声明网传“连花清瘟防疫方”不实;​如果不能自负盈亏,马化腾称整个腾讯新闻砍掉都可以;小米卢伟冰继任总裁...

热门文章

  1. 把杀某程序封装成sh
  2. Centos5上部署udev
  3. Ubuntu 10.10用LibreOffice替换OpenOffice
  4. HDU - 6464 免费送气球(线段树二分)
  5. php面向对象之get和set方法
  6. 等值首尾和-----------2012年12月27日
  7. 百度邮件曝光:高级技术总监接管CTO工作
  8. 20 个百无一用的 Firefox 扩展
  9. platform_device_add()函数分析
  10. Elasticsearch--linux网络设置 开启密码访问---全文检索引擎ElasticSearch工作笔记021