迅维网

如何入侵一台已关机的电脑?

hcrt 2018-2-9 08:55

如何入侵一台已关机的电脑


  写在前面的话


  如何入侵一台已关机的电脑?在近日的欧洲黑帽黑客大会上,来自Positive Technologies公司的研究人员Mark Ermolov和Maxim Goryachy跟大家介绍了英特尔管理引擎(Intel Management Engine 11)中存在的安全漏洞,而这个漏洞将允许攻击者访问目标主机中的绝大部分数据和进程。而更加重要的是,在这个漏洞的帮助下,一旦攻击者绕过了传统的基于软件的保护机制之后,他们将能够对已关机的电脑进行攻击。

  一、 介绍


  英特尔管理引擎(Intel ME)是英特尔公司的专利技术,它由一个整合了平台控制器中心(PCH)和一系列内置周边设备的微控制器组成,PCH负责传输处理器和外部设备之间几乎所有的通信流量。因此,Intel ME几乎能够访问计算机中所有的数据。如果攻击者能够在Intel ME上运行第三方代码的话,那么他们就能够完全入侵目标计算机。

  我们可以看到,全世界现在有越来越多的研究人员开始关心Intel ME的安全问题了。其中一个原因就是这个子系统正在向新的硬件架构(x86)以及软件平台(修改后的MINIX[1])过度,而x86平台将允许研究人员利用二进制代码分析工具的所有功能。在此之前,固件分析相对来说是比较难的,因为Intel ME早期的版本是基于一种ARCompact微控制器实现的,而这种控制器所提供的一系列指令相对来说也比较陌生。

  在此之前,我们几乎是不可能对Intel ME 11进行分析的,因为可执行模块采用了Huffman代码(未知表)进行压缩。但是我们的研究团队成功地恢复了这些表,并且创建了一个专门用于解包镜像的实用工具[2]。

  在对可执行模块进行解包之后,我们就可以对Intel ME的软件以及硬件内部结构进行研究了。而通过分析后我们发现,其实Intel ME并不像我们想象中的复杂。

  1.1 Intel ME 11概述

  关于Intel ME内部结构以及组件的内容可以从参考资料中[1]、[3]、[4]这三篇论文获得。

  实际上从2015年开始,LMT处理器核心(x86指令集)就已经被整合到PCH之中了,而这种核心正用于Quark SOC之中:

如何入侵一台已关机的电脑

如何入侵一台已关机的电脑? 图


  英特尔所采用的很多现代技术都是围绕Intel ME开发的,比如说英特尔主动管理技术(Intel Active Management Technology)、英特尔平台可信技术(Intel Platform Trust Technology)和英特尔软件保护扩展(Intel Software Guard Extensions)等等。Intel ME同样也是Intel启动防护功能信任机制的核心,而这个功能可以防止攻击者向UEFI注入恶意代码。Intel ME基本上可以丝毫不受限制地访问计算机中的数据,而且还可以拦截并修改显卡的图像信息。这种功能也意味着,如果攻击者能够在Intel ME中执行任意代码,那么他们就能够开发出一种全新的恶意软件,而这种恶意软件是无法被现在的安全检测工具所检测到的。幸运的是,在这项技术诞生至今的十七年里,只出现了三个公开的相关安全漏洞。

  1.2 Intel ME公布的三个安全漏洞

  1.2.1 Ring-3 rootkits

  第一个Intel ME安全漏洞公布于2009年,在当年的黑帽黑客大会上,Alexander Tereshkin以及Rafal Wojtczuk曾进行了一次主题为”介绍Ring-3 Rootkits”的演讲,这种攻击需要向UMA内存的特定区域中注入代码。

  研究被公布之后,英特尔引入了UMA保护机制。现在这块内存区域已经采用了AES加密,而且Intel ME会在每一个内存页面中储存相应的校验和。当页面返回到Intel ME的主内存区域时,这个校验和将对这些页面进行检测。

  1.2.2 Zero-Touch

  在2010年,Vassilios Ververis演示了一种针对Intel ME的攻击技术[10],这种技术运用的是Zero-Touch模式(ZTC),而这项技术将能够绕过AMT认证。

  1.2.3 Silent Bob

  在2017年5月,研究人员公布了一个存在于AMT认证系统中的安全漏洞(CVE-2017-5689)[11],该漏洞将允许未经授权的用户获得目标系统(支持vPro技术)的完整访问权。

  因此,总的来说现在只出现了一个允许攻击者在Intel ME内部执行任意代码的安全漏洞。

  二、 潜在的攻击向量


  Intel基本上都会对Intel ME所运用的数据进行签名,但Intel ME仍需要与用户进行一些交互:

  -本地通信接口 (HECI)

  -网络(vPro only)

  -主机内存 (UMA)

  -固件SPI布局

  -内部文件系统

  2.1 HECI

  HECI是一种独立的PCI设备,它可以作为主系统与Intel ME之间数据交换的循环缓冲器。Intel ME中的使用程序可以注册它们自己的HECI处理器,这样将会提升安全漏洞(CVE-2017-5711)的危险系数。在苹果电脑中,默认已禁用了HECI。

  2.2 网络(vPro only)

  AMT是一种大型模块,其中涉及到多种不一样的网络协议。这个模块中包含了大量的遗留代码,并且现在有很多商业系统都在运用它。

  2.3 针对SPI接口的硬件攻击

  在研究Intel ME的过程中,我忽然想起也许可以运用SPI闪存模拟器来绕过签名验证机制。这种特殊的设备跟普通的SPI闪存看起来很像,但是它可以在每次访问时发送不一样的数据。这也就意味着,如果一开始进行了签名检测然后再读写数据的话,攻击者就可以尝试向Intel ME中注入代码了。

  2.4 内部文件系统

  Intel ME运用了SPI闪存来作为主文件储存,这种文件系统的结构比较复杂[6],而且很多特权进程都会将配置文件储存在这里。因此,文件系统肯定会是攻击者的主要目标之一。那么接下来,我们就要选择一个代码模块来寻找安全漏洞了。

  2.5 选择模块进行分析

  Intel ME操作系统实现了类Unix的访问控制模块,user-id、group-id、可访问硬件列表以及允许运用的系统调用都会根据每一个进程来进行静态规则设置:

如何入侵一台已关机的电脑

如何入侵一台已关机的电脑? 图


  分析后发现,只有少数系统进程可以加载并运行这些模块。其中一个就是能够生成子进程的BUP(BringUP),在对其进行了逆向分析之后,我们在负责进行设备初始化的函数中发现了一个堆缓冲区溢出漏洞。文件/home/bup/ct并没有被签名,因此我们就可以直接修改Intel ME固件的版本信息了。现在,我们可以让BUP进程发生缓冲区溢出,但是在利用这个漏洞之前,还需要绕过堆缓冲区溢出保护机制。

如何入侵一台已关机的电脑

如何入侵一台已关机的电脑? 图


  2.6 绕过堆缓冲区溢出保护机制

  Intel ME用于保护栈缓冲区溢出的实现如下:

  1. 当进程被创建之后,一个32位值将会从硬件随机数生成器拷贝到一个特定区域(只读);

  2. 在函数开头,这个值会在返回地址之前拷贝到栈中(实现保护);

  在函数结尾,储存的值会跟已知的正确值进行对比,如果不匹配,则软件发生崩溃,并终止进程;

  我们在研究过程中,发现bup_dfs_read_file函数会间接调用memcpy,并返回TLS结构的目的地址。需要注意的是,BUP的读/写函数会运用系统服务来访问共享内容。换句话来说,读取和写入功能可以通过共享内存机制来获得并记录数据。

  调用memcpy函数:

如何入侵一台已关机的电脑

  从TLS获得地址:

如何入侵一台已关机的电脑

  在缓冲区溢出的场景下,这部分TLS区域是可以通过文件读取函数来重写的,而攻击者将能够通过这种方式来绕过缓冲区溢出保护。

  2.7 线程本地储存

  TLS的访问跟gs段寄存器有关,该结构如下所示:

如何入侵一台已关机的电脑

如何入侵一台已关机的电脑

  其中,gs段是不可写入的,而且TLS结构本身位于栈底。因此,为了实现缓冲区溢出,我们需要重写TLS中的指针(指向SYSLIB_CTX),并生成新的结构。根据bup_dfs_read_file函数的工作机制,这将允许我们写入任意数据。

  2.8 运用读取函数来获得任意写入原语

  bup_dfs_read_file函数不仅可以从SPI闪存中读取数据,而且还可以在迭代过程中修改指针数据(指向SYSLIB_CTX)。而在下一次迭代过程中,sys_write_shared_mem函数将会提取出我们所创建的地址,并将其作为目的地址传递给memcpy。这样一来,我们就能够获得任意写入原语了。

  bup_dfs_read_file的部分代码如下:

