附nmap检测脚本 | Weblogic组件存在反序列化漏洞及解决方法

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实例了

但是没有打补丁的还是可以测试的

参考下面这个文章即可

WebLogic XMLDecoder反序列化漏洞

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等

原文发布于微信公众号 - HACK学习呀(Hacker1961X)

原文发表时间:2019-04-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券