
Scanner de vulnérabilités Java RMI
remote-method-guesser (rmg) est un scanner de vulnérabilités Java RMI et peut être utilisé pour identifier et vérifier les vulnérabilités de sécurité courantes sur les points de terminaison Java RMI.

remote-method-guesser a été présenté à Black Hat USA2021 dans le cadre des sessions Arsenal. L'enregistrement de la session et les diapositives correspondantes sont disponibles publiquement et peuvent être trouvés via les liens suivants :
Le dépôt remote-method-guesser contient trois serveurs d'exemple qui peuvent être utilisés pour s'entraîner à l'énumération et aux attaques Java RMI.
Le rmg-example-server expose des services RMI classiques qui peuvent être énumérés et exploités à l'aide de remote-method-guesser.
Le rmg-ssrf-server expose un service HTTP vulnérable aux attaques SSRF et exécute des services RMI qui écoutent uniquement sur localhost. Cela peut être utilisé pour s'entraîner avec les options --ssrf et --ssrf-response de remote-method-guesser.
Le spring-remoting-server expose des interfaces RMI créées via Spring Remoting. Elles sont un peu différentes du Java RMI classique et peuvent être utilisées pour tester l'intégration associée de Spring Remoting dans remote-method-guesser.
Tous les serveurs sont disponibles en tant que conteneurs dans le GitHub Container Registry :
rmg est un projet maven et l'installation devrait être simple. Avec maven installé, exécutez simplement les commandes suivantes pour créer un fichier .jar exécutable :```console
$ git clone https://github.com/qtc-de/remote-method-guesser
$ cd remote-method-guesser
$ mvn package
Vous pouvez également utiliser les paquets préconstruits créés pour [chaque version](https://github.com/qtc-de/remote-method-guesser/releases). Les paquets préconstruits pour la branche de développement sont créés automatiquement et peuvent être trouvés sur la *page* *GitHub* [des actions](https://github.com/qtc-de/remote-method-guesser/actions).
*rmg* n'inclut pas *ysoserial* comme dépendance. Pour activer le support de *ysoserial*, vous devez soit spécifier le chemin vers votre fichier ``ysoserial.jar`` comme argument supplémentaire (par exemple ``--yso /opt/ysoserial.jar``), soit modifier le chemin par défaut dans le [fichier de configuration rmg](https://github.com/qtc-de/remote-method-guesser/blob/master/src/config.properties) avant de construire le projet.
*rmg* prend également en charge l'autocomplétion pour *bash*. Pour profiter de l'autocomplétion, vous devez avoir installé le projet [completion-helpers](https://github.com/qtc-de/completion-helpers). Si la configuration est correcte, il suffit de copier le [script d'autocomplétion](https://github.com/qtc-de/remote-method-guesser/blob/master/resources/bash_completion.d/rmg) dans votre dossier ``~/.bash_completion.d`` pour activer l'autocomplétion.```console
$ cp resources/bash_completion.d/rmg ~/bash_completion.d/
Dans ce qui suit, de courts exemples pour chaque opération disponible sont présentés. Pour une description plus détaillée, vous devriez lire le dossier de documentation qui contient des informations plus détaillées sur rmg et Java RMI en général. Tous les exemples présentés sont basés sur le rmg-example-server et le rmg-ssrf-server. Tous deux sont contenus dans ce dépôt dans le dossier docker et peuvent être utilisés pour pratiquer l'énumération Java RMI. Vous pouvez soit construire les conteneurs correspondants vous-même, soit les charger directement depuis le GitHub Container Registry.```console [qtc@devbox ~]$ rmg -h usage: remote-method-guesser [-h] action ...
rmg v4.0.0 - a Java RMI Vulnerability Scanner