Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
BaRMIe — Ferramenta de enumeração e ataque Java RMI. | Kitploit
Ferramentas/GitHubGitHub/nickstadb/barmie
Análise de VulnerabilidadesExploraçãoColeta de InformaçõesTestes de Penetração
GitHubnickstadb/barmie

BaRMIe

Ferramenta de enumeração e ataque Java RMI.

Ver Repositório
747974há 8 anosRevisado 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

BaRMIe

BaRMIe é uma ferramenta para enumerar e atacar serviços Java RMI (Remote Method Invocation).

Serviços RMI frequentemente expõem funcionalidades perigosas sem controles de segurança adequados, no entanto, serviços RMI tendem a passar despercebidos durante avaliações de segurança devido à falta de ferramentas de teste eficazes. Em 2008, Adam Boulton falou na AppSec USA (YouTube) e lançou algumas ferramentas de ataque RMI que desapareceram logo em seguida, mas mesmo com essas ferramentas, um ataque bem-sucedido de conhecimento zero depende de um ataque de força bruta significativo (~64 bits/9 quintilhões de possibilidades) sendo realizado pela rede.

O objetivo do BaRMIe é capacitar profissionais de segurança a identificar, atacar e proteger serviços RMI inseguros. Usando interfaces RMI parciais de software existente, o BaRMIe pode interagir diretamente com esses serviços sem primeiro forçar 64 bits pela rede.

Baixe a versão mais recente compilada e pronta para executar aqui: https://github.com/NickstaDB/BaRMIe/releases/latest

Aviso Legal

BaRMIe foi escrito para ajudar profissionais de segurança a identificar serviços RMI inseguros em sistemas nos quais o usuário tem permissão prévia para atacar. O acesso não autorizado a sistemas de computador é ilegal e o BaRMIe deve ser usado em conformidade com todas as leis relevantes. O não cumprimento pode levar a processo judicial. Os desenvolvedores do BaRMIe não assumem nenhuma responsabilidade e não se responsabilizam por qualquer uso indevido ou dano causado por este programa.

Uso

O uso do BaRMIe é direto. Execute o BaRMIe sem parâmetros para obter informações de uso.

root@kitploit:~
$ java -jar BaRMIe.jar
  ▄▄▄▄    ▄▄▄       ██▀███   ███▄ ▄███▓ ██▓▓█████
 ▓█████▄ ▒████▄    ▓██ ▒ ██▒▓██▒▀█▀ ██▒▓██▒▓█   ▀
 ▒██▒ ▄██▒██  ▀█▄  ▓██ ░▄█ ▒▓██    ▓██░▒██▒▒███
 ▒██░█▀  ░██▄▄▄▄██ ▒██▀▀█▄  ▒██    ▒██ ░██░▒▓█  ▄
 ░▓█  ▀█▓ ▓█   ▓██▒░██▓ ▒██▒▒██▒   ░██▒░██░░▒████▒
 ░▒▓███▀▒ ▒▒   ▓▒█░░ ▒▓ ░▒▓░░ ▒░   ░  ░░▓  ░░ ▒░ ░
 ▒░▒   ░   ▒   ▒▒ ░  ░▒ ░ ▒░░  ░      ░ ▒ ░ ░ ░  ░
  ░    ░   ░   ▒     ░░   ░ ░      ░    ▒ ░   ░
  ░            ░  ░   ░            ░    ░     ░  ░
       ░                                     v1.0
             Ferramenta de enumeração Java RMI.
               Escrito por Nicky Bloor (@NickstaDB)

Aviso: BaRMIe foi escrito para ajudar profissionais de segurança a identificar
       o uso inseguro de serviços RMI em sistemas nos quais o usuário tem
       permissão prévia para atacar. O BaRMIe deve ser usado em conformidade
       com todas as leis relevantes. O não cumprimento pode levar a processo
       judicial. Os desenvolvedores não assumem nenhuma responsabilidade e
       não se responsabilizam por qualquer uso indevido ou dano causado por
       este programa.

Uso:
  BaRMIe -enum [opções] [host] [porta]
    Enumera serviços RMI no(s) endpoint(s) fornecido(s).
    Nota: se -enum não for especificado, este é o modo padrão.
  BaRMIe -attack [opções] [host] [porta]
    Enumera e ataca o(s) alvo(s) fornecido(s).
Opções:
  --threads  O número de threads a usar para enumeração (padrão 10).
  --timeout  O timeout para operações de socket bloqueante (padrão 5.000ms).
  --targets  Um arquivo contendo alvos para escanear.
             O arquivo deve conter um único host ou par host e porta
             separados por espaço por linha.
             Alternativamente, todos os formatos de saída do nmap são suportados. O BaRMIe irá
             analisar a saída do nmap em busca da porta 1099, 'rmiregistry' ou
             serviços 'Java RMI' para atacar.
             Nota: [host] [porta] não suportado quando --targets é usado.
