黑客们的夏天—IoT环境下IP Cam快速入侵思路

robots

 

作者:M.A.L@vmOS

0x00:引言

遵从摩尔定律的预言,IP Camera(国内叫网络摄像头,国外叫做IP Camera或Cyber Camera)的价格连创新低,如果不购买厂商提供的云服务或者打了Logo的Flash Card(比如,数字公司,小米或者海康威视旗下的萤石云等),一款IP Cam价格仅为数十元人民币。当然,你若是咸鱼上的老猫,还能拿到更加低廉的价格,虽然成色欠佳(相较于全新货品),但是质量没的说(我一口气买了仨),保证你该看的看得到,不该看的也跑不掉。正是如此,在我们身边几乎每一个角落(除撒哈拉,腾格里,马兰戈壁滩或者沿海孤岛)几乎到处都有IP Cam,大到飞机场,高铁站,巨型Shopping mall,小到你家楼下二姑妈的小舅子开的早餐铺子或者奶茶店。那么,我们能否沿用我们team惯有的“做案”手法,在Android或iPhone上基于Linux模拟器快速搞定某个公共场所的IP Cam呢?并且,考虑到手机自身的供电问题以及可能的“身份暴露”,我们如何才能在最短的时间内搞定任意规模网络下的IP Cam呢(哪怕一个IP Cam也行啊)?

 

0x01:我们是这样想的

1)问题的讨论范围

1.1)关于网络

——我们所测试的“目标”都是无法从运营商网络中找到的局域网,IP Cam通常是通过一个无线路由器和运营商的一个光猫(这年头,估计也没有电话线拨号的猫了吧)接入互联网。当然,某些情况下“目标”中IP Cam所在的网络甚至无法接入互联网,这正是IoT Hacking的魅力所在(当然,IoT Hacking也有很操蛋的地方——费钱)。

——我们hacking所用到的设备(Android设备和iPhone手机)仅能通过Wi-Fi接入“目标”网络。当然,我们要强调一点,我们不一定是直接通过Wi-Fi接入IP Cam所在的网络,或许会拿下intranet中的某一台IoT设备,然后开启热点并以此作为“中间人”切入到IP Cam的核心网络。

1.2)“中间人”

由于整个Hacking是没有任何预演的,这也是IoT Hacking很独特的地方——并不是所有的hacking都能复现,因为你这一生或许只有一次机会能接触到“目标”(比如,看守所……)。当然,我们也不可能预先通过互联网侵入“目标”,然后在内网弄一个立足点。

——整个hacking过程中几乎都会接触到Wi-Fi Router,但是能接触到的几乎也只有这货。然而,这货存在remote exp的概率不大,因为你会发现有太多品牌的Wi-Fi Router了,你没有足够时间去网上找exp,调试exp,完了再用exp去打router。有这闲工夫,干点啥不好啊。。。

——IoT设备。既然做IoT Hacking当然免不了IoT设备。不过,我们还得再强调一点,不要限制自己的想象,大胆地去想象各种可能的IoT设备,你会发现经验的贫瘠同样会限制你的想象。而且,这些IoT设备很可能会帮助你绕过Wi-Fi密码这一关口,直捣黄龙!相信我,没错的。

——前面,我们都说了我们用手机干掉IP Cam,因此就别去用传统的hacking思路了,别老是惦记着管理猿的电脑和f*cking domain srv。

1.3)穿着雨衣的淋浴

因为我们选择了不一样的hacking设备作为我们的工具平台,那么我们必须适应这个平台给我们带来的诸多麻烦。

——近源的hacking。我们必须想法设法靠近“目标”,尤其是当你选择了以Wi-Fi信号无比糟糕并因此而臭名昭著的iPhone时,你更得想办法靠近靠得更近,要么靠颜值,要么靠卖萌,要么靠装逼。。。

——hacking的时间持续性。腰不好,靠肾宝;手机没电,得找充电宝(不知道哪个8th Turtle Egg想出来的)!虽然Linux模拟器功耗并不大,Wi-Fi的流量也挺小,但是耐不住电池容量有限啊,不够持久是智能手机作为Hacking Platform的一个严重问题(心塞)。

