DEFCON会议22. GTVHacker集团。 破解一切:在45分钟内破解20台设备。 第一部分

阿米尔·埃特玛迪(Amir Etemadi):我欢迎大家,并欢迎参加GTVHacker的演讲“在45分钟内拥有20台设备”。 自2010年以来,我们一直是原始Google TV产品以及Chromecast,Roku和Nest等产品的创建者,并且还发布了适用于所有Google TV设备的漏洞利用程序。



那我们是谁 我是由GTVHacker创建的Accuvant Labs的研究科学家,CJ是团队负责人和安全研究人员,有时还担任技术开发人员。 汉斯·尼尔森(Hans Nielsen)是Matasano的高级安全顾问,而迈克·贝克(Mike Baker)开发固件,并且是OpenWRT的联合创始人。

我们小组中有8位成员,其中包括Gynophage,现在他从事的事情叫做DefCon CTF,Cydia的创建者Jay Freeman,学生Coa Hoang和Tom Dwenger(APK以及与Java相关的一切专家)。

那么,为什么我们决定入侵设备,为什么不选择我们也不喜欢的软件呢? 您知道,一旦设备过时了,它的寿命就将其扔进垃圾填埋场。 实际上,旧设备正在杀戮,而且这样做没有用,就像Logitech Revue那样。

我们为废弃的设备赋予新的生命,我们还一直在努力使产品更好,为其提供更多功能,并且如果可以做到,我们就可以做到。 我们喜欢回答技术难题,就像您想解决的难题一样。

学习当然是一个了不起的过程,但是此演示文稿的实质可以用语言表达:

“你有根!”



本质上讲,“在45分钟内破解20台设备”,即在演示过程中,并没有使我们有太多时间花在每个设备上的细节上。 因此,我将向您展示展示之后将进入我们的Wiki的设备的展示。 我们将向您介绍技术细节,设备图以及我们能做的所有事情,因为它很难阅读。 在幻灯片的底部,您可以看到一个链接,可以在演示文稿之后使用它来访问演示过程中显示的所有内容。 现在,我请我的同事发言,他将告诉您“攻击的前景”。

汉斯·尼尔森(Hans Nielsen):有无数种攻击此类设备的方法。 今天,以这20种设备为例,我们将考虑3种主要的黑客攻击方法。

首先是使用位于设备本身中的调试端口。 第二种方法-我们可以使用串行端口或EMMC存储卡,这是SD卡的过时版本,可以连接到设备并修改存储。 第三种方法是直接访问操作系统,这使您可以通过命令行实施一堆命令,以引起最常见的消费类电子产品错误。

因此,我们来谈谈UART-通用异步收发器。 开发人员使用它来调试设备,并且不再承担任何功能负载。 这是一个非常简单的接口-一根导线用于传输,另一根导线用于接收,第三根导线用作接地。



他们问我我几岁-我回答,我今年27岁,谢谢您的提问! 因此,这里使用了非常简单的数据交换协议,并且端口本身可以使用不同电平的电压(例如1.8V,3.3V或5V)工作,并且是串行端口,类似于计算机中的USB端口。

因此,您有几个免费的适配器,可让您使用自己的设备玩游戏,我希望您能从中获得尽可能多的收益。 那么如何使用UART呢?

考虑一个特定的设备-MFP Epson Artisan 700/800,它既是打印机,扫描仪又是复印机,可以用作网络打印机。 它由Linux 2.6.21-arm1控制。 该怎么办? 如果打开外壳,则可以看到印刷电路板上有4个触点:接收,传输,接地,电源。 这是经典的UART连接选项。



在此处连接调试端口后,我们看到了打印机设置的控制台菜单。



我们可以重新启动打印机,重置设置,执行任意的shell命令,执行我们需要的任何命令,通常,在我们的打印机上玩得很开心。

