python上网_西电免流量限制上网攻略!Python实现PPPOE攻击工具,秒杀拨号上网

感谢团队中即将研三毕业的网络安全大神小辉同学的慷慨授权。之前上课给大家演示的攻击也属于小辉同学的原创!欢迎大家关注小辉同学的网络安全公众号“七夜安全博客”

。也预祝小辉同学毕业后加入腾讯网络安全部门能够大显身手!

前言

大家可能对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攻击工具的完整代码,我会优先上传到知识星球中,运行之前记得安装scapy,更多干货欢迎加入知识星球。

作业:思考如何采用FPGA的方式实现上述攻击!

温馨提示:

文中内容纯粹为学术交流,若有同学自己练习引起的一切问题,本公众号概不负责。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值