——一次就好!如前文所说,IoT Hacking具有很强的频次限制,时间不够持久,那也就算了,完了次数还很少(崩TM想歪了)。

 

0x02:怎么干?

1)不能瞎干,得准备

毛主席说过:不打无准备之仗,不打无把握之仗!虽然,我们不知道最终的“目标”是什么,因为我们team最稀饭的就是hacking while walking!但是,功课还是得做啊!

——常用的默认网关地址。首先,我们得提出表扬,绝大多数网管猿都是好学生、好徒弟,按照师傅说的把网关地址规规矩矩的配置为…1或者…254。其实,从网络运维的成本和可能的人员更迭的角度来考量,这的确算得上一个好习惯,但凡事不总得分两面看吗,对不对?

——主流IP Cam的默认密码。虽然,Wi-Fi Router在登录口令安全性上已经做了很多不近人情但确实安全有效的策略,比如首次登录必须改密码,密码复杂度不再那么B B,甚至重置都还得让你扫个码。但是,IP Cam这玩意儿没做的那么好,一众一线品牌依沿用传统的默认账户和口令,当然也可能是人家替上帝们考虑得多了些,自然就把安全因素考虑得少了一些。

——主流IP Cam的各种exp,当然侏罗纪晚期或白垩纪早期的漏洞最好就别考虑了。从我们的观察来看,部分厂商可能(再说两遍,可能,可能)默认开启了高危漏洞自动升级、打补丁功能,因此那些解决珍藏价值的漏洞就别考虑了呗。再者,IP Cam成本低啊,据master说,更新换代、要经费的事儿,leader们都抢着干呢!你还掺和啥呀。。。

2)干掉Wi-Fi

按照套路来看,Wi-Fi这个拦路虎是必须掰倒的,当然总有些密码命太硬,就别死磕了,绕着道儿走就完了呗。Team之前在安全客写过文章,大致好像是关于IoT环境下的Wi-Fi密码破解(好像是这么个title),大致思路如下(排名不分先后,关键看个人喜好):

——弱口令。由于Wi-Fi密码自身的社会属性,你可以根据“目标”所处的场合,使用各种不同的弱口令进行尝试。比如,在我们麻省的各大茶楼和麻将馆,“88888888”一直都是我省Wi-Fi弱口令爬行榜榜单上的霸主,且始终无法撼动。我家楼下麻将馆就这个密码(我姥姥跟我说的)。。。

——第三方软件泄露。习惯性从心,此处略过1万字。。。

——在线爆破。这个是master正在研究的课题(据说,是要用最原始、最简单、最粗暴的办法搞定最让人*疼的WPA3),不懂的请绕道,别哔哔,后面master会放大招的。

——抓包破解。这类文章太多了,再省略几百个字儿吧。。。

——Fluxion社工诱骗。首先,不好使;再者,不好使,在手机的Linux模拟器上就没法使(至少当前Fluxion版本如此);最后,如果没人输密码,你觉得能好使吗?F*ckiing Fluxion

3)大海捞针

从接入一个网络到搞清楚其大致拓扑是需要一个过程的,尤其在你没有路由器或者网关密码的时候,当然有些网络会部署网络流量监控设备(往往有无需密码的预览界面),这在一定程度上可以加速网络拓扑认知的过程。然而,内部网络中的子网发现往往是必不可少的。

——traceroute进行路由发现。搞清楚自己在网络中所处的位置还是很重要的,尤其是当你在一个10段里头。

——ndis,一个非常mini的内网发现小脚本,具有一定的可扩展性。我个人不建议使用nmap进行子网发现,毕竟我们要的和nmap能做的并不完全一直,甚至是后者所能提供的一个微小子集。因此,我们还是建议针对各个子网可能的默认网关地址,如前所说的师傅们要求配置的…1或者…254。实践证明,这玩意儿确实好使,而且可以自动兼容Linux和Darwin(MacOS)。如果你觉得有必要,完了还可以给它加上随机扫描的功能。这个小玩意儿也是master做的,你们有兴趣可以在gayhub上下载:https://github.com/virusmore/virusmore/tree/main/Hacking%20APP/ndis