第二个设备是带有Internet控制功能的Belkin WeMo智能插座。 它允许您使用手机通过Internet打开咖啡机和其他家用电器,并且被不同的人广泛使用。



这是一个相当小的设备,因此很难在印刷电路板上读取符号。 但是,我们找到了接收器和发送器的触点,并将UART连接到它们。 此后,Internet报告该设备已打补丁,但事实并非如此。 原来,我们只有2秒钟可以输入命令,然后设备会自动重启。



在正确的时间,我们设法输入了一个“杀死”重启脚本的命令,之后,我们可以使用此智能套接字执行任何操作。

第三种设备是Greenwave Reality智能灯,它是Phillips Hue的竞争对手,它使用ZigBee顶级网络协议,对此已经有很多说法。 有趣的是它使用了PowerPC微处理器。 在启动过程中,此指示灯提供了一个SSH服务器,我们没有密码。



打开盒子时,我们还找到了UART的联系人。 该设备配备了可加载和运行Linux的通用开放式引导U-boot引导程序。 使用此引导加载程序,您可以执行任何操作-重新刷新设备,更改内核的命令行。 例如,您可以在Linux启动时附带各种选项,例如,允许您查找设备内存量。 我们通过更改bootloader命令行获得了root权限。 为此,我们通过UART连接,将bin / sh模块插入内核命令行,然后进入引导加载程序外壳。



为了将来安全使用该设备,我们破解了thinkgreen密码以访问根权限。

第四个设备是File Transporter,这是一个能够通过网络传输数据的闪存驱动器。 这是一种便携式“云”,它使用具有1 TB容量的经典格式HDD的大硬盘来存储文件。 您可以将其连接到家庭网络,并访问各种家庭设备上的文件。



这种“文件传输”最近在市场上出现,是运行Linux的一种相当标准的设备。 这是一件相当有趣的事情,从中取出外壳后,我们很容易找到了一个用于连接UART的适配器。



这里也使用了U-boot引导程序,因此,和前面的情况一样,我们可以使用内核命令行获得root权限。 这使我们有机会更改root密码并获得对设备的访问权限。



第五台设备是Vizio CoStar LT网络媒体播放器型号ISV-B11。 它提供对CoStar频道的访问,该频道曾经是Google TV网络的一部分。 该媒体播放器通过Internet或通过HDMI输出的电缆连接到其他设备。



Google TV不再存在,这可能很有趣,但是我们这个小组仍然叫做GTVHacker。 因此,在印刷电路板的左上角,白色字母表示经典的连接器,用于从连续4个引脚连接UART。 在这里,我们与内核进行通信时遇到了一些困难,因为插入“ USB闪存驱动器”后,我们收到了消息“闪存驱动器上的文件系统无法理解”。 我们将其重新格式化为FAT32,然后弹出消息:“我找不到fs.sys”。 它看起来可疑,因此我们进行了一些研究。

结果是,可以得出结论,在引导过程中,您需要将两个文件都保存在USB闪存驱动器上-fs.sys和safe-kernel.img1。 第一个文件是U-Boot脚本映像下载器,其中包含在引导时执行的任意U-Boot命令。 我们使用了与破解以前的设备相同的技术。 内核命令行的修改使我们有机会侵入内核并获得root特权。 要下载全新的内核,可以将这两个文件结合使用,这些文件位于仅连接到UART的闪存驱动器上。

Stasyss Connect,Linksys Zonoff模型,是我们入侵的第六台设备。 这是另一个小型家庭自动化中心,是将不同品牌和类型的家庭设备通信在一起的集线器。 它基于云技术的使用,配有Wi-Fi模块和用于连接硬盘的USB端口。
在电路板上,我们找到了一个带有触点插座的块。 我们短路了29/30 NAND存储器的引脚,由于这导致在加载U-Boot环境时发生错误,并且设备重新启动。 设置默认超时,我们运行setenv bootargs命令“控制台= ttyS0,115200 init = / bin / sh [...]”,我们启动到根控制台。 添加#dropbear-d 222行,我们能够修改,保存和编辑U型靴。 要访问根,使用了oemroot SSH密码,我们设法相对容易地破解了该密码。 现在,我想向您介绍CJ。



