Linux 病毒排查指南 🔍
- 本指南是一份全面且实用的Linux病毒排查实战手册,从最初的症状识别到最终的清除修复,提供了完整的排查流程和具体的操作命令。无论你是遭遇了挖矿病毒、勒索软件,还是其他类型的恶意程序,都能通过本指南提供的系统化方法快速定位问题并有效解决。
导航目录 📚
一、⚡ 查看引起CPU飙高的进程
📊 使用 top 命令
特点:按 P 键按 CPU 使用率排序,实时监控系统资源占用情况 ✨
🖥️ 使用 htop(更直观)
1
2
3
|
# 如果未安装,先安装
apt install htop
htop
|
优势:彩色界面,更直观的进程树展示,支持鼠标操作 🎯
🔍 使用 ps 命令查看进程详情
1
2
3
4
5
|
# 按CPU使用率排序
ps aux --sort=-%cpu | head -10
# 按内存使用率排序
ps aux --sort=-%mem | head -10
|
功能:精确获取资源占用最高的前10个进程 📈
二、👻 检查隐藏进程
🛠️ 安装和使用 unhide 工具
1
2
3
4
5
6
7
8
|
# 安装 unhide
apt install -y unhide
# 快速扫描隐藏进程
unhide quick
# 全面扫描(更耗时)
unhide brute
|
特点:专业检测隐藏进程和rootkit工具 🔧
🔎 其他检测隐藏进程的方法
1
2
3
4
|
# 检查进程与文件系统的差异
ps -ef | awk '{print $2}' | sort -n > /tmp/ps_pids
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目录发现隐藏进程 🕵️
三、📁 定位病毒文件
🎯 通过进程ID定位可执行文件
1
2
3
4
5
|
# 查看进程对应的可执行文件路径
ll /proc/<PID>/exe
# 示例
ll /proc/6113/exe
|
📝 查看进程详细信息
1
2
3
4
5
|
# 查看特定进程的详细信息
ps -ef | grep <PID>
# 示例输出
# root 4136 1 98 13:50 ? 00:00:23 /bin/bash /var/tmp/.sys/cpu.sh
|
📂 查看进程打开的文件
1
2
3
4
5
|
# 查看进程打开的所有文件
lsof -p <PID>
# 查看进程的工作目录
ll /proc/<PID>/cwd
|
🔧 检查进程环境变量
1
|
cat /proc/<PID>/environ | tr '\0' '\n'
|
功能:查看进程运行时的环境配置,发现异常变量 ⚙️
四、⏰ 检查系统计划任务
👤 查看当前用户的计划任务
1
2
3
4
5
|
# 查看当前用户计划任务
crontab -l
# 查看root用户计划任务(需要root权限)
crontab -u root -l
|
📁 检查系统计划任务目录
1
2
3
4
5
6
7
8
9
|
# 查看系统计划任务目录
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/
# 查看 /etc/crontab 文件
cat /etc/crontab
|
🔍 检查其他常见的持久化位置
1
2
3
4
5
6
7
8
9
10
|
# 检查系统服务
systemctl list-units --type=service
# 检查开机启动项
ls -la /etc/rc.local
ls -la /etc/init.d/
# 检查profile文件
cat /etc/profile
cat ~/.bashrc
|
重要性:病毒常在这些位置设置持久化机制 🔄
五、🌐 网络连接检查
🔍 查看异常网络连接
1
2
3
4
5
6
7
8
|
# 查看所有网络连接
netstat -tunlp
# 使用ss命令(更现代)
ss -tunlp
# 查看可疑的对外连接
netstat -anp | grep ESTABLISHED
|
📡 检查进程网络连接
1
2
3
4
5
|
# 查看特定进程的网络连接
lsof -i -P -n | grep <PID>
# 或者使用
netstat -tunlp | grep <PID>
|
功能:发现异常外连行为,识别C&C服务器通信 🌍
六、📊 系统日志分析
📝 检查系统日志
1
2
3
4
5
6
7
8
9
|
# 查看系统日志
tail -f /var/log/syslog
tail -f /var/log/messages
# 查看认证日志
tail -f /var/log/auth.log
# 使用journalctl(systemd系统)
journalctl -f
|
特点:实时监控系统活动,发现异常登录和执行记录 🔎
七、📂 文件系统检查
🔎 查找可疑文件
1
2
3
4
5
6
7
8
9
|
# 查找近期修改的文件
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
2
3
4
5
|
# 终止进程
kill -9 <PID>
# 强制终止进程及其子进程
pkill -9 -f "process_name"
|
🗑️ 删除恶意文件
1
2
3
4
5
6
|
# 删除病毒文件
rm -f /path/to/malicious/file
# 如果是只读文件,先取消只读属性
chattr -i /path/to/malicious/file
rm -f /path/to/malicious/file
|
📋 清理计划任务
1
2
3
4
5
|
# 编辑计划任务并删除恶意条目
crontab -e
# 或者直接删除所有计划任务
crontab -r
|
九、🛡️ 预防措施
🔒 系统安全加固
1
2
3
4
5
6
7
8
9
|
# 保持系统更新
apt update && apt upgrade
# 安装安全工具
apt install -y fail2ban rkhunter chkrootkit
# 定期扫描
rkhunter --check
chkrootkit
|
推荐工具:
- fail2ban 🚫 - 防止暴力破解
- rkhunter 🔍 - Rootkit检测
- chkrootkit 🛡️ - 系统完整性检查
📈 监控系统资源
1
2
3
4
|
# 安装监控工具
apt install -y nmon iotop iftop
# 设置资源监控告警
|
监控重点:CPU异常、内存泄漏、异常网络流量 📊
💡 总结
通过以上系统的排查步骤,可以有效地发现和处理Linux系统中的病毒和恶意程序 ✨。建议定期进行系统安全检查,并保持系统和安全工具的更新,构建多层次的安全防护体系 🛡️。
最佳实践:
- 定期备份重要数据 💾
- 实施最小权限原则 🔐
- 启用系统审计功能 📝
- 建立安全监控告警 🚨
记住:预防胜于治疗!建立完善的安全防护体系是避免病毒入侵的最佳策略 🎯。