——网关与路由,网络拓扑信息就直接体现在这些网络设备上,通过他们可以很快找到你所在网络可能触及到的其它子网,但并非全部。也就是说,不能把宝全压在这上头。

4)摸鱼

网络拓扑结构搞清楚了,自然就要浑水摸鱼了。Nmap无疑是这活儿的最佳担当,当然也有一些专门针对Hikvision IP Cam的扫描工具,如果你不能确定内网的IP Cam产品类型,最好还是老老实实的。

通常,IP Cam会开放22,23,80等端口,毕竟需要给用户留出配置的交互接口。因此,我们可以基于ndis的结果,使用nmap对所发现的网段进行扫描。由于过滤掉了那些未启用的子网,整个扫描的时间消耗会急速下降。再者,考虑到内网延时极低,可以配合使用—min-hostgroup参数,来一个极致加速。

还有一个问题就是,像小米,萤石等家用的IP Cam是基于云架构,因此通常不会开放Web配置或SSH配置所需的端口。但是,它们通常会启用UPNP来穿透内网,因此不要放过这些UPNP端口。

 

0x02:达闻西与“要你命三千”

其实,我一直很不爽星爷对默默无闻、脚踏实地的科研工作被研究人员“达闻西”的无情讥讽与嘲弄。为什么呢?你见过哪一款工具能够“人挡杀人,佛当杀佛”吗?Kali再强,那不也是一堆“砖瓦”垒砌来的。国外有人说“除了吃饭,其他一切我都可以用Metasploit完成!”你看,Metasploit那也不是万精油啊,能替代了刀叉筷杵,斧钺剑戟吗?因此,我个人是非常认可达闻西同志的致命武器:要你命三千!向达闻西同志致敬!

在IP Cam这事儿上,我们会用到以下几个工具,个顶个都是可以独挡一面的“绝世武器”:

——Kali Nethunter。虽然,nethunter一身臭毛病,问题是人家知错能改啊,稳定啊,更新及时啊,留给你自个儿的空间大啊。

——ndis。据说,master已经反复修改、调优,但看起来也不咋地,不知道他老人家是不是传错版本了。听说,人老了记性就容易不好(哈哈哈…)。完了,他死活不愿意把随机ping功能加上去,扔一句“谁要用,谁改去”。得了,惹不起,躲着呗。。。

——nmap。其重要性和不可替代性,不言而喻,也就不哔哔了

——kurl。在我看来,这玩意儿就是一个demo,用来验证curl可以应对各种常见类型的HTTP-Authentication。哈哈哈,刚好绝大多数的IP Cam都是采用HTTP-auth认证的,因此master的demo其实是一把没有开刃的杀猪刀啦。当然,谁要用,谁改去。于是,我改了一个版本,还行,挺好使的。

 

0x03:上硬菜吧

1)校园网环境下的IP Cam Hacking

其实吧,这个案例不是我完成的,是DuncanSec的小羊羔(L.A.M)去广元参加了一个比赛,完了顺手把一个什么信息技术学院的Wi-Fi内网撸了一把(https://www.anquanke.com/post/id/240652)。

L.A.M一开始尝试了各种可以切入该学校校园网的方法,但是因为账号等问题始终无法达到目标。后来,他遵从我们team一贯以来的hacking while walking原则,在他们学校的一个物联网学院找到了网络接入口。当然,他一开始并没有直接奔着IP Camera去,但是他的确搞定了他们的IP Cam 录像机。关于这个case,具体内容大家去看看小羊羔崽子的原文本。IP Cam也不例外,弱口令仍旧是这类设备的一大安全隐患。

2)一个培训结构

暑假来了,我的一大任务就是带着我弟去培训班。这个培训班挺有意思的,他们有两个无线Wi-Fi,一个是给像我这种陪读书童的公共Wi-Fi;另一个是给内部员工专用的叫做“xxx-staff”。都不需要使用任何的工具或者技术手段,从他们墙面儿上贴的“温馨提示”就能找到Wi-Fi密码。虽然,我很确信这两个Wi-Fi是在同一个无线路由器下头(省钱啊),但是我依然很期望搞到他们的员工Wi-Fi密码。