如何入侵一台已关机的电脑

  2.9 可能的漏洞利用向量

  为了成功利用该漏洞,我们需要通过特殊的HMR-FPO消息向Intel ME的特定区域写入访问数据[9]。攻击者可以利用BIOS漏洞来发送这种消息,或者直接利用操作系统来发送(Intel ME处于制造模式下),或者通过DMA攻击。

  如果下列条件叛族的话,攻击者甚至还可以远程利用该漏洞:

  目标平台激活了AMT;

  攻击者知道AMT管理员密码,或利用漏洞绕过了验证机制;

  BIOS没有设置密码保护(或者攻击者知道密码);

  BIOS开启了ME区域的写入权限;

  如果上述条件均满足,那攻击者将能够远程利用该漏洞并访问Intel ME中的数据。

  2.10 CVE-2017-5705,6,7概述

  这个漏洞分配到的编号为INTEL-SA-00086 (CVE-2017-5705, CVE-2017-5706, CVE-2017-5707),相关描述信息如下:

  CVSSv3向量

  8.2 High AV:L/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H

  受影响的产品[12]

  6th, 7th & 8th Generation Intel Core Processor Family

  Intel Xeon Processor E3-1200 v5 & v6 Product Family

  Intel Xeon Processor Scalable Family

  Intel Xeon Processor W Family

  Intel Atom C3000 Processor Family

  Apollo Lake Intel Atom Processor E3900 series

  Apollo Lake Intel Pentium

  Celeron N and J series Processors

  总结


  本文所介绍的漏洞将允许攻击者在Intel ME中运行任意代码,这种漏洞将会危及到多种英特尔技术的安全性。我们希望本文的研究成果能够帮助更多感兴趣的研究人员了解Intel ME的安全现状。


雷人

握手

鲜花

鸡蛋

路过
收藏
来自: 今日头条
发表评论

最新评论

引用 869371446 2018-2-13 09:30
断网断电哈哈
引用 静候缘来 2018-2-9 09:05
笔记本关机可以入侵,台式电脑关机后拔掉电源,任何远程黑客都无可奈何
引用 天籁维修 2018-2-9 09:05
这有个前提,就是这样的主板要支持网络唤醒功能!
引用 静候缘来 2018-2-9 09:04
吓得我把网线拔了
引用 大笑维修 2018-2-9 09:03
对不起,我关了电闸
引用 青春维修 2018-2-9 09:03
先进他家把电源打开
引用 大笑维修 2018-2-9 09:03
怪不得
引用 灵魂禁锢 2018-2-9 09:02
怪不得电脑系统 蓝屏 重新启动 文件遗失   重装系统
引用 灵魂禁锢 2018-2-9 09:02
通电就能被入侵,以前电视里放过,是美国一个新技术,不用联网的
引用 花开的那一瞬间 2018-2-9 09:01
我不信我没装系统他也能入侵
引用 维殇轻谈 2018-2-9 09:01
所有手机,电脑,平板都附赠带后门芯片。美国人1,直接通过电力电缆入侵 设备   2,附近WIFI,通信基站直接连入设备。3,加密射频信号较近距离直接入侵设备
引用 冠盟科技通讯 2018-2-9 09:00
标题党
引用 维修江湖第一 2018-2-9 08:59
看不懂,太高深[捂脸]
引用 青春维修 2018-2-9 08:58
首先让你媳妇渗透电工师傅给电。
引用 花开的那一瞬间 2018-2-9 08:58
转发了
引用 天籁维修 2018-2-9 08:57
关键是主板要支持wake up on lan或者运用了相关远程启动的硬件,否则免谈
引用 大笑维修 2018-2-9 08:57
对不起,我家停掉几个月了,要是也丢了
引用 花开的那一瞬间 2018-2-9 08:57
计算机已经做到极限,只有推倒重来,才会焕发生机,中国企业加油!
引用 维修江湖第一 2018-2-9 08:56
人为的、故意规划的漏洞。
引用 静候缘来 2018-2-9 08:56
把网线,插座拔了 看你怎么黑

发表评论

登录 后可参与评论
关闭

站长提醒 上一条 /1 下一条

返回顶部
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图


芯片搜索