一、检查

下面的检查项可以使用 miner-check.sh 脚本检查(检查用户登录日志暂时没有在脚本中实现)

1.1 检查定时任务

# 比较全面的查看定时任务(只用这个命令查看也可以)
find /var/spool/cron /etc/cron* -type f -exec cat {} \;
## 可以使用下面的命令区分定时任务分别是哪个文件当中的
find /var/spool/cron /etc/cron* -type f \( -exec echo "--- {}: " \; \) -a -exec cat {} \;


# 查看系统级别的定时任务
cat /etc/crontab

# 查看服务器所有用户的定时任务
awk -F':' '{printf "crontab -l -u %s\n",$1}' /etc/passwd | bash

1.2 检查程序资源使用情况

# 查看 CPU 使用最高的进程
ps aux --sort -pcpu | head
ps -eo pid,ppid,pmem,pcpu,comm,command --sort -pcpu | head

# 查看内存使用最高的进程
ps aux --sort -pmem | head
ps -eo pid,ppid,pmem,pcpu,comm,command --sort -pmem | head

1.3 检查文件

可以根据前面两个检查的环节来大致定位恶意文件的目录,或者常见的临时目录检查一下

ls -la /tmp /var/tmp

1.4 检查系统服务

查看是否有恶意的系统服务

systemctl list-unit-files --type=service

1.5 检查用户登录日志

# Ubuntu/Debian
less /var/log/auth.log

# CentOS
less /var/log/secure

查看下面的/var/log/auth.log中的异常日志,以 root 用户在flink的目录下执行/usr/sbin/sysctl kernel.nmi_watchdog=0命令,随后所有连接到服务器上的用户全部断开

随后检查定时任务,发现服务器上出现了如下定时任务:

并且出现了如下文件

二、针对可自动恢复的恶意程序处理

Linux 服务器上有挖矿病毒 kdevtmpfsi 如何处理?

关于linux病毒kinsing kdevtmpfsi的处理

对于发现的一个叫做kdevtmpfsi的程序,CPU 占用率为 4891%

尝试kill -9 <pid>杀掉进程、删除/tmp/kdevtmpfsi文件,但是过几分钟会自动再次出现。

这个时候要看下是否存在定时任务(参考命令:find /var/spool/cron /etc/crontab /etc/cron.* -type f -exec cat {} \;),把这些定时任务删除

通过systemctl status <pid>查看信息

尝试kill -9 <pid>杀掉进程、删除/tmp/kdevtmpfsi//etc/kinsing文件

三、解决方式总结

  1. 删除找到的恶意定时任务
  2. 封IP/域名。有的可以看到是从某个IP或域名下载恶意脚本,需要将对应的IP加入黑名单
  3. 在防火墙配置只允许白名单中的IP访问服务器
  4. 删除病毒程序文件。删除病毒程序文件、systemd service 文件