CJ Jerez:我想和您谈谈eMMC格式的非易失性存储卡-嵌入式多媒体卡。 它们基于标准的SD存储卡芯片。 这是一件很酷的事情,其中​​包括闪存模块和闪存控制器。 在这种情况下,您无需担心任何其他魔术位。



常规存储卡包含用于处理错误并包含错误纠正代码的其他位;此功能供开发人员使用。 eMMC存储卡使用常规文件系统,并且可以通过便宜的多媒体读卡器对其进行访问,该读卡器同样可以正常读取SD SD卡和eMMC。 由于该卡在结构上是表面安装的BGA芯片,因此发现的是沉积在焊盘背面的焊球。 要使用这种卡,您需要确定这些触点,即,我们需要某些球来连接调试器。

为了找到必要的触点,我们首先检查了电路板的设计,各种贴纸,电阻器下的标签,印刷基板的轨迹以及电路板另一侧的触点。 然后,我们利用直觉和逻辑分析的优势,然后我们才取出芯片并确保它没有工作。 我们能够将此卡连接到MMC读取器并重置设置。

现在让我们谈谈我们的第七台设备,这是一个带遥控器的Amazon Fire TV机顶盒。



它配备了4核1.7 GHz Snapdragon 600处理器和8 GB eMMC内存驱动器,并由称为Fire OS 3.0的Android 4.2.2的修改版进行控制。

打开机壳后,我们开始寻找eMMC引脚,在搜索过程中我们毁了一个设备,因为拔出eMMC芯片时我们断开了一个触点,因此我们必须处理机顶盒的第二个副本。



幻灯片的左侧显示eMMC触点的位置,右侧-1.8V的UART触点。

成功破解了该机顶盒后,我们使用了8号设备-海信Android TV,这是运行Android的智能电视,这是一种Google TV,已更名。 它使用最新的处理器之一,即4核Marvell MV88DE3108。 在去年的DefCon会议上,我们展示了由于固件的小错误而导致该产品线的处理器如何绕过安全模式引导。



下一张幻灯片显示了连接调试器时联系人的外观。 它们足够小,但是我们不需要拉出闪存芯片。



我必须为此设备做一个相当广泛的过程-首先使用命令/ dev / mmcblk0p3挂载出厂设置部分“ factory_settings”,该命令已保存在下载之间,然后使用旧模式#chmod 4755 su,也可以使用该程序获取超级超级用户权限苏 此外,通过Android“ ADB”调试桥,您可以修改操作系统,该操作系统与原始Android非常相似。
所以,继续前进。 永远不要说“设备X不能被黑客入侵”。 2011年,USPS邮政局发布了一个广告,其中指出“冰箱不能破裂”。 该公司将自己定位为冰箱安全的领导者。 可以在YouTube上观看有关此内容的视频。 我把它当作挑战。 我没有多余的$ 3,000可以在新冰箱上测试此语句,但是在转储中您可以找到任何东西,包括部分废弃的冰箱。 我设法获得了LG Smart Refrigerator的电子填充物,型号为LFX31995ST,该设备运行的Android 2.3操作系统稍有过时。 这是第九个能够破解的设备。



冰箱的“大脑”控制着冷冻,食物温度,制冰,饮用水的消耗,并且该设备本身配备了Wi-Fi模块,USB端口和SD存储卡。

印刷电路板上有UART触点,可让您下载Root控制台和eMMC芯片。 这样就可以安装系统,例如在Fire TV的情况下,插入Android股票引导程序并下载超级用户二进制文件。 事实证明,参数ro.secure = 0,即设备已具有超级用户访问权限。 开发人员可能会确定没有人会抓住这个机会。

