Java Drive By & Stub - Explicación [cerrado]

0

Últimamente he estado intentando hacer algunas extensiones para Chrome para bloquear algunas cosas no deseadas. También he estado buscando bastante tiempo para encontrar lo que hace un JDB. Entonces, el applet descarga un archivo, ¿no? (Silenciosamente)

El código java que creo se ve así: (no encriptado, archivo de muestra)

public void init(){
try {
    in = new BufferedInputStream(new URL("http://wordpress.org/plugins/about/readme.txt").openStream());//get an inputstream from preferred file
} catch (IOException e) {
}
try {
    f = new File("C:\" + fileName);//get file to write
    f.delete();
    try {
        f.createNewFile();
    } catch (IOException e) {
    }

    out = new FileOutputStream(f);//get an outputstream from the file
} catch (FileNotFoundException e) {
}
bout = new BufferedOutputStream(out,bufferLength);//make the output stream to the file buffered with 1GB length
byte data[] = new byte[bufferLength];//create our buffer
try {
    while(in.read(data, 0, bufferLength) >= 0){//returned value if file has ended is -1 buffer = data , offset = 0 , max bytes = buffer length
        out.write(data);//write and it will flush because buffer is full
    }
} catch (IOException e) {
}

try {//Housekeeping , close the streams
    bout.close();
    out.close();
    in.close();
} catch (IOException e) {
}

}

¿Son correctas las cosas que mencioné? Además, no entiendo cómo funciona un talón y cómo prevenirlo. ¿A alguien le importa explicar? (Quiero una explicación de lo que los hackers consideran que es ...)

    
pregunta user3029101 11.01.2014 - 14:24
fuente

1 respuesta

0

En el modelo de applet de Java, un applet de Java es un fragmento de código enviado por el servidor, que debe ser ejecutado por el cliente, con restricciones . Por defecto, un applet de Java no puede interactuar mucho con el sistema local o la red; puede hablar solo con el servidor de origen y no puede leer ni escribir archivos locales. Sin embargo, un applet de Java puede ser firmado , en cuyo caso se le permite solicitar privilegios extendidos; el usuario humano ve una ventana emergente específica de Java (que también indica quién firmó y le permite inspeccionar los certificados relevantes), y puede elegir hacer clic en "Aceptar", momento en el que el applet de Java puede hacer lo que desee.

Lo que hace la fuente (pobremente codificada) que muestra es simplemente descargar algún recurso de una URL y escribir el contenido en un archivo local. Este código solo funcionará en un applet de Java firmado que el usuario humano autorice explícitamente. Si un applet de Java no firmado (o un applet que fue firmado pero negó las autorizaciones), entonces el código fallará, ya sea en la llamada openStream() (si el applet no proviene del servidor wordpress.org , este es el acceso de red prohibido) o en la llamada f.delete() (se prohíbe el acceso al sistema de archivos local).

Un " drive by " es un tipo de acción relacionada con la Web, en la que el usuario visita una Web sitio, y ve el sitio, pero "algo más" también ocurre de forma más o menos transparente, en el caso clásico, una descarga de otro archivo. Si intenta hacerlo con un applet de Java, esto requerirá que el applet esté firmado y que el usuario haga clic en "Aceptar" en la ventana emergente específica de Java, otorgando autorizaciones. Lograr que un usuario promedio haga clic en "Aceptar" en una ventana emergente técnica no es difícil (los usuarios promedio no comprenden bien las ventanas emergentes técnicas, y Windows las ha entrenado durante décadas para descartar las ventanas emergentes frecuentes sin siquiera leerlas). Sin embargo, dado que el applet está firmado, identifica al firmante a través de su certificado, es decir, el atacante. Esto aumenta los riesgos, desde el punto de vista del atacante; implica obtener un certificado no incriminatorio, que es, como mínimo, un trabajo extra. Así que esto actúa como un elemento disuasivo contra ese tipo de ataques basados en Java. Los ataques prácticos con Java abusan más fácilmente de los agujeros de seguridad en la VM de Java, permitiendo que un applet sin firma obtenga privilegios de forma transparente, sin interacción del usuario y sin ninguna firma.

Tenga en cuenta que si un applet obtiene los privilegios suficientes para escribir archivos locales, en la práctica, puede hacer lo que quiera con la máquina local.

    
respondido por el Thomas Pornin 11.01.2014 - 14:53
fuente

Lea otras preguntas en las etiquetas