Python黑帽程式設計 3 5 DTP攻擊

2021-09-22 12:05:31 字數 1717 閱讀 7201

在上一節,《

python黑帽程式設計 3.4跨越vlan》中,我們討論了一般的vlan中實施攻擊的方法,這一節屬於擴充套件內容,簡單演示下cisco特有的dtp協議的攻擊方法。

由於條件限制,本節的**我沒有在實際環境下測試,不保證有效,歡迎討論。

動態中繼協議 dtp(dynamic trunking protocol)是一種 cisco 私有協議。dtp 用於兩台交換機的直連二層埠探測對端的配置,自動協商出二層埠的鏈路型別和以太協議封裝進而與對端自適應。這樣當對端裝置修改時,就不用手工修改本端配置,通過協議自適應更改即可。dtp 的重要作用是,在組網不確定的情況下,可以實現即插即用;修改網路拓撲時,也不用手工修改二層埠的配置。

dtp 利用第二層中繼幀,在兩台交換機的直連埠之間進行通訊。dtp 報文僅限於兩個

直連埠之間的通訊,維護兩個直連埠的鏈路型別和以太封裝型別。工作原理如圖2所示。

圖2如果交換機開啟了dtp協議,攻擊者假冒交換機向目標交換機傳送dynamic desirable資料報,那麼會把目標埠變成trunking埠,這意味著我們可以通過修改本機的配置進入任何乙個vlan,同時可以利用3.4節的方法進行vlan跳躍攻擊,監聽所有資料了。

在scapy的scapy.contrib.dtp包中有乙個negotiate_trunk方法,原型如下:

def negotiate_trunk(iface=conf.iface, mymac=str(randmac())):

print "trying to negotiate a trunk on inte***ce %s" % iface

p = dot3(src=mymac, dst="01:00:0c:cc:cc:cc")/llc()/snap()/dtp(tlvlist=[dtpdomain(),dtpstatus(),dtptype(),dtpneighbor(neighbor=mymac)])

sendp(p)

該方法第乙個引數需要我們傳入傳送資料報的網絡卡,第二個是可選引數,可以用來傳入要假冒的交換機的mac位址,如果不傳入,會隨機產生乙個。

呼叫該方法,就可以完成dynamic desirable資料報的生成和傳送工作。如下**所示:

圖3資料報傳送之後,會有一些延遲才會生效。

本節主要講了如何利用dtp協議攻擊cisco裝置,本節的方法需要和3.4節的方法結合使用。

下一節,我們進入第四章《網路層攻擊》。

4.0專欄」—>」python黑帽程式設計進入即可。

玄魂工作室-精彩不斷

Python黑帽程式設計2 6 模組

我們已經學習了如何在你的程式中定義一次函式而重用 如果你想要在其他程式中重用很多函式,那麼你該如何編寫程式呢?你可能已經猜到了,答案是使用模組。模組基本上就是乙個包含了所有你定義的函式和變數的檔案。為了在其他程式中重用模組,模組的檔名必須以 py為副檔名。模組可以從其他程式匯入以便利用它的功能。這也...

Python黑帽程式設計 2 7 異常處理

異常是個很寬泛的概念,如果程式沒有按預想的執行,都可以說是異常了。遇到一些特殊情況沒處理會引發異常,比如讀檔案的時候檔案不存在,網路連線超時。程式本身的錯誤也可以算作異常,比如把字串當整數來處理,拼寫錯誤。不論是系統還是框架,都會對基本異常進行分類,比如io異常,記憶體溢位等等。很多時候,針對特有的...

Python 黑帽程式設計大綱(變化中)

教程說明 1.1 虛擬機器安裝和配置kali linux 2016 1.2 使用vscode 搭建python開發環境 1.3 python執行時與包管理工具 1.4 你必須知道的網路基礎理論 請自學 1.5 利用wireshark練習資料報解析 2.0 第二章概述 2.1 python程式設計哲學...