抓包是已经成功了的,毕竟他们那么多员工,总有一个的手机会很容易被deauth命令强制下线的。不过,我并没有去尝试破解握手包。因为,我瞅着他们有一台Seewoo,明显是安装的Windows 10系统。于是,乘着四下无人的时候,直接翻看了他们内部员工用的“*-staff”Wi-Fi密码。其实,这类通过IoT设备截取Wi-Fi密码是整个IoT Hacking中有效获取Wi-Fi密码的一种有效方式。还是那句好,不要轻易就去约束自己的发散思维。

通过弱口令,可以登录到TP-Link的企业级路由器(支持Wi-Fi)的,可以看到详细的Wi-Fi Router配置。

通过ndis可以快速发现192.168打头的两个C段网络。其中,192.168.*.1其网关信息如下。可以看出,这家培训机构应该不缺钱,还专门买了网络安防设备。然而,该设备自带的绝大多数安全防范功能并未启用。

在这个Wi-Fi所处的子网中存在大量的海康威视IP Cam,利用网上比较容易获取的Cxx-2019xxx漏洞,发现该漏洞已经被修补。即可可以确认,该漏洞极有可能是自动修补的,这么小一个培训机构(小微企业)不太可能安排专任负责IP Cam这类物联网设备进行升级、更新。

3)一个图书馆

这是一个很大的图书馆,里面有大量的IP Cam,查询终端,智能借阅/退阅设备等等。然而,不巧的是,近期该图书馆正在进行Wi-Fi网络的升级。而且,很多可以用作“中间人”的设备都在很显眼的位置,没法持续操作。完了,发现有一个Wi-Fi看起来很像是正在调测的图书馆公共Wi-Fi,再挣扎一把,尝试抓包。结果,等了半天没有任何数据。。。天意如此,那就先放个占位符在这里吧。

 

0x04:打个结

1、IP Cam机会没有任何保护。当然,我们所说的保护并非在IP Cam上安装HIPS,而是说就算内网配备了企业级Wi-Fi路由器,甚至是安全设备,这些设备几乎都不会被启用,完全沦为摆设。

2、在我们身边广泛存在。虽然IoT Hacking是个费钱的研究,但是很多IoT设备其实在身边广泛存在,可以进行一些Ethical Hacking。

3、更多的攻击面。IoT的应用速度实在太快了,已经远远走在了人们安全意识转变速度的前头。当很多人的网络安全还停留在PC端的时候,他所拥有的的IoT设备数量或许已经远超其占有的PC数量。就像前文提到的,seewo这样的智能触屏黑板(电子屏幕)能够直接将Wi-Fi密码暴露给我们。

4、对于Hacking技术的约束更多了。一方面,移动端的算力远远不及PC;另一方面,很多PC端的“王道”工具,比如Burpsuite等还没发在Linux模拟器上使用,还需要一些时日。

5、IoT设备沦陷往往会对内网造成更加直接的影响。因为应用场景特殊加之运维人员安全意识的不足,这些设备一旦沦陷,黑客就能直接触碰内网。这一点与传统的Web渗透差别较大。国内,即便hacker轻易拿下外网的服务器,这些服务器很可能在运营商或者云服务商的机房,再者还有防火墙,IDS,IPS兜底啊。

6、运维人员和使用者对IoT安全的理解存在普遍的欠缺,甚至有点“鸵鸟效应”,尤其是在基于Wi-Fi搭建的IoT环境中。虽然,hacker很难接入网络,但这并非绝对不能接入。而且,即便如此,这也不应该成为直接使用无线路由器和网络安全设备默认密码而不进行更改的原因啊。

 

0x05:参考

  1. L.A.M. 基于智能手机的近源渗透案例分享——持之以恒. https://www.anquanke.com/post/id/240652
  2. 閦蠱. Kurl——轻量化http-authentication在线暴破工具. https://www.anquanke.com/post/id/245018
(完)