pppoe
FB招聘站
分类阅读
专栏
公开课
FIT 2019
企业服务
用户服务
搜索
投稿
登录
注册
解密古老又通杀的路由器攻击手法:从嗅探PPPoE到隐蔽性后门 qingxp92018-03-02现金奖励共887107人围观 ,发现 20 个不明物体 无线安全
*本文原创作者:qingxp9,本文属FreeBuf原创奖励计划,未经许可禁止转载
随着宽带用户爆发性增长,PPPoE被带进了各家各户,而它的安全缺陷却一直没有受到足够关注,直至今日成为了一种低成本的通杀型路由器攻击手段。
PPPoE(Point-to-Point Protocol Over Ethernet),是将点对点协议(PPP)封装在以太网(Ethernet)框架中的一种网络隧道协议。其由UUNET、Redback Networks和RouterWare所开发的,并于1999年发表于RFC 2516说明中。
近二十年过去了,PPPoE被广泛应用在网络接入场景,较为有名的ADSL便使用了PPPoE协议,其成为了几乎所有家用路由器的默认功能之一。随着宽带用户爆发性增长,PPPoE被带进了各家各户,然而它所存在的安全缺陷却一直没受到足够的关注,直达今日成为了一种对路由器攻击成本极低、效果极好的攻击方式。
以下是本文讨论的重点——“古老的漏洞、上亿级受影响设备、极低的攻击门槛、没有完善的修复方案,危害极大的攻击场景—从获取宽带密码到隐蔽性后门”
极低的攻击门槛
我们可以轻易的在互联网上搜索到各种使用Linux、Windows平台上的工具来捕获PPPoE密码的文章,按照描述相信各位都可以在短时间内复现。
image.png
由于这些文章多是用于验证性质的,在考虑实际的攻击场景时往往会陷入误区认为需要物理接触的同时动静很大。于是我在自己的Android手机上移植了一个PPPoE嗅探器,在开启程序后几秒钟内便可以获得账号信息,参见以下demo:
PPPoE工作原理及缺陷
PPPoE协议的工作流程包含两个阶段—发现阶段和会话阶段,见以下两图。
image.png
image.png
在发现阶段,Client通过发送广播PADI寻找PPPoE Server。攻击者可通过自建PPPoE Server来接收PADI请求并与Client建立会话。进入会话阶段后,通过在LCP协商时要求使用PAP(一种明文传输的认证方式),随后利用Wireshark等工具就能嗅探到明文传输的PAP账号及密码,如下图所示。
image.png
没有完善的修复方案
缺陷的关键在于Client广播寻找Server时遭受钓鱼,并被要求通过明文认证方式传递账号密码。
协议中的Client与Server分别对应到用户得路由器设备和运营商的认证设备。很容易想到,只要路由器阉割掉PAP认证便能抵御该攻击。不过任何一个商业产品都是以保障可用性为首要条件,目前还有许多的使用场景(如小运营商或校园宽带)只能使用PAP认证,所以要求商业产品减少其使用范围的方案是不可能的。
image.png
宽带账号一键学习功能
相比于对安全缺陷的无奈,路由器厂商们反而借此解决了一个痛点——“路由器一键换机功能”。在更换新路由器时,许多用户会经历“找回密码”的流程,需要呼叫运营商进行重置或者上门帮助,这带来许多不变。而利用PPPoE的缺陷正好就能解决“找回宽带账号”这一问题。他们通过在路由器中内置嗅探器,只需将旧路由器与之连接就能自动学习,非常方便。
image.png
危险的攻击场景
通过前面的内容,我们大致了解该攻击的原理及攻击条件。该攻击需要与目标设备保持二层网络可达(如通过网线直接连接)。当你在朋友家可以接触到路由器时,你可以像演示demo中那样直接进行连接捕获账号(好吧,这好像只有娱乐性没有其他价值)。另外呢,在小运营商或校园网络这样的大型二层网络里边,可以进行批量的钓鱼。有些意思,但还有其他危害大些的攻击场景吗?
前些年,许多家庭无线路由器都因为默认密码的问题可以被轻易黑掉。比如到别人家串门,我往往会跑到路由器旁按WPS按钮来自助连上无线网,接着通常默认密码就能进后台了。如今的路由器都做了改进,初始化时就要求设置具有一定强度的密码,这样看上去只要密码不被泄露就很安全了。
不久前一次出差的经历,让突然我发现了一个有趣的攻击场景。
image.png
为了节省经费我们选择了一家民宿就住。当晚的无线网络不太好,自然就想进后台查看一番而后台密码拦住了我。我想到要是知道宽带账号不就可以无所顾虑的重置路由器。我跑到路由器旁,嗅探到了PPPoE账号,重置路由器并迅速将原有配置进行还原(宽带、无线热点等),整个过程大概用了大概2分钟。值得注意的是,由于还原后的网络通讯、无线热点配置都与之前无异,我的几位同事甚至没有发现明显异常,但我已经可以进入路由器后台啦!
我把这种方式称之为“路由器无感知重置绕过法”,通杀所有家用路由器。拿到后台权限后,我除了可以篡改DNS外,还可以开启远程Web管理、绑定动态域名解析弄成一个的远控后门。
image.png
image.png
我查阅了《2017年民宿产业发展研究报告》,报告指出2017年民宿客栈总量已达20万。对于规模较小的民宿而言,价格低廉实施容易的家庭宽带几乎是最主流的入网方式,同时路由器会被放置在客人可接触的区域。这几乎完美匹配了PPPoE嗅探的攻击场景,每一位入住用户都有潜在可能对路由器实施无感知重置绕过攻击植入后门,也都有潜在可能被之前用户植入的后门所监听流量。我将整个攻击流程总结为下图:
image.png
缓解方案
完善的修复办法其实是禁用PAP认证或更新替换PPPoE,这种涉及到产业上下游不同行业的方案按照惯例是行不通的。在过去几个月,我以“利用Android手机窃取路由器宽带账号”为题做了几次演讲(如[FIT HackDemo](http://www.freebuf.com/articles/wireless/160697.html)),希望有一点对该问题的关注,但效果不是很好。
后来,我想到一个混淆方案来缓解这种重置绕过攻击:宽带密码的格式常见有身份证末几位、固定数字编号或者其他乱码。在用户填写账号后,我们可以据此生成一批相似度高的字串,加上内置常见格式字串构成混淆字典。在PAP认证时,随机发送混淆字串进行迷惑。从理论上讲,在可接受等待时间内尽可能多的发送出混淆账号可以很大程度上缓解该重置绕过攻击。(未实际测试,厂商的朋友请参考、指点可行性)
后记
虽然该漏洞的发现与利用都很“陈旧”,但希望能通过一些小小的推动来帮助早日达到“解决”的状态。
*本文原创作者:qingxp9,本文属FreeBuf原创奖励计划,未经许可禁止转载
qingxp9
qingxp9
7 篇文章
等级: 4级
||
上一篇:根据目标用户信息,Python生成WPA2密码字典下一篇:美大使馆遭遇声波攻击,浙大WitAwards获奖团队协助调查
这些评论亮了
wxxxxxxx 回复
方法跟思路都挺好的,但是为了搞个后门你得开多少房,以后怎么对嫂子交待?
)79(亮了
发表评论已有 20 条评论
内鬼 2018-03-02回复 1楼
拨号路由器再建个pppoe服务器。把猫和主路由放在别的地方,再下接路由器。后面的路由器设置复杂管理员密码,关闭wps。
亮了(5)
wxxxxxxx 2018-03-02回复 2楼
方法跟思路都挺好的,但是为了搞个后门你得开多少房,以后怎么对嫂子交待?
亮了(79)
龍星大萌新 2018-03-03回复
@ wxxxxxxx 水土不服就服你
亮了(2)
亲爱的 2018-03-02回复 3楼
视频里嗅探pppoe的脚本哪里下载?
亮了(3)
qingxp9 (4级) WiFi Security | 360 PegasusTea... 2018-03-02回复
@ 亲爱的 https://github.com/qingxp9/PPPoE-Phisher
亮了(3)
MasonQAQ (1级) 2018-03-05回复
@ qingxp9 脚本install.sh中 echo "require-pap\nlcp-echo-interval 10\nlcp-echo-failure 2" > /etc/ppp/pppoe-server-options 这一句不能输出作者想输出的换行符,应该在echo后加上-e参数,即:echo -e "require-pap\nlcp-echo-interval 10\nlcp-echo-failure 2" > /etc/ppp/pppoe-server-options,因为这行错误配置折腾快一上午,希望作者能更新github上的脚本。
亮了(1)
qingxp9 (4级) WiFi Security | 360 PegasusTea... 2018-03-05回复
@ MasonQAQ 抱歉给你造成困扰了,我用/bin/sh测试时表现正常,没发现在bash下不一样。
亮了(1)
123 2018-03-02回复 4楼
刷openwrt干掉pap这种毒瘤,tp-link之流只能呵呵了
亮了(1)
rickgay 2018-03-02回复 5楼
又把我的秘密公开了。
亮了(1)
hackerzoe (1级) 2018-03-02回复 6楼
FIT好像专门演示了这个漏洞吧。。。。
亮了(1)
折学砖家 2018-03-02回复 7楼
在 reset 键上贴个易碎封条,淘宝 6 块钱 100 张,旁边贴警告,擅自撕掉罚款。
亮了(5)
FreeBuf 2018-03-02回复 8楼
15年后你突然发现。你的邻居竟然一直在掌控着你在网上的一举一动[笑cry]
亮了(2)
EtherDream 2018-03-02回复 9楼
用这办法上了15年的免费网[doge][doge] 都觉得不好意思了今年交了一次网费[doge]
亮了(3)
qingxp9 2018-03-02回复 10楼
终于有空把这有趣的攻击手法写出来,大家一起玩
亮了(1)
记忆中的归音山 2018-03-02回复 11楼
不得不说解决换路由的问题真棒,老路由管理员密码忘记了进不去,看不到宽带账号密码,用心路由的换机功能直接把账号密码弄到了,简直不要太棒
亮了(1)
Pw0nX86 (1级) 2018-03-04回复 12楼
我想知道你跑到路由器附近进行嗅探,确定网管与客服不会打你???
亮了(2)
柠檬初上 (5级) 重剑无锋 大巧不工~! 2018-03-05回复 13楼
实用性文章 收了
亮了(1)
MasonQAQ (1级) 2018-03-05回复 14楼
你好,按照github中的脚本进行配置后,测试了极路由和tp-link两款设备,经过PADI、PADO、PADR、PADS后pppoe-server发起PADT(terminated),然后路由器发起configuration Request,之后无会话,这是为何?难道是我测试的两款路由器都把pap阉割了?
亮了(1)
MasonQAQ (1级) 2018-03-05回复
@ MasonQAQ 解决了,是install.sh脚本问题,解决方案见楼上回复。
亮了(2)
hellen 2018-05-19回复 15楼
我靠 我用nethunter直接跑那个脚本
出了问题 看报错一开始以为是tshark的问题
结果最后发现是 pppoe配置文件里面多了一个 -e
!!!!
亮了(0)
昵称
请输入昵称
必须您当前尚未登录。登陆?注册邮箱
请输入邮箱地址
必须(保密)表情插图
有人回复时邮件通知我
qingxp9
qingxp9
WiFi Security | 360 PegasusTeam
7
文章数
34
评论数
最近文章
利用PMKID破解PSK的实际测试与影响评估
2018.08.14
Ghost Tunnel:适用于隔离网络的WiFi隐蔽传输通道
2018.05.09
解密古老又通杀的路由器攻击手法:从嗅探PPPoE到隐蔽性后门
2018.03.02
浏览更多
相关阅读
对一款不到2KB大小的JavaScript后门的深入分析修改PHP扩展作为持久后门Trustwave:中国制GSM语音网关存在Root权限后门新的Linux后门隐藏通信协议Hussarini:一个正将菲律宾作为攻击目标的后门
特别推荐
关注我们 分享每日精选文章
活动预告
11月
FreeBuf精品公开课·双11学习狂欢节 | 给努力的你打打气
已结束
10月
【16课时-连载中】挖掘CVE不是梦(系列课程2)
已结束
10月
【首节课仅需1元】挖掘CVE不是梦
已结束
9月
【已结束】自炼神兵之自动化批量刷SRC
已结束
FREEBUF免责声明协议条款关于我们加入我们广告及服务寻求报道广告合作联系我们友情链接关注我们
官方微信
新浪微博腾讯微博Twitter赞助商
Copyright © 2018 WWW.FREEBUF.COM All Rights Reserved 沪ICP备13033796号
css.php 正在加载中...0daybank
文章评论