服务器中木马?这样查杀才彻底!


上一篇跟大家唠过,出方向防火墙要是没管好,服务器很容易被黑客盯上——植入木马后挖矿、当肉鸡、偷数据,更缺德的是,有些黑客还会删木马源文件、藏进程、清日志,让咱们运维查起来一头雾水。其实一旦发现服务器不对劲,瞎操作只会越搞越糟,掌握一套靠谱的查杀流程才是王道。今天就结合我平时的运维经验,整理一套“从应急到根治”的木马查杀攻略,帮大家快速止损,还能杜绝复发。

查杀前先搞这4件事:先控风险,再找问题

要是发现服务器有异常——比如CPU飙满、内存不够用、流量莫名暴涨,或者出现不认识的进程,千万别急着上手查杀。第一步得先拦住木马的“去路”,别让它继续搞破坏或扩散,具体可以做这几件事:

  • 临时收紧网络:赶紧改出方向防火墙规则,只留SSH这些必须用的端口,其他陌生IP的出站连接全禁了,先断了木马和黑客控制端的联系;要是这服务器跑的不是核心业务,直接临时断网更省事,等查杀完再恢复。
  • 隔离受影响服务器:要是服务器在内网里,得赶紧把它从内网隔离开,别让木马跑到其他服务器上,不然搞个“内网漫游”,整个内网都得遭殃。
  • 备份关键数据:别瞎动木马相关的文件,先把核心业务数据、各种日志(系统日志、应用日志、安全日志)备份好,既怕查杀时误删数据,也能留着后续查黑客是怎么进来的。
  • 换种方式登录:尽量用本地控制台或者带外管理登录,别用SSH远程登了,万一木马偷了账号密码,黑客又能趁机进来一次。

划重点:这时候千万别重启服务器!很多木马重启后会触发权限维持,还可能删更多痕迹,到时候查都没法查。

核心查杀5步走:一步步来,不留死角

前期准备做好后,就可以正式查杀了。核心思路很简单:先找出木马留下的痕迹,再清理干净,最后验证没问题。具体分5步走:

  1. 找痕迹:先抓“看得见”的异常

木马只要运行,肯定会留下痕迹。先用基础命令排查,适合咱们大多数运维日常场景:

(1)查进程:揪出陌生“潜伏者”

用 top 命令看哪些进程占CPU、内存多,重点盯那些名字含糊不清的——比如“sysupdate”“serviced”“updatexxx”这种,看着像系统服务,其实可能是木马;还有那些路径不对、不该用root权限却用了root的进程。找到可疑进程后,用 ps -ef | grep 进程ID 查它的完整路径和父进程,就能判断是不是恶意的。

要是遇到top里能看到,但ps命令查不到的进程,那大概率是木马勾了系统调用藏起来了。可以用 ps aux | grep -v grep | grep -v ps 试试,或者用chkrootkit、rkhunter这些工具检测,效果更准。

(2)查端口:看有没有异常连接

Linux用 netstat -tulnp,Windows用 netstat -ano,查服务器都连了哪些IP、用了哪些端口。重点看那些连陌生IP、用非业务端口的连接,记下来对应的进程ID,再回头查这个进程是不是有问题。

(3)查文件:找可疑文件和修改痕迹

先查近期改过的文件:用 find / -mtime -7 -type f 找7天内修改的文件,重点看 /tmp、/var/tmp、/root、/home 这些临时目录,还有 /bin、/sbin、/etc 这些系统目录,很容易藏木马;

再查隐藏文件:用 ls -la 看目录里的隐藏文件(以“.”开头的),不少木马会伪装成隐藏文件躲起来;

还可以校验系统文件:Linux用 rpm -V 系统文件名(比如 rpm -V bash),Windows用 sfc /scannow,要是提示文件被修改了,大概率是被木马动过手脚。

(4)查日志:追黑客的“作案痕迹”

查系统日志:Linux重点看 /var/log/secure(登录日志)和 /var/log/messages(系统日志),找有没有陌生IP登录、有没有异常命令执行;Windows就看“事件查看器”里的“安全日志”和“系统日志”;

查应用日志:比如Web应用的访问日志,找有没有可疑请求——比如带恶意代码的SQL注入、命令执行语句,这样能定位到黑客是从哪进来的。

  1. 杀进程:先断木马的“活路”

