CentOS 系统彻底清理病毒的实操手册
一、处置原则与准备
HISTFILE=/dev/null,避免本次命令写入历史,干扰取证。二、定位与止血 持久化入口排查
ls -l /var/spool/cron/*、cat /etc/crontab、ls -l /etc/cron.d/、ls -l /etc/cron.*chattr +i /etc/crontab /etc/cron.hourly,清理后再解锁。ls -l /etc/systemd/system/、/etc/systemd/system/multi-user.target.wants/、/etc/rc.d/init.d/(遗留 SysV)systemctl stop <svc>、systemctl disable <svc>,删除对应 unit 文件。/etc/rc.d/rc.local 是否被植入命令。chattr -iRa /usr/ /etc/(清理后再恢复必要权限)。/etc/ld.so.preload 中的异常 so 注入,恢复系统命令二进制。cat /etc/passwd、cat /etc/shadow,删除可疑账户(必要时用 vipw/vipw -s 同步修改)。/lib/libudev.so、/lib/libudev.so.6 驻留,并在 /etc/cron.hourly/ 下放脚本(如 gcc.sh);此类样本常通过“变形+守护”复活,需按序处置。三、终止进程与清理文件 按序操作
top/htop 按 CPU 排序,或用 sysdig -c topprocs_cpu 发现隐藏进程;必要时用 unhide proc 检查隐藏进程。systemctl status <PID> 查看 CGroup 中的 .service 启动源,先 stop 再 disable。/lib/libudev.so、/lib/libudev.so.6 清空为 /dev/null,随后删除相关脚本与软链。/etc/init.d/ 下可疑脚本及其在 rc[0-6].d 的符号链接。chattr -i /etc /usr/bin /bin /etc/crontab /etc/cron.hourly,再删除残余文件。--remove 前务必人工核验,避免误删业务文件。四、病毒扫描与 Rootkit 检测
yum install -y epel-release && yum install -y clamav clamav-updatefreshclamclamscan -r / -l /var/log/clamav/fullscan.logclamscan -r --remove /path(建议先扫描报告确认)systemctl start clamav-daemon,随后 clamdscan -r /path 或 clamdscan --multiscan --fdpass /pathrkhunter --check、chkrootkit,关注异常 SUID、隐藏进程、可疑内核模块等告警。五、加固与复发预防
~/.ssh/authorized_keys 异常公钥。yum update -y 与安全补丁更新,修复已知漏洞。sysdig/auditd 做关键目录与进程行为监控。/var/log/secure、/var/log/messages、/var/log/cron,保留至少 90 天。