近日,一个新的java0day被发现在APT和挂马中,被称之为cve-2012-4681。JRE7.x中存在提权漏洞,攻击者利用这个漏洞可以在本地运行任意代码。这个漏洞是基于JAVA的,可以影响多WINDOWS,LINUX/UNIX,MAC多个平台操作系统,老版本的JRE6并不受影响。
近日,一个新的java0day被发现在APT和挂马中,被称之为cve-2012-4681。JRE7.x中存在提权漏洞,攻击者利用这个漏洞可以在本地运行任意代码。这个漏洞是基于JAVA的,可以影响多WINDOWS,LINUX/UNIX,MAC多个平台操作系统,老版本的JRE6并不受影响。
31日上午,JAVA官方发布了紧急补丁。天融信提醒广大用户,漏洞始终是病毒木马入侵电脑的重要通道,及时安装安全更新,可以大大降低电脑被恶意攻击的可能性。天融信防火墙IDP/IDS已更新了安全策略有效保护客户安全。
以下是我们捕获到的一个样本,样本使用Dadong's JSXX混淆加密方式躲过防火墙,杀软等。
解码后得到如下:
动态创建了一个applet,在applet中运行GondadGondadExp.class样本,触发java0day。下面是对GondadGondadExp.class样本的反编译分析。
漏洞分析
样本和EXP:
或者
首先提权,然后即可执行任意代码。
我们知道applet和本地JAVA程序之间有着沙盘保护,这个样本就是利用了Oday漏洞,绕过保护机制,从而实现执行任意代码。
首先简单的初始化了2个object,
类型分别为java.beans.Statement和java.security.AccessControlContext来获取当前权限,然后作为参数传入SetField函数(实现提权,并覆盖原有权限)
提权漏洞主要在GetClass函数中,获取到"sun.awt.SunToolKit"对象。
接着调用sun.awt.SunToolkit的getField
获取的到了java.beans.Statement.acc的AccessControlContext
java.beans.Statement实例的AccessControlContext拥有全部权限
而applet程序默认只有少量权限,
从而通过Set函数覆盖applet原有的权限,即可完成提权过程。
导致突破沙箱,任意代码执行。
网友评论