初步排查及处理
阿里云ECS报CPU预警
top命令查看cpu总占用率已超50%,但单独的进程加起来未超10%,怀疑有隐藏进程
安装busybox:
安装方法:
wget --no-check-certificate https://busybox.net/downloads/binaries/1.31.0-defconfig-multiarch-musl/busybox-x86_64
cp busybox-x86_64 /usr/bin/busybox
chmod +x /usr/bin/busybox
查看进程: busybox top
发现有异常进程CPU占用率近50%
找到对应目录,发现有异常文件:
删除异常文件
kill掉异常进程后发现,过段时间又自动重启,查看定时任务,发现有从远程拉取执行文件:
查看该地址:
在ecs中配置出访拒绝该ip出访请求
删除定时任务
打开定时任务配置文件发现有异常的配置和巡检,查询相关文件并删除
发现异常的定时任务配置,将该配置删除或者注释掉
监控一段时间后,发现CPU占用率恢复到正常水平,异常进程也未启动。
处理完毕。
后续高级处理
查看定时任务发现,定时任务中有从外网拉取可执行脚本的任务,
使用root用户删除时,提示没有权限
使用 lsattr 查看权限发现,有a权限,有的情况会同时存在i和a的权限,因此修改该文件权限
lsattr /var/spool/cron/root
-----a-------e-- /var/spool/cron/root
通常定时任务在/var/spool/cron目录下会创建一个与用户名同名的定时任务文件,先处理权限问题,后需要修改该文件内的内容,将异常脚本执行任务删除
chattr -R -ia /var/spool/cron/root
此时,异常定时任务删除完成。
处理完成后,重启定时任务服务
systemctl restart crond
后续若还是出现异常脚本的定时任务,则在定时任务目录下,清空定时任务文件内容,不删除该文件,删除后将文件权限改为不可修改不可删除。
chattr +ia /var/spool/cron/root
攻击者隐藏相应定时任务文件,并构建到其他路径,在/etc/cron.hourly下可查看到部分,打开路径看到
查看对应文件,发现为攻击者保存的文件,删除这些文件,同时修改/etc/cron.hourly下的配置,注释掉对应内容
最后在执行目录下建立同名文件,清空内容后设置i属性
文件路径:/tmp/.whoamisystem
创建空文件:systemig和config.json
修改权限:
chattr +i systemig
chattr +i config.json
chattr +i systemig.tar.gz
lsattr config.json
输出:----i--------e-- config.json
之后删除正在执行的进程
监控一段时间后保持正常。
保底方案
实在没有办法的话可以建个定时任务定时删掉进程,不过这样会损失些性能。