你见过“僵尸”来袭吗?
你自己也成为其中一个“僵尸”会是怎样的感受?
这次,可能要玩得更酷炫一点!
如果你家路由器被破解,那么就可能是5万僵尸网络中的一员!
带来此次讲座的是一个“别人家的小孩”,他目前还在读大三,却已经是长亭科技核心安全团队中的一员。2016年,他和团队在黑客盛会GeekPwn上破解了11款路由器,获得冠军,并拿下42万元奖金。
为什么要聊这个话题?
路由器是互联网络的枢纽——"交通警察"。目前路由器已经广泛应用于各行各业,各种不同档次的产品已成为实现各种骨干网内部连接、骨干网间互联和骨干网与互联网互联互通业务的主力军。
好,一本正经的介绍结束。我们来一个狂野版:现在的青年坐下来就找Wi-Fi,谁家还没有个把路由器啊!你家路由器要是被人破了,轻则只是被蹭个网,重则各种隐私信息,包括硬盘里珍藏的小片片都会被一洗而空!不甘心?!来,跟大神一起玩破解和反破解,只有知道是怎么被破的,才能预防被破!
嘉宾介绍:
赵汉青,长亭科技安全研究员,GeekPwn 名人堂成员。主要从事软件逆向工程、漏洞挖掘、exploit编写,熟悉智能设备漏洞挖掘与利用、Android本地权限提升漏洞挖掘与利用、浏览器漏洞挖掘与利用,2016年 GeekPwn 512,与杨坤一起以十一款路由器的漏洞挖掘与利用获得 GeekPwn 512 的冠军。中国海洋大学 Blue-Whale 安全研究团队队长,带领成员进行安全竞赛、漏洞挖掘。
问答精华回顾:
Q1
之前其他媒体对你有报道,报道的题目是《八九点钟的太阳,照在他的身上》,看照片也确实很年轻,能否再做一个高难度的“图+文”的自我介绍?
赵汉青:我本科过来的三年和其他本科生有一点点不一样,教室、班级或是宿舍并不是我的主战场,我是在实验室度过的,就这样我算是半个研究生,也受到了安全学术圈的很多熏陶,了解到了很多学术圈一线大佬的研究方向等,了解了非常多前沿的系统安全方面的技术。
当时我的学长崔勤(现在也在长亭任职)在2012年左右依托着实验室创办了一个CTF战队,算是比较早的开始打国内外比赛的战队。但是非常不幸的是我刚去实验室,学长就毕业了。虽然没有了老司机带,但是自己对这方面又十分的感兴趣,所以当时就自己天天呆在实验室白天黑天的解题、打比赛,总之就是自己瞎折腾,虽然走了不少弯路,但是还是成了一个赛棍,整个几年算是学了一点皮毛知识。
大约是16年初,过来北京以后就从以前的疯狂比赛转到一些real-world的软件、设备进行研究了。
Q2
雷锋网:请你介绍一下你所在的团队和长亭科技。
赵汉青:2011~2014年,几个年轻的创始人在兴趣的驱动下,最终孵化出了这个新兴的网络安全服务公司——长亭科技。
Q3
雷锋网:今年5月,在安全极客大赛 GeekPwn2016 澳门站上,你所在的长亭科技团队一口气攻破了市面上销售10款主流品牌路由器和1款摄像头,获得了最高奖金,请给大家介绍下为什么选择这10款路由器和1款摄像头?花了多长时间研究破解?真正破解一款路由器需要多久?
赵汉青:之所以选了那10款路由器,其实没有什么特别的考虑,在确定了澳门站我们要来展示路由器后,就是去京东输入路由器关键词,把销量比较高的全买了一遍,尽量每个大品牌都买了,这样可以使我们的研究在面儿上更能体现路由器的一些安全性问题,也能更好的引起各大厂商以及消费者的重视。
整个研究过程其实有几个月吧,从二月底到5月中旬,我们小伙伴们都一直在研究这个事情。这期间我们经历了选方向、选设备、漏洞挖掘、漏洞利用、演示准备、撰写文档等等环节。真正破解一款路由器的话其实并不需要太久,其实我们完成一个设备的破解长则需要一周,短的话其实一晚上就够了。
Q4
雷锋网:具体破解过程是怎样?介绍下酷炫吊炸天的技术吧!
赵汉青:首先,当然是去购买一个设备了。
在拿到一个设备时,第一件事情通常是去尽量收集一些关于固件、架构、端口等信息以方便我们分析攻击面,为我们之后对binary(可执行二进制文件)进行详细逆向分析提供便利。一般最容易想到的就是能拿到一个可以操作的shell进入路由器中查看,这样所有的信息对于我们来说就一览无余了。
如果可以给路由刷一个ssh或者路由本身就有telnet之类的shell,可以直接上去搜集信息。如果没有任何ssh之类的程序,我们可以拆掉路由器,观察焊点,因为有一大部分厂家在出厂时会好心的留下一个用于调试的串口,我们只要能找到这个串口然后连入一般就可以获得一个可以执行命令的shell。
(编者注:这是什么意思呢?就好一个特工想潜入一个家庭,先了解下家庭成员的情况,然后找一个最笨的成员给自己带路,而串口就是去了解这个家庭的一个手段。至于最笨的成员是哪一个?没有通用的寻找规律,每一个路由器都要经过一些攻击面分析、然后具体的逆向,才能找出程序员写出的漏洞,然后再利用。)
(编者注:SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。Telnet是常用的远程控制Web服务器的方法。)
如果串口不太明显,我们可以用示波器去测试,在串口向外输出的时候,示波器上回显示出规则的方波,让我们可以更准确的找到调试的接口。之后我们可以用USB转TTL的设备接入电脑,就有一个shell可以用了。
在有了一个可以用的shell之后下一步就是去找寻攻击面了,最容易想到的就是去打它开放的端口。
例如,上图我们探测到了一个对外开放的webserver,非常简单,接下来我们要做的事情就是根据端口找到对应的binary,接下来我们就可以对其做逆向分析了。
下面我来介绍一个非常简单的漏洞示例。
这是一个webserver的中解析参数的函数,通过简单的分析我们就可以看出参数长度并没有检查就被copy到了栈上,实在是再简单不过的栈溢出了。
虽然介绍的这个漏洞如此简单,但是在实际的分析过程中,由于binary一般都算是比较多比较大,还是比较占用时间的。
那么找到了漏洞以后,无非就是要继续想利用了,因为在这些智能设备上我们发现的漏洞都比较简单,所以用的利用技巧也相应比较简单。
遇到的小问题无非下面几个:
1.不能再栈上写0,但是如果我们要做rop(Return-oriented programming)的话,一般代码段起始的地址都是以0开头的。遇到这种问题我们可以对返回地址做部分改写,用一个“add sp,xxx”之类的gadget将栈迁移到高处。这样我们就可以在栈的高处继续做rop了;
2.如果开了地址随机化,我们不能直接做rop。可以先泄露一次函数的got地址,然后算出真正的代码段或是lib库的加载地址,然后在继续做rop;
3.遇到一些mips大端的架构,这样我们做部分覆盖的小trick也会失效,但是由于性能原因,我们发现大部分mips的路由都是没有开随机化的,所以我们可以干脆对lib基址进行爆破,就可以去用到lib里的gadget(一些指令片段)了。
在确定好写利用的思路以后,写的过程中我们也许需要debug,最通常的办法还是利用ftp或是tftp等工具传一个gdbserver到路由内部,然后用gdb进行远程调试。我们可以用一个非常好用的gdb辅助插件(https://github.com/kelwin/peda),使用效果如下。
之后我们用我们的exploit脚本(攻击脚本)发起远程攻击,就能远程获得路由器的最高权限,接管这台路由了。
Q5
雷锋网:还有一个重要问题是,为什么朝路由器下手?
赵汉青:选择路由器作为主要研究对象的原因是:在去年的极棒上,我们重点研究了多款网络摄像头。而对于路由器我们只研究了一款,就发现了多个安全漏洞,这引发了我们的兴趣和担忧。
路由器作为家庭的上网入口,连接了许许多多的设备,不仅笔记本电脑、手机需要连网,还有越来越多的智能设备。例如,摄像头、网络电视、智能插座、智能烤箱等也同样接入了家庭网络。因此,路由器这个网络入口设备的安全性就显得尤其重要。一旦路由器存在安全漏洞被黑客攻破,家里的其他设备就会更容易被监听、劫持,甚至长期植入后门。
如今,路由器市场竞争激烈,很多传统大品牌大厂商都推出了自己的产品,主流的品牌非常多。我们希望能用自己的技术积累,对各大知名品牌路由器的安全性做一些分析和对比。尽可能多、尽可能早地去发现问题,从而来提醒消费者和厂商。一方面,想引起路由器厂商的重视,推动他们在安全方面投入更多的努力。另一方面,让消费者理解安全的重要性,提高对安全的诉求。
现如今在PC、浏览器等的漏洞挖掘都已经进入了“very-hard”模式时,想完成一次此类的攻击通常都需要几个精巧的漏洞的巧妙组合。然而现在的”IOT设备”基本是10年前PC的安全水平吧。更确切的话,我们有一位小伙伴曾经讲过一个非常精髓的话:”感觉现在做所谓的‘IOT设备’的还是处在设计的时候不考虑任何潜在的安全问题的状态,劝都劝不动”。所以现在市面上的各种智能硬件从设计上对安全的考虑还是要再学习一个。
Q6
雷锋网:这些路由器被破解后,后续发生了什么?厂商有找你们吗?说说后续可能的“金钱诱惑”吧?
赵汉青:大部分厂家其实是非常友好的,例如华为、极路由等厂家都非常重视这些安全问题,其中大部分的厂家都积极的与我们取得联系,在我们向厂家披露后也进行了积极的修复工作,之后对我们表示了感谢。还有像华为还非常好心的帮我们申请了CVE编号,确实是良心厂商。
对于”金钱诱惑”是没有这种事情的,因为我们研究的初衷就是让厂商和大众能看到这些问题,一起联合起来去改善这个现状。所以我们从来都是只协助厂家修复漏洞,不做过分的披露。
Q7
雷锋网:吃瓜群众最好奇的是,路由器破解了之后会有哪些后果?能否举例一些具体场景和案例?比如,要追一个妹子,可以通过破解她家的路由器了解她的各种喜好吗?
赵汉青:
上图是我们研究的一款我们可直接访问到的有安全问题的路由在2016年5月左右在全球的分布情况。这个数字大约接近5万,也就是说凭着一个路由的漏洞我们就可以构建一个规模如此巨大的僵尸网络,不说接管所有用户的流量使得用户的隐私受到侵犯。如果有不法分子利用其做DDOS之类的攻击,后果是非常之严重的。
其实当对一个路由发起远程攻击并获取最高权限以后,就完全接管了这个路由的一些,从这个路由中走的所有流量都会被接管,你不仅可以了解到一个平常都在看什么网站,用什么App,甚至一些敏感的私人信息,比如账号名、甚至有可能是密码都是有可能知道的。甚至可以让使用这个路由上网的人在访问正常网站时被导向钓鱼网站。所以如果大家有这种担心的话,平时还是要注意不要将自己的路由暴露在公网上。在公共场合也最好不要连入陌生的、免费wifi之类的 上网,这都是同样不安全的。当然对于追一个女孩儿的话,建议大家不要去搞这种奇奇怪怪的东西,还是用心好好交流体会陪伴比较好。
Q8
雷锋网(公众号:雷锋网):除了你们的破解路径,还有别的主流破解路径可以说说吗?
赵汉青:在这里我们总结了一个hack一台智能设备大约需要的过程。
1.当然是买一个
2.去搜寻它的固件(官网下载或者直接抓取更新链接)
3.最好能得到一个可以用的shell以便搜集信息
4.找寻攻击面
5.逆向分析或者像openwrt之类的会有一些脚本我们可以审计
6.写利用代码
那么还有其他的一些途径来入侵一台路由,比如,路由的加密采用的是WEP这种易于破解的,就可以通过一些暴力手段来加入一台wi-fi路由,之后再进一步做一些其他的事情。
Q9
雷锋网:事实上,没有什么技术基础的吃瓜群众可以在听了你的讲座后破解一款路由器吗?有壁垒吗?
赵汉青:大家听了这么多之后,其实可以感受到,现在大多数所谓智能设备的漏洞其实还是比较弱的状态。只要大家有一些计算机系统的基础或是做过一些程序的开发,只要再加上对逆向和简单的漏洞利用有一定了解其实就可以去尝试hack一台路由了。
所以对于没有技术基础的群众们来讲的话,可能还会是有一定的难度,谈不上壁垒,但是完成这个事情还是要有一点点的计算机方便的综合能力的,就是软件硬件都稍微懂点就可以了这样。
Q10
雷锋网:除了那十款路由器,可以总结下一般路由器的漏洞吗?
赵汉青:从平时研究来看,路由器本身可能存在的安全问题大致包含以下3类:
1. 暴露了较多远程服务,这些服务可能存在漏洞,增大了攻击面;
2. 管理平台存在默认账户;
3. 功能设计缺陷可绕过验证登录管理平台。
在我们实际的研究过程中遇到的具体问题大概有下面几种:
1.一些系统配置文件的注入
2.栈溢出
3.堆溢出
4.命令注入
5.弱认证
6.内存信息泄露
7.由sql注入而间接导致的栈溢出
Q11
雷锋网:可以反过头来技术支招下,如何防止路由器被破解吗?可以分为专业技术级与普通吃瓜群众级来说一下吗?比如一个专业做网络安全的人和一个不想被人追的普通妹子,操作肯定会不一样。
赵汉青:针对以上安全问题,我们建议厂商提高在设备安全方面的投入,提高产品的安全性。这不仅是对消费者负责,也是为自身可持续发展铺路。在改进产品的安全性之前,可以先多了解黑客攻击的过程和方法,针对黑客攻击流程中的每一步去做相应的防护。例如:使用自定义固件格式、对固件做加密和签名校验,来阻止攻击者轻易拿到软件来分析或篡改;尽可能多的去减少暴露的攻击面来降低风险;当然根本解决问题还需要编写安全的软件,现在很多厂商的软件中依然使用了不少危险函数,建议首先对这些函数做替换。
对于普通用户,我们强烈呼吁他们要形成安全保护的意识,养成好的信息保护习惯。针对路由器来说,虽然目前漏洞很难避免,但是只要保证家庭内网不对外开放,不给不信任的人接入,路由器不对公网暴露,就可以相对安全一些。具体来说,这些保护措施包括:WIFI密码使用强加密算法例如WPA2,而不是容易被破解的WEP;禁用路由器WPS功能,防止PIN码被破解;不用所谓的wifi蹭网软件,因为你在蹭网的同时也会将自己家里的wifi密码分享出去。
Q12
雷锋网:可以讲解下“破解不成快要抓包”的场景吗?即如何发现有人在破解你的路由器?
赵汉青:其实我们今天所讲的路由器的破解并不是说对一个路由的登录密码做爆破或者怎么样。在对路由器的系统固件做完分析,开发出漏洞利用程序后,其实发起攻击大多只需要一瞬间就可完全接管目标路由器。所以从这个角度来说,想要发现有人正在攻击你的路由,对于普通用户来讲其实是比较困难的事情。但是我们平时通过一些简单的措施就可以大大降低自己家路由被攻击的几率,比如说设置非常复杂的连入口令,绝对不要让不可信的人连入你的wifi等。
Q13
雷锋网:之前思科说宇宙射线会导致路由器 bug,参考雷锋网发文:宇宙射线会导致路由器 bug,思科你认真的吗?你怎么看?
赵汉青:这种以及类似的事情的确是有可能会发生的。就像生物的染色体在收到一些宇宙射线的照射会发生基因突变一样,电子设备在受到了一些强烈辐射其内存可能也会受到影响。更实际的也有类似的事情,比如,2015年project zero曾发现RowHammer漏洞,在最近的安卓上也出现了利用方法,虽然这个是由于硬件上设计的缺陷导致的,通过频繁访问内存中的 一行数据,会导致临近行的数据发生反转,加以巧妙利用可导致权限提升等问题。
所以思科所说的这些事情在硬件设计有缺陷或者其他特殊的情况下完全也是可能存在的。但是就我们所更关注的安全问题来讲,通常我们把可以利用的bug才叫做漏洞,不可利用的bug可能更多的只是会给用户或者管理人员带来使用上的不便。对于这种宇宙射线导致bug的事情其实我们普通民众并不需要过多的去担心,第一个我个人认为碰到这种事情的概率蛮小的。第二,就算可以触发bug其利用难度也许比较大。所以对于我们普通民众来说不需要担心,当成好玩的事情了解就可以了。
Q14
雷锋网:除了破解路由器,你们之前还朝什么下手了?之后又打算朝着什么下手?为什么?
赵汉青:我们之前对一些例如POS机等支付设备,智能摄像头,甚至现在越来越普及的平衡车、各种蓝牙设备都有过一定研究。
在此次geekpwn1024大家可能已经看到了我们对客户端漏洞的一些研究成果,在之后的日子里,我们更会不光局限于智能设备、linux kernel、windows kernel、Android kernel、浏览器、安卓系统服务、以及IOS都有可能是我们的下一个目标,所以大家敬请期待我们以后的消息吧。
那之所以会把注意力转移到其他地方主要还是因为团队风格和我们个人的兴趣吧,我们大多数人的兴趣其实还是在客户端上,还是更渴望去玩一些更加有趣、更加有挑战性的东西。
Q15
雷锋网:听说你们在2016极棒大会上又搞了一个项目?可否详细介绍?
赵汉青:在今年1024的geekpwn上,我们团队的slipper通过对PS4浏览器引擎与操作系统内核的攻击,实现和演示了对最新版本4.01的远程越狱。大家可能知道geohot是世界上第一个越狱ps3的人。国外团队fail0verflow也曾实现过PS4较老版本的破解。算起来这应该算是世界上第二次公开破解PS4。据我对攻击细节的了解,索尼对PS4的内核做了非常多复杂的mitigation(攻击缓解措施),整个利用过程非常的复杂和巧妙,所以完成这件事情其实是非常令人激动和佩服的。在杨博士和slipper演示了越狱之后,也引起了国内外的疯狂讨论,twitter、fb、以及国内各大游戏网站、媒体都对这个事情非常的关注。也请大家继续在近期继续关注我们的twitterCchaitinTech,我们会有更多新消息放出。
另外我们还在今年的的geekpwn 1024上利用手机驱动中存在的漏洞,演示了一款安卓智能手机的root,演示了在手机装了我们的app并运行后,即可替换掉开机画面(只有手机最高权限才能替换开机画面),并将手机里的照片窃取穿回我们的服务器,在之后的时间里我们也会继续对Android或 iOS系统的内核安全作出贡献。
Q16
雷锋网:在长亭科技介绍中,你是核心成员之一。你才大三,年纪轻轻,想八卦下是怎么进长亭,然后又这么酷炫的?
赵汉青:大约在16年初,当时我适逢在北京参加一个世界大学生超级计算机竞赛的训练营,然后经由我的学长介绍在那个时间第一次见到了杨坤博士,后来我就参与到其中,开始和大家一起玩real-world的设备和软件了。
真正炫酷的并不是我,我们团队的杨坤博士、slipper、Marche、CC还有其他小伙伴都是年纪非常轻,但个人能力非常之强也非常炫酷的人。当初刚过来其实什么都不会,然后杨博士就教我们各种知识,各种技巧,带我们学会了非常多的东西。大家一起攻坚克难,每天的生活充满了机遇和挑战,十分的开心。
自己可能比较早的接触了一些不管是学术圈还是工业界的事情,也能体会到纯研究型的实验室、或是组织、团队可谓越来越稀有和珍贵。能在这样一个地方和大家一起折腾一起玩无疑是非常开心的一件事情。大家每天吃饭、睡觉、膜slipper。互相分享、共同进步,研究最前沿的东西。有一群志同道合的人一起玩就每天非常开心。
自己未来的话并没有想太过远,如果没有一些重要的变数的话,5~10年内应该不会考虑一切其他事情,因为自己还欠缺的非常多,只想能把握住学习的机会,每日有所提高,和大家一起做出一些比较有趣的研究成果吧。
Q17
雷锋网:你们是怎么花极棒的奖金的?听说有42万?
赵汉青:首先当然是会请全公司的小伙伴们吃一顿大餐。然后给每人发一个大大的红包,最后从里面抽取一部分作为后续研究的经费,剩下的部分分给为这次比赛付出的同事们。
互动环节:
听众:接触式的路由器,就是手机在路由器上滑一下然后自动链接的那种,容易远程被破译吗?
赵汉青:不管是什么有着花里胡哨功能路由器,它的身上都是有着最基本的路由器的功能的。那么不管是什么样的路由器,那么如果我们能够远程访问到这台路由的话,假设它存在一些远程服务的内存或者其他漏洞的话,我们并不一定需要知晓它的密码,在对存在漏洞的远程服务进行攻击利用后,即可远程获得路由的最高权限。即使现在我们依然不知道这台路由的登入密码到底是什么。
听众:自己的路由器如何才不会暴露在公网上?
赵汉青:其实现在大多数的路由器都已经自带了防火墙功能并且默认打开,对于一台连结内外网的路由,只要大家不去关掉这个防火墙,路由也就不会暴露在外网上。
听众:针对未知联网路由器怎么开展攻击?
赵汉青:那么在此我认为这个问题所说的未知代表的是:“这台设备是联网的,你可以远程访问到他的服务,你不知道它到底是不是路由,你不知道它到底是那个牌子,型号的路由”。对于此种情况其实是在一些实际的渗透测试中会遇到的。所以用一定的手段收集信息就显得尤为重要,通常的方法是通过对远程服务做端口扫描,向远程服务发送数据包,从返回的信息中搜寻指纹,利用开放的服务类型、一些版本、型号信息确定这台设备到底是什么。之后我们可以购买这台设备、或者下载这台设备的固件进行测试和研究。在本地调通以后,再对远程设备进行攻击。当然这一切必须要在已授权的情况下进行。
听众:第三个问题补充一下,远程可以访问到IP,其他情况未知,判断是什么设备,如果是路由器怎么开展攻击?
赵汉青:这个在回答的第二部分已经提过了,通常的方法是通过对远程服务做端口扫描,向远程服务发送数据包,从返回的信息中搜寻指纹,利用开放的服务类型、一些版本、型号信息确定这台设备到底是什么。可以实际购买一些设备和远程的服务开放情况,返回包信息等做一些匹配,在买到确定的设备或者下载到固件后,对其进行一些逆向分析,寻找并发现漏洞。本地调通之后再进行对远程的攻击。再次强调,必须要在已授权的情况下进行。
听众:手机4G做热点共享wifi,有机会被破解吗?
赵汉青:手机做共享热点和我们平常wifi连接一台路由的技术是不一样的,攻击面是也不一样的。因为个人并没有对此做过深入研究,无法过多解答这个问题。
听众:希望推荐学习这方面知识的书,还有需要学习的知识。
赵汉青:其实对智能设备的安全研究最终还是要回归到逆向工程和二进制漏洞利用上的。首先要学好计算机基础课程、打好计算机知识基础,这样有助于我们更好的学习一些安全技术,将技术变通的应用于多种场景。路由器的固件其实大多也是一个小型的linux操作系统,所以初学的小伙伴还是要打好操作系统基础,对linux或者VxWorks系统有一定的熟悉度,那么在对其中的一些binary分析起来就可以更加的得心应手。那么对于一些漏洞利用技术的学习可以参考一些往年的CTF比赛中出的挑战题,这些挑战题目多小而美,可以使我们快速学习到一些有趣的漏洞利用技术。对于知识的储备,可以参考0ops安全技术战队小伙伴给出的书单和练习网站。(《程序员的自我修养》、《深入理解计算机系统》、《算法导论》、《密码学应用》、《编译原理(龙书)》、《鸟哥的私房菜》、《白帽子讲Web安全》)此外,还有一些在互联网上具有代表性的关于CTF竞赛相关的练习资源:
逆向工程:bbs.pediy.com,www.52pojie.cn,crackmes.de,reversing.kr
漏洞挖掘与漏洞利用:smashthestack.org,pwnable.kr,overthewire.org/wargames/vortex/
网络渗透:www.wechall.net,pentesterlab.com
CTF竞赛题目汇编:github.com/ctfs,shell-storm.org/repo/CTF/
。
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/82164.html