PPPoE***3:獲取最新的sessi
- 2020 年 1 月 9 日
- 筆記
在PPPoE會話的發現階段,伺服器會向客戶端分配sessionid,而經過本人測試,這個sessionid的值是依次增大的;即:進行一次會話,得到sessionid為1,這時其他客戶端進行撥號時,分配的sessionid為2,依次類推……
那麼,如何得到當前已經分配的sessionid範圍呢?我們可以模擬一下PPPoE會話,得到新的sessionid。
實現本功能的程式碼如下:
from scapy.all import * #你的PPPoE伺服器的mac地址,請酌情修改 servermac="00:0c:29:c6:ab:bc" #定義PPPoE數據包的格式 def packet(code=0x09,len=0,macadd='ff:ff:ff:ff:ff:ff'): a=Ether()/PPPoE() a.dst=macadd a.type=0x8863 a.payload.version=1 a.payload.type=1 a.payload.code=code a.payload.len=len return a #發送PADR數據包 sendp(packet(macadd=servermac,code=0x19)) #嗅探網卡得到的數據 c=sniff(filter='pppoed',count=1) #PPPoE伺服器返回的數據包(報文包含sessionid) print 'PPPoE伺服器的最新sessionid是 '+c[0].payload.sessionid