前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python实现PPPOE攻击工具,秒杀拨号上网

Python实现PPPOE攻击工具,秒杀拨号上网

作者头像
七夜安全博客
发布2018-06-26 13:42:00
3.8K0
发布2018-06-26 13:42:00
举报
文章被收录于专栏:七夜安全博客七夜安全博客

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,更多干货欢迎加入知识星球。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 七夜安全博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档