记录一次服务器挖矿病毒攻击

​ 上学期因为小组作业要用到我的服务器,所以新增了一个guest用户,为了方便组员使用所以使用的是弱口令。但是前天阿里云安全中心突然发了封邮件提示有挖矿程序,于是删除对应文件并修改了密码后就没再管了。因为这是台闲置服务器,我也没设置告警,直到今天ssh远程弄ts服务器的时候发现会经常卡死。

​ 本来以为是磁盘读取的问题,但是后来发现是CPU被吃满了。使用top工具监控后发现是一个叫./Opera的进程占用了所有的CPU资源,Opera是一个浏览器的名称,但是我并没有使用过这个浏览器,而且运行用户是guest,结合之前阿里云的提醒,我意识到是服务器被弱口令登陆之后植入了挖矿程序。

image-20240308170935112

​ 使用ps aux | grep Opera指令查找到这个进程的PID后我杀死了这个进程,但是由于一段时间后这个进程会重新出现且每次重启后都会出现这个进程,所以这个进程很显然存在一个定时任务定时启动来防止进程被杀死。

​ 在查看service和/etc/init.d/都没有头绪后,我选择切换到进程的启动用户guest使用crontab -l指令查看cron定时任务,果不其然存在着四个定时任务,且搜索diicot关键字后发现这果然是个挖矿组织。

image-20240308171537036

https://www.bilibili.com/read/cv24682966/

这四条指令是 cron 定时任务,它们会定期执行指定的命令或脚本。以下是对这四条指令的解释:

  1. @daily /var/tmp/Documents/./.b4nd1d0

    这条指令表示在每天的午夜(00:00)执行 /var/tmp/Documents/./.b4nd1d0 这个命令或脚本。@daily 是 cron 的特殊关键字,等同于 0 0 * * *,表示每天的 0 点。

  2. @reboot /var/tmp/Documents/./.diicot > /dev/null 2>&1 & disown

    这条指令表示在系统启动时执行 /var/tmp/Documents/./.diicot 这个命令或脚本。> /dev/null 2>&1 表示将标准输出和标准错误重定向到 /dev/null,以防止输出到终端。& 表示在后台执行该命令,而 disown 命令用于使该命令脱离终端会话,即使关闭终端也不会停止执行。

  3. * * * * * /var/tmp/Documents/./.diicot > /dev/null 2>&1 & disown

    这条指令表示每分钟都执行 /var/tmp/Documents/./.diicot 这个命令或脚本。* * * * * 表示分钟、小时、日、月和星期的位置均为通配符,表示每分钟都执行。

  4. @monthly /var/tmp/Documents/./.diicot > /dev/null 2>&1 & disown

    这条指令表示在每个月的第一天午夜(00:00)执行 /var/tmp/Documents/./.diicot 这个命令或脚本。@monthly 是 cron 的特殊关键字,等同于 0 0 1 * *,表示每月的第一天的 0 点。

​ 接下来的事情就简单了,删除定时任务,杀死进程,删除源文件。

image-20240308172856862

​ 至此,这次挖矿病毒攻击算告一段落了,得到的教训是:不要使用弱口令和常用用户名!!!