具体出现警告的信息如下:
1.终止恶意进程
1.定位可疑进程:使用 top
或 ps
等命令查看系统中占用资源较高的进程。例如,在终端中执行:
top -o %CPU
查看占用CPU最高的前10个进程。如果发现名称可疑的进程(如未知的脚本或挖矿程序),记下其PID。也可以通过检查网络连接来发现恶意进程,使用命令:
# 对于CentOS/RedHat:
sudo systemctl stop crond
# 对于Ubuntu/Debian:
sudo systemctl stop cron
2.停止cron临时触发(可选):由于告警显示恶意脚本是通过crond
启动的,为防止在清理过程中定时任务再次触发恶意脚本,建议先暂时停止cron服务。执行以下命令停止cron守护进程:
# 对于CentOS/RedHat:
sudo systemctl stop crond
# 对于Ubuntu/Debian:
sudo systemctl stop cron
3.杀死恶意进程:确认进程PID后,使用 kill
命令终止它:
sudo kill -9 <恶意进程PID>
2.检查并清理 Crontab 定时任务
查找恶意定时任务:由于告警涉及 /usr/sbin/crond
执行了可疑脚本,很可能攻击者在系统的计划任务中植入了恶意条目。我们需要彻底检查系统的crontab,并删除所有恶意的定时任务。
1.列出当前用户的计划任务:以root身份登录服务器,执行:
crontab -l -u root
执行指令之后如图:
2.检查系统级计划任务:查看系统范围内的定时任务配置文件:
/etc/crontab
:执行cat /etc/crontab
查看其中是否有可疑命令。/etc/cron.d/
目录:执行ls /etc/cron.d/
查看是否存在可疑文件(攻击者可能新增文件)。对于目录中的每个文件,可以打开查看里面内容,确认是否有恶意命令。/etc/cron.hourly/
,/etc/cron.daily/
等目录:检查这些目录下是否新增了可疑脚本文件。执行例如:
ls -l /etc/cron.hourly /etc/cron.daily /etc/cron.weekly
3.删除恶意crontab条目:对于在上述步骤中发现的恶意定时任务,需要将其移除:
- 使用
crontab -e -u root
打开编辑root的计划任务列表,在编辑器中删除可疑的行(或在行前加#
注释掉)。保存退出后,新设置会自动生效。 - 如果恶意任务存储在文件(如
/etc/cron.d/
目录下某文件),直接删除该文件sudo rm -f /etc/cron.d/恶意文件名
sudo rm -f /etc/cron.d/恶意文件名
- 如果是在
/var/spool/cron/
里的条目,例如/var/spool/cron/root
中存在恶意内容,可使用文本编辑器(如vim
)打开并删除相关行,或者用下面命令清空重建:
crontab -r -u root # 小心使用!这将移除root所有定时任务
crontab -e -u root # 若需要,重新添加必要的合法任务
执行指令之后如图
出现 “Operation not permitted” 的原因很可能是 root的 crontab 文件被设置了不可变属性(immutable)。这是恶意程序常用的手段之一,防止管理员修改或删除它。
解决步骤如下:
1.查看是否有不可变属性
在终端执行
lsattr /var/spool/cron/root
如果输出的属性中包含 i
,表示该文件被设置了不可变(immutable)
2.移除不可变属性
使用 chattr 命令解锁
chattr -i /var/spool/cron/root
如果提示权限错误,确保你是以 root
身份执行。另外,如果所在目录也被设了不可变属性,需要对目录也执行一次 chattr -i
。例如:
chattr -R -i /var/spool/cron
(-R
表示递归解锁子目录及文件)
运行结果如下
从操作输出看,已经顺利去掉了 /var/spool/cron/root
的不可变属性 ( i
),并且执行了 crontab -r -u root
来清空 root 用户的 crontab。接下来建议你做以下验证和后续清理步骤:
3.删除或修改 root 的 crontab
解锁后,在执行
crontab -r -u root
或者使用交互编辑方式:
crontab -e -u root
4.验证是否成功删除
crontab -l -u root
如无输出,说明当前 root 的计划任务已被清空。
4.重点观察可疑文件
有一些文件需要关注,判断它们是否与您的业务有关,或者是否明显可疑:
1./tmp/exp.so
查看文件类型:
file /tmp/exp.so
查看大小:
ls -lh /tmp/exp.so
初步查看字符串:
strings /tmp/exp.so | less