Confiabilidade:
    Um sistema +/- é usado para indicar a confiabilidade do ataque da seguinte forma:
      [+  ]: Indica um ataque específico da aplicação
      [-  ]: Indica um ataque JRE
      [ + ]: Ataca métodos inseguros (como 'writeFile' sem autenticação)
      [ - ]: Ataca desserialização Java (ou seja, parâmetros Object)
      [  +]: Não requer dependências não padrão
      [  -]: Dependências não padrão são necessárias
Baixar ferramenta

O modo de enumeração (-enum) extrai detalhes de objetos expostos por meio de um serviço de registro RMI e lista quaisquer ataques conhecidos que afetam o endpoint.

O modo de ataque (-attack) primeiro enumera os alvos fornecidos e, em seguida, fornece um sistema de menu para lançar ataques conhecidos contra serviços RMI.

Um único alvo pode ser especificado na linha de comando. Alternativamente, o BaRMIe pode extrair alvos de um arquivo de texto simples ou da saída do nmap.

Nenhum Alvo Vulnerável Identificado?

Ótimo! Esta é sua oportunidade de ajudar a melhorar o BaRMIe! O BaRMIe depende de algum conhecimento das classes expostas via RMI, então contribuições ajudarão muito a melhorar o BaRMIe e a segurança dos serviços RMI.

Se você tiver acesso a arquivos JAR ou código-fonte da aplicação alvo, produzir um ataque é tão simples quanto compilar código contra os arquivos JAR relevantes. Recupere o objeto remoto relevante usando as classes LocateRegistry e Registry e chame os métodos desejados. Alternativamente, procure por métodos remotos que aceitam objetos arbitrários ou parâmetros não primitivos, pois estes podem ser usados para entregar payloads de desserialização. Mais documentação sobre ataque a RMI e produção de ataques para BaRMIe estará disponível em breve.

Alternativamente, entre em contato, fornecendo o máximo de detalhes possível, incluindo a saída do BaRMIe -enum e, idealmente, os arquivos JAR relevantes.

Tipos de Ataque

O BaRMIe é capaz de realizar três tipos de ataques contra serviços RMI. Uma breve descrição de cada um segue. Mais detalhes técnicos serão publicados em breve em https://nickbloor.co.uk/. Além disso, apresentei os resultados da minha pesquisa na 44CON 2017 e os slides podem ser encontrados aqui: BaRMIe - Poking Java's Back Door.

1. Atacando Métodos Inseguros

O primeiro e mais direto método de atacar serviços RMI inseguros é simplesmente chamar métodos remotos inseguros. Frequentemente, funcionalidades perigosas são expostas via RMI, que podem ser acionadas simplesmente recuperando a referência do objeto remoto e chamando o método perigoso. O código a seguir é um exemplo disso:

root@kitploit:~
//Obtém uma referência ao serviço de registro RMI remoto
Registry reg = LocateRegistry.getRegistry(hostAlvo, portaAlvo);

//Obtém uma referência ao objeto RMI alvo
Foo bar = (Foo)reg.lookup(nomeObjeto);

//Chama o método remoto executeCommand()
bar.executeCommand(cmd);

2. Desserialização via Parâmetros do Tipo Object

Alguns serviços RMI não expõem funcionalidades perigosas, ou implementam controles de segurança como autenticação e gerenciamento de sessão. Se o serviço RMI expõe um método que aceita um Object arbitrário como parâmetro, então o método pode ser usado como ponto de entrada para ataques de desserialização. Alguns exemplos de tais métodos podem ser vistos abaixo:

root@kitploit:~
public void setOption(String name, Object value);
public void addAll(List values);

3. Desserialização via Invocação de Método Ilegal

Devido ao uso de serialização e ao tratamento inseguro de parâmetros de métodos no servidor, é possível usar qualquer método com tipos de parâmetro não primitivos como ponto de entrada para ataques de desserialização. O BaRMIe consegue isso usando proxies TCP para modificar os parâmetros dos métodos no nível da rede, essencialmente acionando invocações de método ilegais. Alguns exemplos de métodos vulneráveis podem ser vistos abaixo:

root@kitploit:~
public void setName(String name);
public Long add(Integer i1, Integer i2);
public void sum(int[] values); 

Os parâmetros de cada um desses métodos podem ser substituídos por um payload de desserialização à medida que a invocação do método passa por um proxy. Este ataque é possível porque o Java não tenta verificar se os parâmetros de método remoto recebidos pela rede são compatíveis com os tipos de parâmetro reais antes de desserializá-los.