PPPOE服務器建立實戰
我們學習了不少關于PPPOE的基礎內容,對于PPPOE協議的應用,或者是PPPOE服務器的應用,很多朋友都還覺得比較飄渺。那么這里我們就來分享一下一個網友的實際經驗。小區內,物業搞了根100M光纖,然后使用ROS做了個PPPOE服務器。網絡具體的拓撲及ROS誰做的我不清楚。只知道,每戶網線接在樓道交換機上,看了交換機,普通的交換機,想想廣播域還是很大的,而且每戶都是使用撥號上網。
朋 友申請了一個帳號,拿來用用,發現ROS(至于怎么樣知道用的是ROS,是因為我在網絡中抓了幾個包,其中就有CDP的包)做得挺好,修改了下來數據的 TTL值(這點很容易發現,隨便ping一個外網地址,返回的TTL為0),沒辦法做簡單基于地址轉換的代理;ROS內網接口屏蔽了ARP,連他內網地址 也沒法訪問。我要上網而沒帳號怎么辦呢。
想辦法取別人的帳號,要不就是用一虛擬機器,裝上ROS把TTL改回來,這樣太麻煩。還是取兩個帳號用用算了。
怎 么樣才能取到別人上網的帳號和密碼呢?如果大家對PPPOE熟悉的話都知道,PPP協議有個認證過程。認證方式有多種,其中最常見的就是PAP和 CHAP。PAP簡單密碼認證,發送的是明文的用戶名和密碼,CHAP稱為挑戰握手認證,密碼不直接在數據包中,而是以密碼算散列值。說到這里,如果我要 取別人的帳號密碼,就必須讓用戶把認證的數據發送到我這里來,而且使用PAP認證,我通過抓包可以看到用戶名和密碼。我的做法是自己在虛擬機里建一ROS 的PPPOE服務器,認證方式僅僅為PAP,現在想辦法把數據引到我這里來。思路是首先把用戶搞掉線,很容易,以原PPPOE服務器MAC地址為源MAC 地址猛發送數據(任何數據,最好是免費ARP包1ms一次),這樣一來,在所有交換機的MAC地址表中的原服務器MAC對應的port為離你最近的端口 (也就是說,所有發往原服務器的數據包都會發到你這里來),導致跟原服務器建立的PPPOE會話將會中斷而用戶掉線。掉線后,用戶會重新撥號,撥號的數據 將會和你所建的PPPOE服務器建立會話,從而可以獲取用戶名和密碼。
抓包工具和發包工具都可以使用sniffer軟件。
幾點建議:
1、兄弟們在做類似我現在的小區的ROS時注意一下,首先關閉所有不用的服務,這也是任何設備廠商數據設定規范里都會提到的。比如我例子中的CDP(MNDP),在CDP中可以發現其接口地址,主機名等信息。
2、修改TTL值時,不要包括ICMP協議的,一來不容被發現是修改了TTL值的,另一個路由跟蹤不了是很老火的事情。
3、網內盡量減小廣播域的范圍,避免這種攻擊造成的面積。
4、用戶在設置PPPOE撥號客戶端不要選擇PAP,只選擇CHAP,其他的象MSCHAP,如果數據不需要加密一般不用。這樣即使象上述的攻擊也僅僅導致用 戶掉線,當與我PPPOE服務器使用LCP協商認證方式時不會協商成功,從而不會讓我截取用戶名和密碼。
5、建立PPPOE撥號客戶端時指定服務名(ISP名稱),以便不選擇其他的PPPOE服務器。