服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-08-26 更新于 2026-08-26 简米科技 3,118 字 7 分钟阅读

如何核查服务器被植入恶意脚本,服务器被植入恶意脚本如何检测

导读核查服务器是否被植入恶意脚本,最直接的办法是同时检查文件系统、进程、网络连接和日志四个维度的异常,而不是只依赖某一种安全软件,怎么快速判断服务器是否被植入恶意脚本服务器被植入恶意脚本后,通常不会自己跳出来承认,你需要主动去看一些平时不关注的地方,下面这几个动作,可以在10分钟内完成第一轮筛查,检查最近被修改过的……

核查服务器是否被植入恶意脚本,最直接的办法是同时检查文件系统、进程、网络连接和日志四个维度的异常,而不是只依赖某一种安全软件。

怎么快速判断服务器是否被植入恶意脚本

服务器被植入恶意脚本后,通常不会自己跳出来承认,你需要主动去看一些平时不关注的地方,下面这几个动作,可以在10分钟内完成第一轮筛查。

检查最近被修改过的文件

恶意脚本要运行,必须先落盘,在Linux服务器上执行:

find / -type f -mtime -3 2>/dev/null | grep -v -E '(/proc|/sys|/dev)'

这条命令找出三天内被修改的所有文件,重点关注:

  • /tmp/var/tmp/dev/shm 目录下是否有可执行文件
  • /etc/cron.d//var/spool/cron/ 里是否有新生成的计划任务
  • 网站根目录下是否有陌生的.php.jsp.aspx文件,尤其是名字像是随机字符串的那种

如果网站用的是开源CMS,可以用原始安装包里的文件哈希逐一比对,例如WordPress程序,下载同版本官方包,执行find /var/www -type f -exec md5sum {} ;后与官方校验值对比,行业内普遍认为,哈希比对是识别文件被篡改的最可靠手段之一

看进程和网络连接

执行ps -ef,先看有没有CPU占用率异常高的进程,很多挖矿脚本会用尽CPU,但也会伪装成系统服务,接着用netstat -antp查看外联地址,对于主动连接到海外IP(尤其是不常见端口如4444、6667、8080)的进程要格外留意。

如果进程名很怪,比如一串乱码,或者路径在/tmp下,基本可以判定有问题,可以用lsof -p 进程号查看进程打开的文件,确认它调用的是哪个脚本。

服务器被植入恶意脚本后常见的表现是什么

恶意脚本的目标不同,表现也不同,挖矿脚本会让服务器变卡,数据窃取脚本会让网络流量异常,而勒索脚本往往让文件加密无法访问,以下特征出现越多,中招概率越大。

如何核查服务器被植入恶意脚本,服务器被植入恶意脚本如何检测

表现 说明
CPU持续满载 无业务高峰时段CPU也跑满,多半有挖矿进程
带宽耗尽 外发流量远大于入站流量,可能在向外传输数据
文件被篡改 网页被挂马、源文件被加入恶意跳转代码
账户异常 出现陌生用户,或者root密码被改
日志缺失 某个时间段的日志被清空,说明攻击者有清理行为

这些表现你可以在云控制台的监控页面直观看到,如果尚未使用云监控,也可以手动运行topifstat观察几分钟。

Linux服务器恶意脚本排查命令有哪些

命令行是核查恶意脚本痕迹的主战场,以下命令组合覆盖了绝大多数场景。

文件层面的排查命令

  • find / -newer /etc/passwd -type f 找比系统密码文件更近修改的文件
  • stat 查看单个文件的创建、修改、访问时间,恶意脚本通常修改时间和访问时间挨得很近
  • cat /etc/crontabcrontab -l 检查计划任务
  • ls -la /etc/init.d/ /etc/rc.d/ 检查开机自启动项
  • grep -r "eval|base64_decode|gzinflate" /var/www/html/ 在网页代码中搜索常见危险函数

