
Scanner di vulnerabilità Java RMI
remote-method-guesser (rmg) è uno scanner di vulnerabilità Java RMI e può essere utilizzato per identificare e verificare vulnerabilità di sicurezza comuni su endpoint Java RMI.

remote-method-guesser è stato presentato al Black Hat USA2021 durante le sessioni Arsenal. La registrazione della sessione e le diapositive corrispondenti sono disponibili pubblicamente e possono essere trovate utilizzando i seguenti link:
Il repository remote-method-guesser contiene tre server di esempio che possono essere utilizzati per esercitarsi nell'enumerazione e negli attacchi Java RMI.
Il server rmg-example-server espone servizi RMI regolari che possono essere enumerati e sfruttati utilizzando remote-method-guesser.
Il server rmg-ssrf-server espone un servizio HTTP vulnerabile ad attacchi SSRF e esegue servizi RMI che ascoltano solo su localhost. Questo può essere utilizzato per fare pratica con le opzioni --ssrf e --ssrf-response di remote-method-guesser.
Il server spring-remoting-server espone interfacce RMI create tramite Spring Remoting. Queste sono leggermente diverse dal Java RMI standard e possono essere utilizzate per testare l'integrazione Spring Remoting associata di remote-method-guesser.
Tutti i server sono disponibili come contenitori all'interno del GitHub Container Registry:
rmg è un progetto maven e l'installazione dovrebbe essere semplice. Con maven installato, esegui i seguenti comandi per creare un file .jar eseguibile:```console
$ git clone https://github.com/qtc-de/remote-method-guesser
$ cd remote-method-guesser
$ mvn package
Puoi anche utilizzare i pacchetti precompilati creati per ogni [release](https://github.com/qtc-de/remote-method-guesser/releases).
I pacchetti precompilati per il ramo di sviluppo vengono creati automaticamente e possono essere trovati sulla pagina *GitHub* [actions page](https://github.com/qtc-de/remote-method-guesser/actions).
*rmg* non include *ysoserial* come dipendenza. Per abilitare il supporto *ysoserial*, devi specificare il percorso
del tuo file ``ysoserial.jar`` come argomento aggiuntivo (ad esempio ``--yso /opt/ysoserial.jar``) oppure modificare il
percorso predefinito all'interno del [file di configurazione di rmg](https://github.com/qtc-de/remote-method-guesser/blob/master/src/config.properties) prima di compilare il progetto.
*rmg* supporta anche il completamento automatico per *bash*. Per usufruire del completamento automatico, è necessario avere installato il
progetto [completion-helpers](https://github.com/qtc-de/completion-helpers). Se configurato correttamente, basta
copiare lo [script di completamento](https://github.com/qtc-de/remote-method-guesser/blob/master/resources/bash_completion.d/rmg) nella cartella ``~/.bash_completion.d`` per abilitare
il completamento automatico.```console
$ cp resources/bash_completion.d/rmg ~/bash_completion.d/
Di seguito, vengono presentati brevi esempi per ogni operazione disponibile. Per una descrizione più dettagliata, dovresti leggere la cartella della documentazione che contiene informazioni più dettagliate su rmg e Java RMI in generale. Tutti gli esempi presentati si basano sul rmg-example-server e sul rmg-ssrf-server. Entrambi sono contenuti all'interno di questo repository nella cartella docker e possono essere utilizzati per esercitarsi nell'enumerazione Java RMI. Puoi costruire i contenitori corrispondenti da solo o caricarli direttamente dal GitHub Container Registry.```console [qtc@devbox ~]$ rmg -h usage: remote-method-guesser [-h] action ...
rmg v4.0.0 - a Java RMI Vulnerability Scanner