首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

别让你的服务器沦为别人的“挖矿工人”!-WebLogic wls-wsat组件 XML反序列化代码执行漏洞修复

背景介绍

最近由于数字货币的疯涨,有黑客正在利用WebLogic反序列化漏洞(CVE-2017-3248)和WebLogic WLS组件漏洞(CVE-2017-10271)对企业服务器发起大范围远程攻击,入侵后用来挖矿,有大量企业的服务器已被攻陷,且被攻击企业数量呈现明显上升趋势,需要引起高度重视!!!

一、BUG?BUG!!

BUG描述:

漏洞引发原因是Oracle官方的JDK组件中“XMLDecoder”类在反序列化操作时可以注入执行远程代码,Weblogic “wls-wsat”组件在反序列化操作时使用了“XMLDecoder”类,进行XML反序列操作时未做校验,引发远程代码执行。

官方在 2017 年 4 月份就发布了漏洞补丁CVE-2017-3506,此补丁修复利用Oracle WebLogic中WLS 组件远程执行代码的漏洞。通过分析可知,此补丁只是简单的检查了XML中是否包含了节点,将换为即可绕过此补丁。因此10月份官方发布了漏洞补丁CVE-2017-10271,再次修复绕过的漏洞。

BUG影响:

此BUG为高危级!!该漏洞的利用方法较为简单,攻击者只需要发送构造好执行代码的 HTTP XML数据包请求,就可以直接在服务器执行Java代码或操作系统命令。攻击者不仅可以远程下载“比特币”等各种挖矿程序,利用被控服务器进行挖矿工作,使服务器沦为“肉鸡”、“矿工”;也可以执行诸如“rm –rf ” 的命令,对系统进行破坏,并且不会留下日志,非常危险。

受影响的版本

Weblogic Server 10.3.6.0.0,

Weblogic Server 12.1.3.0.0,

Weblogic Server 12.2.1.1.0,

Weblogic Server 12.2.1.2.0

以上均为Weblogic官方还在支持的版本

不受影响的版本

Weblogic Server 12.2.1.3

BUG补丁:

Oracle官方发布补丁,见下表:

二、解决方案

临时方案如下

第一步:根据实际环境路径,删除WebLogic程序下列war包及目录:

第二步:重启WebLogic或系统后,确认以下链接访问是否为404

http://x.x.x.x:7001/wls-wsat/CoordinatorPortType。

解决方案(安装补丁PSU20171017):

10.3.6 补丁安装

1、使用weblogic安装用户登录到中间件服务器;

2、关闭所有的weblogic节点;

3、在weblogic安装路径(如:/middleware/wls1036/)下,进入bsu文件夹。如:/middleware/wls1036/utils/bsu

4、执行”./bsu.sh”生成cache_dir文件夹

5、使用FTP以二进制方式将补丁包上传到cache_dir目录中

6、进入cache_dir目录,解压补丁包“unzip p21984589_1036_Generic.zip”

7、进入bsu目录执行上述配置好的命令:

8、验证安装:

(1)通过bsu命令验证检查;

(2)通过启动日志验证:启动weblogic服务,在后台的输出信息中看到 “10.3.6.171017”版本字样,表示安装成功;

(3)通过console页面验证:登录weblogic的控制台,进入左侧 “环境”-> 服务器 ,选择其中任意一个服务器,之后进入“监视”->“一般信息”可查看指定server的详细版本号,验证补丁安装成功;

9、补丁回退,执行命令

检查回退结果:

10、注意事项:

(1)执行bsu.sh报错java.lang.OutOfMemoryError: Java heap space

解决办法:

修改bsu.sh将MEM_ARGS="-Xms4096m -Xmx4096m"

12c版本补丁安装

从WebLogic 12c版本开始,WebLogic更新了更新补丁的方式,改由opatch执行更新。

以下步骤适用于所有12c版本:

1.检查ORACLE_HOME环境变量为已安装的ORACLE WEBLOGIC SERVER的目录;

2.停止所有的服务器(AdminServer和所有Managed服务器);

3.设置环境变量

注:斜体加粗部分需要针对定制环境修改;

4.进入Opatch目录中将补丁程序zip文件压缩到tmp_dir中unzip–d tmp_dir/ p26519424_1036_Generic.zip

5.进入解压目录并执行opatch,执行opatch安装命令

6.验证补丁是否安装

$ORACLE_HOME/OPatch/opatch lsinventory

已打补丁的输出中可以看到如下字样:

卸载补丁

若在安装该补丁程序时遇到任何问题,请将该补丁删除

1.停止所有的服务器(AdminServer和所有Managed服务器)

2.运行opacth卸载该补丁程序

3.重新启动所有服务器(AdminServer和所有托管服务器)

三、漏洞验证

使用python脚本检查漏洞是否存在

先决条件:客户机安装python,并且安装python的requests组件

执行脚本

其中主函数中'http://192.168.1.41:7001', 'whoami'分别是要测试的服务器和远程执行的命令。

PS:完善此脚本,可批量检查漏洞。

测试结果:

在没有打补丁时,执行脚本,结果为:

打补丁后,执行脚本,结果为:

如果服务器端weblogic没有启动,会返回Error的错误:

四、用户自检

由于利用Weblogic漏洞传播挖矿木马已经有几天时间,如何检查服务器是否中招呢?

针对linux主机,首先查看/tmp目录中是否存在属主为WebLogic运行账户 的相关可疑文件,如:watch-smartd、Carbon、default。

同时通过进程及系统资源分析,是否存在启动用户为WebLogic运行账户的 相关可疑进程。

同时在网络层,通过防火墙或相关的入侵防御设备,对C&C地址及矿池相 关域名/IP进行监测,涉及域名及IP包括

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171225B10JFW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券