使用1.5美元的电动燃气打火机绕过Android MDM

2020-09-26 00:27:27

此概念证明来自我们的物联网渗透测试项目,因此,大多数PoC都将进行编辑。此绕过适用于运行带有2020年3月安全更新的Android 10的编辑过的智能手机。

现在让我们先谈谈什么是MDM(移动设备管理)。移动设备管理是Android 4.0+提供的一个功能,可以让您在更深层次上管理设备的功能。MDM管理的设备可以由MDM解决方案远程控制,该解决方案拥有比物理用户更高的权限。它可以控制任何事情,从启用/禁用相机、电话等硬件服务,安装/卸载应用程序,到擦除和锁定设备。这些解决方案通常用于企业/公司环境或大学/学校。这个想法基本上是限制用户可以用设备做什么,这样组织的数据或资源就不会被滥用。MDM适用于不同的平台,包括笔记本电脑、苹果和Android设备。

这里我们要处理的是绕过硬件制造商提供的自定义MDM功能,这些功能可以被公司用来围绕它来构建他们的解决方案,假设公司A可以从X公司购买Android设备,并使用他们在设备操作系统中实现的MDM功能,并根据他们的需求围绕它构建一个应用程序。我们已经测试了许多绕过来自不同供应商的MDM解决方案的设备,由于操作系统处理故障的方式,这一个测试案例相当独特。

故障注入是一种在硬件中注入故障的方法,如处理器、SRAM或闪存,以使其以非故意的方式工作,并利用它绕过任何安全实现,甚至破解密码。向数字电路注入故障的方式有很多,电压注入、时钟注入、电磁注入。我们不会深入讨论每一个,您可以参考链接部分开始使用它。下图将总结故障注入的确切含义。

让我们来看一个简单的if-Else条件,它检查密码,在这里,在正常的执行流程中,如上图所示,如果密码是错误的,它不会经过传递循环,但是如果我们可以以某种方式注入错误,使CPU跳过该检查或指令,我们可以更改代码流,即使使用错误的密码也可以绕过检查。

这是一种故障注入,当一个强大的电磁场被注入到正在运行的组件中时,它可以是从处理器到RAM再到存储的任何东西。根据电磁感应定律,只要有一个变化的磁场,它就会在导体中感应出一些电流,在这里是相同的,除非我们在触发器或寄存器组中或在构成芯片的CMOS层上产生感应的微小电荷。另外,请记住,我们通常会攻击整个芯片,因此您会影响很多内部寄存器,并且它可能不会一直按预期工作。对于近乎完美的毛刺参数,要重新创建任何类型的故障注入都需要大量的尝试和错误。

现在所有的基础知识几乎都讲完了,让我们开始真正的内容吧。

这对我来说是令人兴奋的部分,因为我用ChipWhisperer处理过电压和时钟故障,大多数时候是侵入性的,也就是说,它涉及到在一个未知的电路板上移除和焊接,至少有1到2个设备最终会被扔进垃圾箱。EM故障注入是我一直想尝试的东西,因为它是非侵入性的,我正着眼于自己亲自买一个切片机,也许在未来。

我有电气工程背景,我最终总是想出一些想法,让事情变得更省钱或更便宜(印度人的思维方式-Jugaad)。我知道电磁是如何产生的,我也能理解电力电子电路,但我在YouTube上滚动,看了很多关于等离子弧、雅各布的梯子和一些电磁干扰器(锁定效果)的视频。那么,为什么不使用这种逻辑来以受控的方式或破坏性较小的方式注入EM呢?我买了几个便宜的电弧气打火机,3美元一对。

它有一个相当有趣的两级升压电路。我测量了第一级的电压,它大约是300in DC,输出不是纯AC或DC,因为反激式驱动器是如何工作的,它被馈送到另一个变压器。高压是可以承受的,可以在7-10kV左右,但不推荐。

我不想改变这里的任何事情。只需创建一个电磁注射器即可。我创造了一个简单的火花间隙,这样微小的次级线圈就不会因为短路而燃烧。火花隙起高压开关的作用。一旦电压上升到电离气体的电位并开始导电,电流就会流过电路。现在的电路只是一个小电感和6到7个绕组线圈/导线,并与火花隙串联。EM故障注入器已完成。在1.5V时,吸力约为300 mA。那是很多,但我现在并不在意。上面是电磁注入器的整体电路。您也可以查看我的tweet帖子,获取一些构建指南。

##攻击#限制在攻击之前,我们先来谈谈设备上实现的MDM限制。

我的第一个目标是使正在运行的操作系统崩溃,这样它只会使正在运行的操作系统崩溃,而不会产生任何硬故障并重新启动设备。所以,我把目标对准了RAM模块。这是一个来自金斯敦的2 GB模块,并开始向距离它不同距离的SoC的各个顶层部分发出电磁故障。像往常一样,它开始出现显示故障,并会重置或只是使屏幕变黑。我一直在试验它,有一次,我的内核崩溃了,它进入了sysdump模式,我忘了为PoC拍摄一段视频。我的错!现在不得不再做一次。再试一次,在2-3分钟内,我得到了相同的内核崩溃,我把设备的USB插入我的机器,它打开了SoC恢复串行端口,剩下的就是刷新新固件或读取eMMC内容或更改其他SoC特定配置的历史记录。

这里我们的目标不是破解密码或恢复数据,而是删除任何MDM应用程序并取消对设备的所有限制。