找到可疑进程后,直接用 kill -9 进程ID 强制杀掉(Windows在任务管理器里结束就行)。要是杀完立马又冒出来,说明有进程守护,得再查定时任务或守护进程:

  • Linux:用 crontab -l 查当前用户的定时任务,cat /etc/crontab 查系统定时任务,再看看 /etc/cron.d、/etc/cron.hourly 这些目录,有陌生定时任务直接删;
  • Windows:打开“任务计划程序”,删异常的定时任务;再去“服务”里找,那些名字含糊、描述奇怪的服务,先停止再禁用。
  1. 删文件:彻底清掉木马本体

进程杀完后,根据进程路径或之前查到的可疑文件,找到木马源文件。Linux用 rm -f 恶意文件路径,Windows直接删就行。这里有两个小提醒:

  • 要是删不掉,提示“权限不足”,可能是文件加了 immutable属性,用 chattr -i 文件名 取消属性再删;
  • 删完别忘再用 find 命令查一遍,别漏了木马的副本文件。
  1. 清后门:别让木马“死灰复燃”

黑客植入木马后,肯定会留后门,就算清了木马,后续还可能进来。这一步重点查权限维持手段:

  • 查账号:Linux看 /etc/passwd、/etc/shadow,找陌生账号或UID为0的非root账号;Windows去“计算机管理-本地用户和组”,删陌生账号,赶紧改管理员密码;
  • 查SSH密钥:看 /root/.ssh/authorized_keys 和 /home/用户/.ssh/authorized_keys,有陌生的公钥直接删,别让黑客用密钥登录;
  • 查启动项:Linux看 /etc/rc.local、/etc/init.d 里的启动脚本;Windows按“运行-msconfig”找启动项,异常的直接删。
  1. 验效果:确认没残留

清理完别直接不管了,得验证一下,确保木马真的清干净了:

  • 再查一遍进程、端口、定时任务、启动项,确认没异常;
  • 盯着CPU、内存、流量1-2小时,要是恢复正常了,就说明没问题;
  • 用第三方工具再扫一遍:Linux用chkrootkit、rkhunter,Windows用火绒、360企业版,双重验证更放心。

进阶技巧:对付“查无可查”的隐蔽木马

要是遇到那种删源文件、日志丢/dev/null、伪装系统服务、还降级运行的隐蔽木马,基础查杀可能没用。分享几个我常用的进阶方法:

  • 系统镜像对比:找个同版本的干净系统,把受感染服务器的系统文件跟干净的对比,就能找出被改或新增的恶意文件;
  • 借助内核级工具排查:Linux可使用bpftrace、eBPF等工具,监控系统调用,捕捉恶意进程的行为;Windows可使用Process Monitor、Autoruns等工具,排查深层隐藏的进程和启动项;
  • 离线查杀:将服务器硬盘挂载到干净的主机上,进行离线扫描查杀,避免木马在运行状态下隐藏痕迹;
  • 重装系统(终极方案):若多次查杀仍有残留,或服务器数据可备份,最彻底的方式是格式化硬盘、重装系统,之后恢复数据并配置严格的安全策略。当然,如果你服务器运行的是非重要应用,最省事的方式还是重装系统,重新拉起数据。

查杀后必做:补全漏洞,防止二次入侵

木马查杀不是终点,更重要的是找到入侵原因,补全安全漏洞,避免再次中招:

  • 修复系统/应用漏洞:及时更新系统补丁,修复应用存在的漏洞(如前文提到的CVE-2025-55182漏洞),避免黑客再次利用漏洞入侵;
  • 配置严格的防火墙规则:尤其是出方向防火墙,遵循“最小权限”原则,仅放行必要流量,拒绝所有未知出方向连接;
  • 加强账号权限管理:删除无用账号,给账号设置复杂密码,开启SSH密钥登录并禁用密码登录,限制sudo权限;
  • 部署安全监控工具:安装入侵检测系统(IDS)、流量监控工具,配置告警机制,实时监控服务器异常行为。

最后提醒:服务器安全的核心是“预防大于查杀”,日常做好漏洞修复、权限管理、防火墙配置,才能从根源上减少中马风险。若不幸中马,保持冷静,按照“断风险-查痕迹-清恶意-防复发”的流程操作,才能最大程度降低损失。

声明:Jack≠Hijack|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 服务器中木马?这样查杀才彻底!


先干再说,弄毁了推倒重做!