
Scanner de Vulnerabilidades Java RMI
remote-method-guesser (rmg) é um scanner de vulnerabilidades Java RMI e pode ser usado para identificar e verificar vulnerabilidades de segurança comuns em endpoints Java RMI.

remote-method-guesser foi apresentado no Black Hat USA2021 durante as sessões do Arsenal. A gravação da sessão e os slides correspondentes estão disponíveis publicamente e podem ser encontrados através dos seguintes links:
O repositório do remote-method-guesser contém três servidores de exemplo que podem ser usados para praticar enumeração e ataques Java RMI.
O rmg-example-server expõe serviços RMI regulares que podem ser enumerados e explorados usando o remote-method-guesser.
O rmg-ssrf-server expõe um serviço HTTP vulnerável a ataques SSRF e executa serviços RMI que ouvem apenas em localhost. Isso pode ser usado para praticar com as opções --ssrf e --ssrf-response do remote-method-guesser.
O spring-remoting-server expõe interfaces RMI criadas via Spring Remoting. Elas são um pouco diferentes do Java RMI regular e podem ser usadas para testar a integração associada do Spring Remoting do remote-method-guesser.
Todos os servidores estão disponíveis como contêineres no GitHub Container Registry:
rmg é um projeto maven e a instalação deve ser simples. Com o maven instalado, basta executar os seguintes comandos para criar um arquivo .jar executável:```console
$ git clone https://github.com/qtc-de/remote-method-guesser
$ cd remote-method-guesser
$ mvn package
Você também pode usar pacotes pré-construídos que são criados para cada [release](https://github.com/qtc-de/remote-method-guesser/releases).
Pacotes pré-construídos para o branch de desenvolvimento são criados automaticamente e podem ser encontrados na *GitHub* [página de actions](https://github.com/qtc-de/remote-method-guesser/actions).
*rmg* não inclui *ysoserial* como dependência. Para habilitar o suporte a *ysoserial*, você precisa especificar o caminho
para o seu arquivo ``ysoserial.jar`` como argumento adicional (ex.: ``--yso /opt/ysoserial.jar``) ou alterar o
caminho padrão dentro do [arquivo de configuração do rmg](https://github.com/qtc-de/remote-method-guesser/blob/master/src/config.properties) antes de compilar o projeto.
*rmg* também suporta autocompletar para *bash*. Para aproveitar o autocompletar, você precisa ter o
projeto [completion-helpers](https://github.com/qtc-de/completion-helpers) instalado. Se configurado corretamente, apenas
copiar o [script de completar](https://github.com/qtc-de/remote-method-guesser/blob/master/resources/bash_completion.d/rmg) para sua pasta ``~/.bash_completion.d`` permite
o autocompletar.```console
$ cp resources/bash_completion.d/rmg ~/bash_completion.d/
Na sequência, são apresentados breves exemplos para cada operação disponível. Para uma descrição mais detalhada, você deve ler a pasta de documentação que contém informações mais detalhadas sobre rmg e Java RMI em geral. Todos os exemplos apresentados são baseados no rmg-example-server e no rmg-ssrf-server. Ambos estão contidos neste repositório na pasta docker e podem ser usados para praticar enumeração de Java RMI. Você pode construir os contêineres correspondentes por conta própria ou carregá-los diretamente do GitHub Container Registry.```console [qtc@devbox ~]$ rmg -h usage: remote-method-guesser [-h] action ...
rmg v4.0.0 - a Java RMI Vulnerability Scanner