服务器疑似中毒?教你快速排查和清除木马进程
最近有朋友在后台私信说,自己的服务器突然变得卡顿,而且总觉得后台有“鬼”。虽然数据已经找回来了,但那个看不见的木马还在系统里跑着,心里实在不踏实。
这种情况其实很常见,尤其是不小心安装了来路不明的软件后。今天我就把这套“火眼金睛”排查木马的实操流程整理出来,希望能帮大家止损。
第一步:看哪里?
使用 top 或 htop 命令查看 CPU 和内存占用,定位可疑进程。
当你怀疑机器中毒,但又不确定具体是哪个进程时,盲目乱杀是不可取的。我们可以先从CPU和内存的异常占用入手。
-
查看资源占用 在Linux下,直接用
top或htop命令是第一步。重点看那些CPU占用率高、或者名字很奇怪的进程。木马经常会伪装成类似systemd、nginx或者是一串随机字符的进程名。 -
网络连接是照妖镜 很多挖矿木马或者DDoS木马会主动向外连接。用
netstat -antp或者ss -antp查看当前的网络连接。重点关注那些 ESTABLISHED(已建立连接) 状态,且连接到陌生IP地址的端口。记下那个对应的进程号(PID)。
第二步:锁敌精准打击
通过 netstat 或 ss 命令查看 ESTABLISHED 状态的连接,发现木马外联行为。
要是你找到了那个可疑的PID,但文件路径不敢动,怎么办?
- 查文件路径:使用
ls -l /proc/PID/exe,这能直接告诉你这个进程运行的具体文件位置。 - 查看启动脚本:木马为了“长生不老”,通常会把自己写入启动项。重点检查
/etc/crontab、/etc/cron.*目录、以及/etc/rc.local文件。有时候它们还会藏在用户的定时任务里,记得用crontab -l检查一下当前用户的任务。
第三步:斩草除根
光杀进程没用,过一会它可能自己又启动了。
- 终止进程:先用
kill -9 PID强制结束进程。 - 删除文件:找到第一步里定位的恶意文件,直接
rm -rf删掉。 - 清理后门:这就到了最关键的一步——清洗启动项。把
crontab里不认识的定时任务删掉,把/etc/rc.local里的可疑启动命令去掉。 - 排查SSH账号:检查
/root/.ssh/authorized_keys,看看有没有被黑客塞进去的公钥,有的话赶紧删掉,顺便把系统密码改得复杂点。
第四步:亡羊补牢
处理完当下的问题,还没完。
- 全盘杀毒:如果有条件,可以用 ClamAV 这类工具跑个全盘扫描,确保没有残留的病毒文件。
- 打补丁:回想一下是不是因为哪个著名的漏洞(比如Redis未授权访问、Struts2等)进来的?赶紧把软件升级到最新版本,或者关掉不必要的服务端口。
最后提醒一句:如果数据已经恢复,最稳妥的办法其实是重装系统,然后把纯净的数据迁移过去。对于逆向水平一般的朋友来说,重装系统永远比在脏环境里排雷要快得多、也安全得多。
大家最近有没有遇到过类似的“中招”经历?欢迎在评论区分享你的排查过程!

评论已关闭