Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
ipmi — Ferramentas IPMI do trabalho da DARPA | Kitploit
Ferramentas/GitHubGitHub/zenfish/ipmi
Quebra de SenhasReconhecimentoMapeamento de RedeEscaneamento de PortasAnálise de VulnerabilidadesAuditoria de ConfiguraçãoColeta de InformaçõesTestes de PenetraçãoSegurança de HardwareAutenticação
GitHub
76637há 1 mêsRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
zenfish/ipmi

ipmi

Ferramentas IPMI do trabalho da DARPA

Ver Repositório

Escrevi um software para explorar IPMI; aqui estão alguns dos resultados. Pensei em fazer o ciclo habitual de detetar, obter dados e auditar. Cada um destes acabou por ser um problema bastante interessante por si só, pelo menos para mim.

**BTW/FYI ** - Lancei uma nova ferramenta para explorar IPMI - https://github.com/zenfish/zipmi - bem como um conjunto de receitas/imagens/etc. de Qemu para executar BMCs como sistemas virtuais sob Qemu em https://github.com/zenfish/zbmc.

Site web do IPMI

Os artigos e coisas de http://fish2.com/ipmi

html

Quebra de palavras-passe

Aqui está um pequeno programa Perl que tenta adivinhar uma conta num BMC remoto, extrair o seu hash, e depois tentar quebrar a sua palavra-passe (com hash HMAC). Escrevi um pequeno texto sobre isto para os curiosos. Intensamente comentado, pode ser útil.

Obter cifras

A especificação IPMI diz que se pode obter a cifra de um sistema remoto sem qualquer autenticação, mas não conheço nenhuma ferramenta que o faça (todas exigem autenticação, embora, claro, se possa introduzir os bytes hex em bruto se se quiser!) Por isso escrevi esta pequena ferramenta para o fazer; segue sobretudo a saída do ipmitool; ao fazê-lo, acredito que encontrei um bug nesse utilitário (na linha final por vezes os sistemas emitem algum lixo que parece ser mal interpretado), mas quem sabe, não tenho sistemas suficientes para testar. De qualquer forma... ipmi-get-ciphers.py.

Se não servir para mais nada, é útil para detetar sistemas Cipher0 (nota - isto apenas indica cifras que são suportadas - não significa que estejam realmente ativadas), mas há coisas interessantes por aí.

Obter detalhes de autenticação

Dois programas aqui, um é um simples sondador remoto em Python (estou a começar a odiar Perl, diga-se) e um segundo que usa utilitários do FreeIPMI para obter dados de configuração com credenciais.

Um pequeno programa Python (mais de 50% de comentários inline, 2,5k comprimido com gzip) que envia um único pacote a um BMC e analisa a resposta. O que se pode fazer com apenas um único pacote, pode-se perguntar? Mais de 10 testes de segurança diferentes para IPMI, para começar. Bem, para começar e para terminar, é apenas um pacote :) Requer Python, um BMC e um caminho aberto para a porta UDP 623 para funcionar. A utilização é simplesmente "ipmi-get-auth.py target".

ipmi-get-auth.py / Uma descrição muito pequena

Levando isto a extremos... bem, aqui está uma espécie de mega versão do acima que o faz para todos os canais, todos os privilégios, todos... bem, percebem a ideia. Para os monomaníacos (leiam os comentários ou o post que escrevi sobre isto para ver porque faz o que faz!)

mega_chan.py / Mega mega mega ... chan chan chan...

Obter Device ID (GUID)

E aqui está um programa simples para enviar um pacote Get Device ID (ver p250 da especificação IPMI v 2) a um sistema. Isto deveria, em teoria, funcionar sem autenticação. Num pequeno levantamento que fiz, cerca de 90% dos sistemas responderam a isto (embora nem todos com informação válida!) Pode-se, por vezes, obter o fabricante e outra informação, como números de modelo e afins, mas mais interessante ainda é obter um ID único, tradicionalmente uma coisa difícil de obter pela rede.

get-ipmi-guid.py / Get Device ID

Extrair palavras-passe de um ficheiro de palavras-passe binário da SuperMicro

A Supermicro teve alguns problemas com a divulgação de ficheiros de palavras-passe do seu BMC - por exemplo, veja este e outros relatos:

a-penetration-testers-guide-to-ipmi

Para usar este script, basta dizer:

dump_SM.py password_file

Funciona para mim, sem garantias implícitas, garantido, etc.

Detecção

Bem, se você conseguir falar com a porta UDP 623, é bem simples descobrir se um sistema remoto está executando IPMI. A menos que você esteja dentro de um data center, porém, a maioria das pessoas bloqueia UDP. E mesmo que não bloqueiem... a varredura UDP é tão lenta quanto se pode imaginar. Então eu atualmente uso dois métodos básicos, aproveitando o venerável Nmap e o ipmiping (das ferramentas GNU FreeIPMI). A coisa mais fácil de fazer é:

  • Use o ipmiping para perguntar a um sistema remoto se ele fala IPMI ou não. Uma resposta positiva é a indicação mais forte de que um sistema fala IPMI (mas nada é certo!) Mais tecnicamente, ele envia duas chamadas IPMI Get Channel Authentication Capabilities por meio de um datagrama de requisição Get Channel Authentication Capabilities na porta UDP 623 (duas requisições, já que usa UDP, e conexões não são garantidas.)
    </p> <p>
    
    Como o Nmap é muito mais eficiente na varredura de redes em larga escala
    do que o ipmiping, este método só é usado se o Nmap disser que um host
    tem a UDP 623 aberta.
    
    </p> <p>
    
    Para o bem ou para o mal, essa porta costuma estar bloqueada, então na maior parte
    do tempo outros métodos têm mais chance de descobrir de forma oblíqua se
    o IPMI está ou não em execução.
    
  • O segundo método é um pouco vago e depende de um pouco de indução (também conhecido como adivinhação). O Nmap varre portas conhecidas por estarem associadas ao IPMI e a adições de fabricantes; a UDP 623 é óbvia (a porta padrão do IPMI), mas há uma variedade de portas (tanto UDP quanto TCP) que, por si só, podem não dar uma resposta imediata, mas que, tomadas em conjunto, podem indicar fortemente sua presença. TFTP, SNMP, SSH/SMASH, VNC e muitas outras estão entre elas.
    </p> <p>
    
    As portas são ponderadas pela sua capacidade indicativa e por se o
    Nmap as encontra abertas, filtradas ou em outros estados.
    
    </p> <p>
    
    O Nmap também pode mostrar os banners dos serviços conectados. Eu uso
    expressões regulares para caçar alvos - por exemplo, as strings
    "iLO" e "DRAC" são bons indicadores de que um sistema pode estar executando
    o Integrated Lights Out da HP, ou iLO.
    
    </p> <p>
    
    <strong>Nota:</strong> Atualmente eu NÃO uso o método de
    broadcast ping (uma forma muito rápida de percorrer a sub-rede em que você
    está); simplesmente não tenho dados sobre sua eficácia
    nisso; embora seja muito rápido quando funciona, não senti que
    permitisse o controle e a confiabilidade de varreduras arbitrárias.
    Dois dos meus três sistemas (Dell e HP) responderam a um
    RMCP ping. Nenhum respondeu a um broadcast ping pelo idiscover
    (ipmiutil discover.) Todos, porém, responderam à minha ferramenta de
    auditoria em Python abaixo.
    
    </p> <p>
    
Baixar ferramenta