挖矿木马清除日记

背景

一台centos服务器,今日发现cpu和load都增高了一些,top命令查看发现有一个进程cpu占用80%多,猜测多半是挖矿木马(未确定),准备进行清理工作

清理遇到的两个问题

  1. kill -9 可以杀死此进程,然而立马生成了一个新的进程出来
  2. 在/etc/cron.hourly/有一个异常定时任务配置,文件名是xxx.sh,删除后立马生成了一个新的配置文件(文件名也变了)

找到问题2的源头

参考文章谁动了我的文件——使用audit监控文件和目录,用auditd监控/etc/cron.hourly/文件变动,先删除xxx.sh,然后通过ausearch命令找到是谁又生成了一个新的配置文件,最终定位到一个进程,结果发现就是问题1的进程产生的!那么问题1的源头如何找呢?也就是有个守护进程,在进程被杀死后立马生成一个新的马甲出来。那守护进程是谁呢?

找到问题1的守护进程

还是可以使用auditd,参考How to use auditd to monitor a specific SYSCALL监控所有进程的执行fork或者clone的系统调用,具体步骤如下

vim /etc/audit/rules.d/audit.rules
# 在文件第二行增加如下一行配置,表示监控clone,fork,vfork,kill这四个系统调用
-a always,exit -F arch=b64 -S clone,fork,vfork,kill -F key=fork_rule

# 使配置生效
augenrules --load
# 查看生效的配置
auditctl -l

# 执行命令杀死可疑的进程(杀死后可以看到又出现新的进程)
pgrep -P 1|xargs -i file /proc/{}/exe|grep -v 'systemd-journald\|lvmetad\|systemd-udevd\|auditd\|abrtd\|lsmd\|hypervvssd\|abrt-watch-log\|rngd\|deleted\|python\|dbus-daemon\|php-fpm\|nginx\|pure-ftpd\|NetworkManager\|crond\|sshd\|systemd-logind\|hypervkvpd\|mysqld\|agetty\|directory'|grep -Eo [0-9]+|xargs kill -9

# 查看监控日志/var/log/audit/audit.log可以发现如下日志
type=SYSCALL msg=audit(1642486256.950:327876): arch=c000003e syscall=56 success=yes exit=50485 a0=1200011 a1=0 a2=0 a3=7fda15a1dc10 items=0 ppid=1 pid=50484 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="systemd" exe="/usr/lib/systemd/systemd" key="fork_rule"

通过上述步骤,可以发现守护进程是systemd,即这些木马是利用的systemd来实现的守护进程。

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 1
抄你码科技有限公司

log4j中的招?

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!