镇江市互联网协会

 找回密码
 立即注册
镇江市互联网协会 首页 网络技术 查看内容

天融信入侵防御系统抵御JAVA零日漏洞

2012-9-4 09:25| 发布者: admin| 查看: 1363| 评论: 0|来自: 赛迪网

摘要: 来源:赛迪网,发布时间:2012-9-4 09:25,关键词:天融信入侵防御系统抵御JAVA零日漏洞

      近日,一个新的Java 0day被发现在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:

 

      http://pastebin.com/YrY5u7RZ

 

      http://pastebin.com/pdrkL3xV

 

      http://pastie.org/4595899

 

      首先提权,然后即可执行任意代码。

 

      我们知道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原有的权限,即可完成提权过程。

 

      导致突破沙箱,任意代码执行。

 

      POC:

 

      http://pastebin.com/ge4JNGwz

 

      http://pastebin.com/CRwr5Giw

相关阅读


回顶部