进程与网络排查命令

  • top -c 按CPU排序显示完整命令行
  • ps auxf 以树状格式显示进程,便于发现被劫持的父进程
  • netstat -antpo 显示进程PID以及所有TCP/UDP连接
  • ss -tunap 是netstat的现代替代品,速度更快
  • lsof +L1 显示已被删除但还在运行的进程,攻击者常用unlink隐藏脚本
  • 如何核查服务器被植入恶意脚本,服务器被植入恶意脚本如何检测

执行时记得使用root权限,否则很多信息看不到,如果你管理的服务器数量多,建议把上述命令写成脚本一次性执行,脚本内不保存密码,只输出异常项。

如何区分正常脚本与恶意脚本

发现一个可疑脚本后,别急着删,先看清楚它是干什么的,再决定处理方式。

从调用关系判断

使用strace -f -e trace=file,process,network 命令跟踪脚本运行时行为,正常系统管理脚本会访问配置文件和日志,极少主动发起外部连接,恶意脚本则常有以下行为:

  • 尝试连接远程IP
  • 创建反弹shell
  • 修改hosts文件指向钓鱼域名
  • 侦察内网其他主机

判断

打开脚本文件,重点看有没有以下特征:

  • 整行代码被base64_encode包裹,结尾带eval
  • 使用chr()hex等函数拼接字符串,人为增加混淆
  • 包含定时器逻辑,比如sleep加循环,用于控制执行频率
  • 存在你从未见过的小写字母域名,或者IP地址裸写

如果代码行数极少但对系统影响巨大,大概率是恶意脚本,相比之下,正常脚本往往有完整的注释和错误处理。

清理恶意脚本后如何防止再次被植入

查出痕迹只是第一步,把漏洞补上才是关键,很多服务器被反复植入脚本,就是因为只删了文件没修门。

清理后的紧急操作清单

  1. 立刻修改所有账户密码,包括root、数据库、FTP、API密钥
  2. 删除新增的SSH公钥,检查~/.ssh/authorized_keys
  3. 审查所有计划任务并删除异常项
  4. 更新Web中间件和CMS到最新版本
  5. 启用云平台的安全组,只放行业务必须的端口

这五步做完,再考虑业务恢复,如果服务器上有重要数据,建议先做快照再操作,避免误删。

预防植入的基线设置

行业共识认为,定期检查和限制执行权限是有效对抗恶意脚本的底线策略

如何核查服务器被植入恶意脚本,服务器被植入恶意脚本如何检测

,具体做法:

  • 为网站目录设置chattr +i不可变属性,防止文件被篡改(注意配置目录要排除)
  • 使用apparmorSELinux限制进程可访问的路径
  • 部署免费的文件完整性监控工具,如AIDE,每月生成一次哈希库
  • 必要时请专业团队做一次安全评估,服务器安全检测价格按次计算通常在千元级别,但比被勒索后恢复成本低得多

如果你在本地机房维护服务器,也可以参照上述方法,不过还要额外关注物理接入控制,防止有人直接插U盘植入后门。

服务器恶意脚本核查常见问题

如何判断恶意脚本是否已经删除干净?

删除脚本后,把find -mtime的检查范围扩大到7天,同时连续观察24小时网络连接,重点确认没有新的外联进程发起,并且计划任务里不再出现之前删除的条目,若在一次完整重启后依然正常,基本可以放心。

网站被植入恶意脚本,日志文件在哪里看?

对Nginx而言,访问日志在/var/log/nginx/access.log,错误日志在/var/log/nginx/error.log;Apache日志在/var/log/apache2/目录下,查看最近几小时日志中带有evalbase64或者指向可疑IP的请求,就能定位攻击入口。

服务器安全检测多久做一次比较合适?

未出现过异常的系统,建议每月做一次文件哈希比对和日志审计,如果经历过入侵,则前两个月每周查一次,之后恢复正常月度巡检,业务量大的服务器可以借助云监控自动告警,但人工检查仍是不可替代的环节。

核查恶意脚本不是一次性的活,它更像是给服务器做定期体检,记住最核心的思路:文件和进程没有可疑变化,网络连接没有异常目的地,日志没有无故缺失,系统就是相对干净的。 把这套检查流程固化下来,比你安装再多的安全软件都管用。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