標籤:強制 功能 aaaaa 觀察 成功 好的 1.5 ssh 3.5
前言
大家可能對PPPOE不是很熟悉,但是肯定對撥接非常熟悉,撥接就是用的這種通訊協定。一般PPPOE認證上網主要用於校園網或者小區網中,撥號介面如所示。
但是PPPOE這種通訊協定,是有一些安全性漏洞的。下面從三個方面講解一下PPPOE的攻擊方式,以及如何使用Python實現攻擊工具。
純粹技術分享,切莫違反國家法律。
第一種方式:
帳號密碼竊取
對於PPPOE認證上網的過程如所示,分為發現階段和會話階段,發現階段分為PADI,PADO,PADR,PADS。
其中竊取帳號密碼的問題就出現在第一步PADI。PPPOE用戶端進行串連時,在PADI階段會發送一個廣播包,尋找區域網路中的PPPOE伺服器,從而完成認證。
這時候我們需要做的是偽裝成PPPOE伺服器,回複請求資訊,搶先和用戶端通訊,並強制用戶端使用明文傳輸方式,從而擷取帳號和密碼。下面我們通過wireshark抓一下資料包,更加直觀的觀察一下尋找PPPOE伺服器的過程。點擊寬頻連線,使用Wireshark監聽,會發現廣播包,這時候pppoe伺服器會進行回複。
攻擊情境:在本機電腦上開啟PPPOE欺騙程式,開始進行監聽,並在區域網路中的其他電腦上進行寬頻連線,觀察欺騙效果。如所示,已經成功欺騙出了帳號和密碼。
竊取帳號的部分代碼內容如下:
第二種方式:用戶端斷網攻擊
撥號用戶端(寬頻連線)與 PPPOE伺服器成功串連後,那伺服器是如何表示用戶端呢?通俗的說,伺服器必須要知道用戶端是哪一個,這樣通訊才不能錯亂。PPPOE採用的是分配ID的方式,也就是給每個用戶端隨機分配一個int型的整數。通過wireshark抓包,我們可以清晰地看到ID的分配。
乍一聽是沒有問題,但是問題正在於ID的範圍,為int類型。PPPOE伺服器通過分配給用戶端一個1-65535的值來唯一標識用戶端。只要知道對方電腦MAC地址,迴圈發送65535個PADT斷網包,即可以實現斷網攻擊,而對方電腦的MAC可以通過ARP請求獲得。
什麼是PADT斷網包?通過wireshark抓包,咱們看一下斷網包的內容。斷開寬頻連線,使用Wireshark監聽,會發現PADT斷網包,進行資料幀分析和類比即可。
攻擊情境:一台電腦運行斷網程式,通過ARP請求擷取對方電腦MAC地址,類比PADT包,將另外一台電腦的寬頻連線斷掉。
斷網攻擊的部分代碼內容如下:
第三種方式:伺服器DoS攻擊
DoS攻擊是針對PPPOE伺服器的,其實原理很簡單。現在基本上進階點的路由,對ARP洪水攻擊都做了很好的防護,對大量的arp包進行了過濾,但是對PPPOE包卻沒有做防護,使大量的PPPOE包可以直達PPPOE伺服器,從而打垮伺服器,這樣會導致大規模的斷網。
Dos攻擊的部分代碼內容如下:
最後 完整代碼
Python實現的PPPOE攻擊工具,使用了scapy包,可不要和爬蟲架構scrapy混淆了。scapy是一款非常優秀的網路通訊協定工具包,具有發包和收包的功能,非常強大。接下來我們會接著講解這個scapy包,至於PPPOE攻擊工具的完整代碼,歡迎加入公眾帳號,查看原文。
Python實現PPPOE攻擊工具