Linux病毒/恶意程序排查实战手册:从进程定位到清除修复全流程

Linux病毒/恶意程序排查实战手册:从进程定位到清除修复全流程

奥德彪学习网提供 Linux 系统病毒排查的完整实战流程,从 CPU 异常进程定位、隐藏恶意程序检测,到病毒文件追踪、持久化机制清理,再到系统修复与安全预防,覆盖挖矿病毒、勒索软件等常见恶意程序的应对方案。所有操作均以纯命令行形式呈现,步骤清晰、可操作性强,适合运维人员及系统用户快速解决病毒入侵问题。

导航目录

  1. ⚡ 查看引起 CPU 飙高的进程
  2. 👻 检查隐藏进程
  3. 📁 定位病毒文件
  4. ⏰ 检查系统计划任务
  5. 🌐 网络连接检查
  6. 📊 系统日志分析
  7. 📂 文件系统检查
  8. 🧹 清除和修复
  9. 🛡️ 预防措施

一、查看引起 CPU 飙高的进程

1. 使用 top 命令

top
  • 操作:按 P 键按 CPU 使用率排序,按 Q 退出
  • 特点:实时监控,快速定位高占用进程

2. 使用 htop(更直观)

# 安装(Debian/Ubuntu
apt install htop
# 启动
htop
  • 优势:彩色界面,进程树展示,支持鼠标操作

3. 使用 ps 命令筛选

# 按CPU使用率排序,取前10
ps aux --sort=-%cpu | head -10
# 按内存使用率排序,取前10
ps aux --sort=-%mem | head -10
  • 功能:精准获取资源占用最高的进程列表

二、检查隐藏进程

1. 安装并使用 unhide 工具

# 安装
apt install -y unhide
# 快速扫描
unhide quick
# 全面扫描(耗时较长)
unhide brute
  • 特点:专业检测隐藏进程和 rootkit

2. 进程与 /proc 目录对比法

# 提取进程列表PID
ps -ef | awk '{print $2}' | sort -n > /tmp/ps_pids
# 提取/proc目录PID
find /proc -maxdepth 1 -type d -name '[0-9]*' | awk -F'/' '{print $3}' | sort -n > /tmp/proc_pids
# 对比差异(差异为隐藏进程)
diff /tmp/ps_pids /tmp/proc_pids
  • 原理:通过对比进程表与 /proc 实际运行进程,发现隐藏项

三、定位病毒文件

1. 通过 PID 定位可执行文件

# 替换 <PID> 为实际进程ID
ll /proc/<PID>/exe
# 示例
ll /proc/6113/exe

2. 查看进程详细信息

ps -ef | grep <PID>
  • 示例输出:root 4136 1 98 13:50 ? 00:00:23 /bin/bash /var/tmp/.sys/cpu.sh

3. 查看进程打开的文件

# 查看进程打开的所有文件
lsof -p <PID>
# 查看进程工作目录
ll /proc/<PID>/cwd

4. 检查进程环境变量

cat /proc/<PID>/environ | tr '\0' '\n'
  • 功能:发现异常环境配置变量

四、检查系统计划任务

1. 查看用户计划任务

# 当前用户
crontab -l
# root用户(需root权限)
crontab -u root -l

2. 检查系统计划任务目录

ls -la /etc/cron.d/
ls -la /etc/cron.hourly/
ls -la /etc/cron.daily/
ls -la /etc/cron.weekly/
ls -la /etc/cron.monthly/
# 查看系统crontab文件
cat /etc/crontab

3. 检查其他持久化位置

# 系统服务
systemctl list-units --type=service
# 开机启动项
ls -la /etc/rc.local
ls -la /etc/init.d/
# profile文件
cat /etc/profile
cat ~/.bashrc
  • 重要性:病毒常通过这些位置实现开机自启

五、网络连接检查

1. 查看所有网络连接

# 传统命令
netstat -tunlp
# 现代替代命令
ss -tunlp
# 查看已建立的对外连接
netstat -anp | grep ESTABLISHED
  • 参数说明:-t (TCP)、-u (UDP)、-n (不解析域名)、-l (监听)、-p (显示进程)

2. 检查指定进程的网络连接

lsof -i -P -n | grep <PID>
# 或
netstat -tunlp | grep <PID>
  • 功能:发现进程异常外连行为

六、系统日志分析

# 系统日志(Debian/Ubuntu)
tail -f /var/log/syslog
# 系统日志(CentOS/RHEL)
tail -f /var/log/messages
# 认证日志(登录/权限相关)
tail -f /var/log/auth.log
# systemd通用日志
journalctl -f
  • 特点:实时监控系统活动,追溯异常登录和执行记录

七、文件系统检查

# 查找近7天修改的文件
find / -mtime -7 -type f 2>/dev/null
# 查找隐藏文件
find / -name ".*" -type f 2>/dev/null
# 查找隐藏目录
find / -name ".*" -type d 2>/dev/null
# 查找可疑脚本文件
find / -name "*.sh" -o -name "*.pl" -o -name "*.py" 2>/dev/null
  • 技巧:重点关注 /tmp、/var/tmp 等临时目录

八、清除和修复

1. 终止恶意进程

# 终止单个进程
kill -9 <PID>
# 终止进程及其子进程(替换 process_name)
pkill -9 -f "process_name"

2. 删除恶意文件

# 直接删除
rm -f /path/to/malicious/file
# 处理只读文件
chattr -i /path/to/malicious/file
rm -f /path/to/malicious/file

3. 清理计划任务

# 编辑计划任务,删除恶意条目
crontab -e
# (谨慎)删除当前用户所有计划任务
crontab -r

九、预防措施

1. 系统安全加固

# 系统更新
apt update && apt upgrade -y
# 安装安全工具
apt install -y fail2ban rkhunter chkrootkit
# 定期扫描
rkhunter --check
chkrootkit
  • 推荐工具:
    • fail2ban:防止暴力破解
    • rkhunter:Rootkit 检测
    • chkrootkit:系统完整性检查

2. 资源监控工具安装

apt install -y nmon iotop iftop
  • 监控重点:CPU 异常、内存泄漏、异常网络流量

💡 安全最佳实践总结

  • 数据备份:定期备份重要数据,避免勒索软件攻击导致数据丢失
  • 权限管控:实施最小权限原则,避免普通用户拥有root权限,禁用不必要的用户账户;
  • SSH加固:修改SSH默认端口(22),禁用密码登录,仅允许密钥登录,限制可登录的IP;
  • 审计日志:启用系统审计功能,记录关键操作(如权限变更、文件修改),便于追溯安全事件;
  • 软件管控:仅安装必要的软件包,避免安装来源不明的软件,及时卸载无用软件。
核心原则:预防胜于治疗!构建“系统加固+工具防护+实时监控+定期检查”的多层次安全体系,是保障Linux系统安全的关键。
阅读剩余