1. 确认感染迹象
CPU 占用异常高(top 或 htop 显示 xmrig 进程)。
可疑进程:ps aux | grep -i xmrig。
异常网络连接:netstat -antp | grep -i xmrig。
定时任务或服务:crontab -l 或 systemctl list-units --type=service。
2. 立即终止挖矿进程
# 查找并杀死 xmrig 相关进程
ps aux | grep -i xmrig | awk '{print $2}' | xargs kill -9
# 检查是否残留
pgrep -f xmrig && echo "仍有残留进程!需进一步排查"
3. 删除恶意文件
# 定位 xmrig 文件(常见路径)
find / -name "*xmrig*" -exec rm -rf {} \; 2>/dev/null
find / -name "*monero*" -exec rm -rf {} \; 2>/dev/null
# 检查 /tmp、/var/tmp、/dev/shm 等临时目录
rm -rf /tmp/{kdevtmpfsi,kthreaddk} /var/tmp/{.*guard,.cache} 2>/dev/null
4. 清理定时任务和启动项
# 检查并清理 crontab
crontab -l | grep -v "xmrig" | crontab -
rm -rf /var/spool/cron/* /etc/cron.d/* /etc/cron.hourly/* 2>/dev/null
# 检查 systemd 服务
systemctl list-units --type=service | grep -i xmrig
systemctl stop xmrig 2>/dev/null
systemctl disable xmrig 2>/dev/null
rm -f /etc/systemd/system/xmrig.service 2>/dev/null
5. 检查用户和SSH密钥
# 查看异常用户
cat /etc/passwd | grep -Ev "nologin|false|sync|halt"
# 检查 authorized_keys
find /home -name authorized_keys -exec grep -v "your_ssh_key" {} \; -exec echo {} \;
6. 修复漏洞入口
(1)更新系统和软件
yum update -y || apt update && apt upgrade -y
(2)检查开放端口
netstat -tulnp
# 关闭非必要端口
firewall-cmd --remove-port=3333/tcp --permanent # 示例:xmrig 默认端口
firewall-cmd --reload
(3)禁用弱密码和SSH暴力破解
# 禁用 root 远程登录
sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
systemctl restart sshd
# 安装 fail2ban
yum install -y fail2ban || apt install -y fail2ban
systemctl enable --now fail2ban
7. 深度检测工具
(1)使用 rkhunter 查杀
yum install -y rkhunter || apt install -y rkhunter
rkhunter --check --sk
(2)使用 ClamAV 扫描
yum install -y clamav || apt install -y clamav
freshclam # 更新病毒库
clamscan -r --remove / # 全盘扫描并删除感染文件
8. 事后加固
修改所有密码(包括 SSH、数据库、管理后台)。
启用防火墙(仅开放必要端口)。
定期备份数据,并验证备份完整性。
监控系统日志:journalctl -f 或 /var/log/auth.log。
9. 高级排查(可选)
分析进程树:pstree -p 查找父进程。
检查内核模块:lsmod | grep -i evil。
内存分析:使用 Volatility(需专业经验)。
输出cpu占用的排行,可以显示出隐藏的进程:sysdig -c topprocs_cpu
搜索隐藏进程:unhide proc
systemctl status 病毒进程pid
查看是否存在异常IP:netstat -natp
查看隐藏进程:ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head -n4
find / -name "*.sh"
# cat /etc/ld.so.preload # 这个目录默认内容是空的
# ls -al /etc/rc1.d/
# 查看当前用户的cron任务
crontab -l
# 检查cron服务的状态
systemctl status cron
# 或者老系统执行
service cron status
# 查看 cron 日志
cat /var/log/cron
全局搜索crond配置文件
find / -name cron* -type d
# top
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
46362 root 30 10 2581196 13428 0 R 792.7 0.0 32:46.26 xmrig
# ls -l /proc/46362/exe
lrwxrwxrwx 1 root root 0 2025-06-12_14:51:57 /proc/46362/exe -> /root/c3pool/xmrig
# find / -name "*xmrig*"
/root/c3pool/xmrig
/root/c3pool/xmrig.log
/var/lib/systemd/coredump/core.xmrig.0.40f0f7e0dfd64096b2e08f25ed376cbd.51299.1749712051000000.zst
/var/lib/systemd/coredump/core.xmrig.0.40f0f7e0dfd64096b2e08f25ed376cbd.58854.1749713064000000.zst
/var/lib/systemd/coredump/core.xmrig.0.40f0f7e0dfd64096b2e08f25ed376cbd.4158424.1749700280000000.zst
/var/lib/systemd/coredump/core.xmrig.0.40f0f7e0dfd64096b2e08f25ed376cbd.4181114.1749703344000000.zst
/var/lib/systemd/coredump/core.xmrig.0.40f0f7e0dfd64096b2e08f25ed376cbd.46362.1749711399000000.zst
# find / -name "*c3pool*"
/etc/systemd/system/c3pool_miner.service
/root/c3pool
# systemctl list-unit-files --type=service | grep enabled
# systemctl disable c3pool_miner.service
# systemctl stop c3pool_miner.service
# killall xmrig
find /etc/systemd/system/ /lib/systemd/system/ -name 'c3pool_miner.service'
# rm -rf /etc/systemd/system/c3pool_miner.service
解决大部分病毒自动下载重新启动:
killall xmrig
echo > /root/c3pool/xmrig
chattr +i /root/c3pool/xmrig