然后我们开始输入命令。 我注意到,您永远不应该信任用户输入的数据,也永远不要使用shell命令。 输入带有“; reboot”参数的ls%s命令可得到ls; reboot的结果,此后,系统将成功重启。

完美展示了黑客功能的第10号展品是Vizio Smart TV,型号为VF552XVT,它基于BCM97XXX Yahoo Powered Smart TV系列智能电视。 尽管该平台已经过时,但仍被广泛使用。



这是最新的LED背光电视之一,明显比LCD机型薄。

此处的命令行注入是通过Wi-Fi密码进行的,该密码是通过USB端口进行的UART调试器的更新版本。



如果设置了Wi-Fi模式,则可以进入菜单并连接到Wi-Fi接入点。 如果您设法输入幻灯片上显示的命令,则可以访问系统的根目录。

为此,我们使用了USB UART适配器,然后输入一个由几个字符组成的字符串,告诉内核将数据发送到哪里。 几分钟后,我们收到一个数据输入错误,然后输入了一个长bash 2命令,这意味着来自此设备的所有数据都应发送到外壳,而所有外壳数据都应发送到设备。 因此,我们能够通过USB UART获得根权限。

11号设备是具有运行OC Linux的MTK 8500处理器的Sony BDP-S5100蓝光播放器。 它配备有Wi-Fi,可访问Netflix,VUDU等在线电影观看服务。



同一芯片组上的另一个蓝光播放器是编号12的LG BP530,具有相似的功能。



我们发现这两个设备都具有相同的芯片组固件错误,支持使用SDK。

如果将一个名为“ vudu.txt”的空文件放入USB闪存驱动器上名为“ vudu”的文件夹中,然后创建包含以下行的漏洞利用程序“ vudu.sh”:

mount –t overlayfs –o overlayfs /etc/passwd echo "root::0:0:root:/root:/bin/sh" > /etc/passwd /mnt/rootfs_normal/usr/sbin/telnetd 

然后,您可以执行以下操作。

启动VUDU服务,它将以超级用户身份执行Shell脚本,您将能够通过Telnet网络自由使用连接。 可以使用MTK 8500芯片组上的所有播放器来完成此操作,包括编号13的下一个设备-Panasonic DMP-BDT230蓝光播放器。



这很简单。 下一张幻灯片显示了一个印刷电路板,其布局与上述所有玩家的布局几乎相同。 有一个控制台输出115200 8n1,您可以将其连接到UART。 这对我们非常重要,因为它使我们能够在调试过程中检测到上述错误。 但是,还有一种可能会使用屏幕菜单通过根控制台注入命令行,因为在使用之前未检查网络文件夹的名称。



因此,您可以自行决定获得超级用户权限并管理设备的所有功能。



24:10分钟

DEFCON会议22. GTVHacker集团。 破解一切:在45分钟内破解20台设备。 第二部分


感谢您与我们在一起。 你喜欢我们的文章吗? 想看更多有趣的资料吗? 通过下订单或将其推荐给您的朋友来支持我们, 为我们为您发明的入门级服务器的独特模拟,为Habr用户提供30%的折扣: 关于VPS(KVM)E5-2650 v4(6核)的全部真相10GB DDR4 240GB SSD 1Gbps从$ 20还是如何划分服务器? (RAID1和RAID10提供选件,最多24个内核和最大40GB DDR4)。

VPS(KVM)E5-2650 v4(6核)10GB DDR4 240GB SSD 1Gbps至12月免费,在六个月内付款,您可以在此处订购。

戴尔R730xd便宜2倍?在荷兰和美国,我们有2台Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100电视(249美元起) 阅读有关如何构建基础架构大厦的信息。 使用价格为9000欧元的Dell R730xd E5-2650 v4服务器的上等课程?

Source: https://habr.com/ru/post/zh-CN424907/


All Articles