利用ElasticSearch Groovy漏洞进行门罗币挖矿事件分析

栏目: Groovy · 发布时间: 5年前

内容简介:2019年6月13日,安天蜜网捕获到利用CVE-2015-1427(ElasticSearch Groovy)远程命令执行漏洞的攻击行为。该漏洞原理是Elaticsearch将groovy作为脚本语言,并使用基于黑白名单的沙盒机制限制危险代码执行,但该机制不够严格,可以被绕过,从而导致出现远程代码执行的情况。我们对此次事件进行了详细的样本分析,并给出预防及修复建议。从攻击载荷来看,攻击者通过groovy作为脚本语言,向_search?pretty页面发送一段带有恶意链接为

一、概述

2019年6月13日,安天蜜网捕获到利用CVE-2015-1427(ElasticSearch Groovy)远程命令执行漏洞的攻击行为。该漏洞原理是Elaticsearch将groovy作为脚本语言,并使用基于黑白名单的沙盒机制限制危险代码执行,但该机制不够严格,可以被绕过,从而导致出现远程代码执行的情况。我们对此次事件进行了详细的样本分析,并给出预防及修复建议。

二、样本分析

2.1 关键攻击载荷

从攻击载荷来看,攻击者通过groovy作为脚本语言,向_search?pretty页面发送一段带有恶意链接为 http://185.181.10.234/E5DB0E07C3D7BE80V520/init.sh 的json脚本,进行恶意 shell 脚本下载,从而实现远程代码攻击,并进行挖矿行为

利用ElasticSearch Groovy漏洞进行门罗币挖矿事件分析

图 2-1 数据包内容

解密后核心代码:

利用ElasticSearch Groovy漏洞进行门罗币挖矿事件分析

图 2-2 核心代码

2.2 样本分析

1) 入侵脚本分析—init.sh

攻击者通过 http://185.181.10.234/E5DB0E07C3D7BE80V520/init.sh 下载并执行恶意脚本init.sh来植入Dog挖矿程序,同时对主机进行扫描等一系列操作。

利用ElasticSearch Groovy漏洞进行门罗币挖矿事件分析

图 2-3 关闭防火墙

之后执行关闭防火墙、关闭selinux并释放占用的资源、杀掉其他与挖矿相关的进程、设置定时任务(每30分钟下载一次可执行文件update.sh),获取ssh权限,进行iptables规则转发修改,同时清理相关操作历史、日志等操作。

利用ElasticSearch Groovy漏洞进行门罗币挖矿事件分析

图 2-4 检查并杀死其它存在的挖矿进程

利用ElasticSearch Groovy漏洞进行门罗币挖矿事件分析

图 2-5 设置定时任务

利用ElasticSearch Groovy漏洞进行门罗币挖矿事件分析

图 2-6 恶意脚本下载地址、备份地址以及大小设置

利用ElasticSearch Groovy漏洞进行门罗币挖矿事件分析

图 2-7 清理相关日志、历史

在此过程中,脚本会检查sysupdate、networkservice 和sysguard这3个进程是否启动,如果没有则进行启动。

利用ElasticSearch Groovy漏洞进行门罗币挖矿事件分析

图 2-8 当其中一个被kill掉后,调度文件重新启动

2) 样本分析—sysguard、networkservice、sysupdate

三个样本为 go 语言编写并使用UPX加壳,对应的main_main函数结构分别如下:

利用ElasticSearch Groovy漏洞进行门罗币挖矿事件分析

图 2-9 sysguard-main_main函数结构

利用ElasticSearch Groovy漏洞进行门罗币挖矿事件分析

图 2-10 networkservice-main_main函数结构

利用ElasticSearch Groovy漏洞进行门罗币挖矿事件分析

图 2-11 sysupdate-main函数

通过与之前捕获的systemctI样本对比发现,此次攻击分成挖矿、扫描、函数调用三个进程进行调度。并且在networkservice样本中发现了相关漏洞利用函数和扫描函数。

利用ElasticSearch Groovy漏洞进行门罗币挖矿事件分析

图 2-12 networkservice扫描函数

通过对比之前捕获的样本发现两次攻击手法类似,不同的是此次攻击是通过sysguard、networkservice(扫描)和sysupdate三个进程共同进行的。这也意味着,发现服务器被感染后要将这三个进程同时kill掉。

3) 配置文件—config.json

在下载的配置文件中,我们发现了多个矿池地址:

表 2-1 矿池列表

利用ElasticSearch Groovy漏洞进行门罗币挖矿事件分析

利用ElasticSearch Groovy漏洞进行门罗币挖矿事件分析

图 2-13 s配置文件

三、受影响的服务及漏洞

表 3-1 受影响的服务和漏洞

利用ElasticSearch Groovy漏洞进行门罗币挖矿事件分析

四、IOC

表 4-1 攻击IP

利用ElasticSearch Groovy漏洞进行门罗币挖矿事件分析

表 4-2 URL

利用ElasticSearch Groovy漏洞进行门罗币挖矿事件分析

表 4-3 MD5

利用ElasticSearch Groovy漏洞进行门罗币挖矿事件分析

五、预防与修复建议

预防建议:

a) 确保系统与应用程序及时下载更新为官方提供的最新补丁;
b) 禁止使用弱口令密码;
c) 定期检查服务器异常,如CPU持续占用高、磁盘异常情况;
d) 安装终端威胁安全防护产品

修复建议:

a) 断网、备份重要的crontab,关闭或删除定时任务:systemctl stop crontab或 rm -rf /etc/cron.d/*;
b) 锁定crontab中的恶意文件;
c) 查看并杀掉病毒进程:同时杀掉sysguard、networkservice、sysupdate三个进程;
d) 删除病毒相关文件;
e) 确认无误后,重启服务器,安装漏洞补丁。

附录一:参考链接

[1] Reversing GO binaries like a pro: https://rednaga.io/2016/09/21/reversing_go_binaries_like_a_pro/

*本文作者:antiylab,转载请注明来自FreeBuf.COM


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

查看所有标签

猜你喜欢:

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

征服C指针

征服C指针

前桥和弥 / 吴雅明 / 人民邮电出版社 / 2013-2 / 49.00元

《图灵程序设计丛书:征服C指针》被称为日本最有营养的C参考书。作者是日本著名的“毒舌程序员”,其言辞犀利,观点鲜明,往往能让读者迅速领悟要领。书中结合了作者多年的编程经验和感悟,从C语言指针的概念讲起,通过实验一步一步地为我们解释了指针和数组、内存、数据结构的关系,展现了指针的常见用法,揭示了各种使用技巧。另外,还通过独特的方式教会我们怎样解读C语言那些让人“纠结”的声明语法,如何绕过C指针的陷阱......一起来看看 《征服C指针》 这本书的介绍吧!

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

在线压缩/解压 JS 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具