服务器监听127.0.0.1和监听0.0.0.0有什么区别?如果应用监听在127.0.0.1只能本机客户端可以访问,外网不能访问,跟localhost是一样的。如果应用监听在0.0.0.0上,外网是可以访问的。linux下的telnet -ano 和lsof -i:port有什么区别?telnet无权限控制,lsof有权限控制,只能看到本用户
我们接着说被挖矿的事情,今天打开ES,习惯性去看系统日志,真让我发现了一些奇怪的地方,我这台ES是没有任何连接的,日志中却报了很多的错误
很有意思哈,通过jvm的反射机制获取网络上的脚本:http://185.181.10.234/E5DB0E07C3D7BE80V520/init.sh,通过这个连接地址我们就能发现这是一个linux下的执行脚本,大概给大家截一下脚本的内容哈,如果大家想细看,可以用这个链接去下载。
看看这个脚本的险恶用心,chmod 777,这是一点情面不留啊
挖矿脚本出现在ES日志中,第一想法就是有***利用了ES中的漏洞。在网上也看到了一些相同遭遇的帖子,这个情况在今年6月13日被安天蜜网暴露出来,是有人利用CVE-2015-1427(ElasticSearch Groovy)远程命令执行漏洞的***行为。以下是一部分网络原文:
从***载荷来看,***者通过groovy作为脚本语言,向_search?pretty页面发送一段带有恶意链接为http://185.181.10.234/E5DB0E07C3D7BE80V520/init.sh的json脚本,进行恶意shell脚本下载,从而实现远程代码***,并进行挖矿行为
图 2-1 数据包内容
解密后核心代码:
大概的步骤为:1.***者通过http://185.181.10.234/E5DB0E07C3D7BE80V520/init.sh下载并执行恶意脚本init.sh来植入Dog挖矿程序,同时对主机进行扫描等一系列操作。
2.之后执行关闭防火墙、关闭selinux并释放占用的资源、杀掉其他与挖矿相关的进程、设置定时任务(每30分钟下载一次可执行文件update.sh),获取ssh权限,进行iptables规则转发修改,同时清理相关操作历史、日志等操作。
在此过程中,脚本会检查sysupdate、networkservice 和sysguard这3个进程是否启动,如果没有则进行启动。
3.***分成挖矿、扫描、函数调用三个进程进行调度,利用三个进程:sysguard、networkservice(扫描)和sysupdate。
大家可以点击原文链接查看 安天蜜网捕获“利用ElasticSearch Groovy漏洞进行门罗币(Dog)挖矿”事件分析
说一下我的解决方式,我的解决方式比较粗暴,主要是我的服务器没有连接,没有使用者,里面的内容我备份之后,就可以做升级了,然后把数据再搞进去就行。我升到了最新的ES版本,大家可以关注一下自己的服务器是不是也遇到了跟我一样的问题。
另外这种情况一般都是出现在开放服务器默认端口给外部的时候,我建议如果非要开放的话 就不要用默认的端口了,什么9200,9300等等,改了端口至少可以减少被挖矿的概率。