1 漏洞描述
近日,互联网爆出WebLogicwls9-async反序列化远程命令执行漏洞。攻击者利用该漏洞,可在未授权的情况下远程执行命令。该漏洞危害程度为高危(High)。目前,官方补丁尚未发布,漏洞细节未公开。
2 影响范围
受影响版本:
WebLogic 10.X
WebLogic 12.1.3
此漏洞影响启用bea_wls9_async_response组件及wls-wsat组件的所有Weblogic版本
3 漏洞原理
该漏洞存在于wls9-async组件,该组件为异步通讯服务,攻击者可以在/_async/AsyncResponseService路径下传入恶意的xml格式的数据,传入的数据在服务器端反序列化时,执行其中的恶意代码,实现远程命令执行,攻击者可以进而获得整台服务器的权限。
4 漏洞复现
靶机环境:Weblogic 10.3.6
wls9_async组件是默认启用的,可以访问http://weblgic地址/_async和http://weblgic地址/_async/AsyncResponseService来测试是否启用该组件,如果启用了wls9_asyn组件,则存在该漏洞。
1.http://192.168.1.126:7001/_async
该请求返回 403 则存在,返回404则不存在
2.http://192.168.1.126:7001/_async/AsyncResponseService
该请求返回200 则存在,返回404则不存在
发送构造的POC
上述这个大马来自Github:
https://github.com/tennc/webshell/blob/master/jsp/JspSpy.jsp
成功拿到shell
该poc利用windows的certutil下载远程文件保存为jsp到服务器,如果是linux服务器可以利用curl下载文件,还利用Windows的powershell反弹shell。
5 修复建议
漏洞排查
wls9_async组件是默认启用的,可以访问http://weblgic地址/_async和http://weblgic地址/_async/AsyncResponseService来测试是否启用该组件,如果启用了wls9_asyn组件,则存在该漏洞。
1.http://192.168.1.126:7001/_async
该请求返回 403 则存在,返回404则不存在
2.http://192.168.1.126:7001/_async/AsyncResponseService
该请求返回200 则存在,返回404则不存在
临时解决方法
说明:因此次漏洞细节未披露,且目前官方没有任何文档说明此漏洞,在不确定真实影响范围的前提下,临时解决方案针对是weblogic 9、11g、12c三个版本。
1.删除该war包并重启WebLogic服务,具体文件路径如下:
Weblogic9版本:
/%WLS_HOME%/weblogic92/server/lib/bea_wls9_async_response.war
Weblogic 10版本:
/%WLS_HOME%/wlserver_10.3/server/lib/bea_wls9_async_response.war
Weblogic12版本:
/%WLS_HOME%/oracle_common/modules/com.oracle.webservices.wls.bea-wls9-async-response_12.1.3.war
注:wls9_async_response.war属于一级应用包,对其进行移除或更名操作可能造成未知的后果,Oracle官方不建议对其进行此类操作。
2.禁用bea_wls9_async_response组件:
用户可通过在weblogic启动参数中禁用bea_wls9_async_response的方式,对此漏洞形成临时防护。
在禁用不安全组件前,需请开发人员确认应用系统是否使用了weblogic提供的异步WebService功能,排查方法请附录章节。如果确认没有使用,可以使用如下方式禁用此功能:
a)以windows系统为例,在启动文件(%DOMAIN_HOME%\bin\startWeblogic.cmd)中加如下参数:
set JAVA_OPTIONS=%JAVA_OPTIONS% -Dweblogic.wsee.skip.async.response=true
set JAVA_OPTIONS=%JAVA_OPTIONS% -Dweblogic.wsee.wstx.wsat.deployed=false
c)测试结果没有问题后,重启Weblogic服务,使参数生效。b) 对应用程序进行严格测试;
简书复现案例
https://www.jianshu.com/p/c4982a845f55
CNVD-C-2019-48814漏洞Nmap检测插件
链接:https://pan.baidu.com/s/1l1-leFiNYQO03OqDYACW9A
提取码:qxd0
关于这个漏洞为什么公网上难以复现
目前这个poc只能打未安装补丁的版本
但是由于这个poc和2017年的一样
去年的Weblogic补丁已经把这几个标签补了,打了补丁的已经不能生成java实例了
但是没有打补丁的还是可以测试的
参考下面这个文章即可
http://xxlegend.com/2017/12/23/Weblogic%20XMLDecoder%20RCE%E5%88%86%E6%9E%90/
本地如何复现
使用vulhub即可,启动CVE-2017-10271环境
然后poc打一波就是了
不会使用vulhub的可以参考下
https://www.freebuf.com/articles/system/143711.html
参考来源:轩辕攻防实验室,简书,xxlegend博客,Freebuf,Github等