×
登录
我已经注册了,直接登录
注册
我还没有注册用户,现在注册
  • 请输入手机号码

  • 请输入密码

  • 点击刷新验证码

如何判断云服务器有木马

2026-08-26 13:51:56 来源:紫云

判断云服务器是否被植入木马,需要结合系统行为、网络流量、文件变化、进程分析等多维度排查。以下是详细的判断方法和操作步骤(适用于 Linux/Windows 云服务器):

一、初步异常信号(先观察现象)

如果服务器出现以下异常,需高度警惕:

  • 性能骤降:CPU/内存/带宽占用莫名飙高(如空闲时 CPU 持续 100%)。
  • 网络异常:对外发送大量未知流量(可能被用作肉鸡发起 DDoS)、陌生 IP 连接、端口被莫名开放。
  • 文件变化:网站目录出现陌生文件(如 .php.shell.jsp.webshell)、系统文件被篡改(如 /etc/passwd/bin/ls 大小/时间异常)。
  • 账号异常:新增未知用户(如 Linux 的 /etc/passwd 中出现陌生账号)、登录日志有异地 IP 登录(如 SSH 爆破成功记录)。
  • 服务异常:Web 服务返回乱码/恶意跳转、数据库被篡改(如 WordPress 网站被挂暗链)。

二、Linux 服务器排查步骤

1. 检查异常进程

  • 查看高占用进程

tophtop(需安装)实时查看进程,关注 CPU/内存占用高、无明确业务含义 的进程(如随机字符串命名的进程)。

top  # 按 P 按 CPU 排序,按 M 按内存排序
htop  # 更直观的进程管理工具(需安装:yum install htop / apt install htop)
  • 查看进程详情

对可疑进程(如 PID 1234),查看其路径、启动命令、父进程:

ps -ef | grep 1234  # 查看进程完整命令
ls -l /proc/1234/exe  # 查看进程对应的可执行文件路径(若路径不存在或为临时目录,需警惕)
cat /proc/1234/cmdline  # 查看进程启动参数
  • 检查隐藏进程

unhide 工具检测隐藏进程(木马常隐藏自身):

yum install unhide  # CentOS
apt install unhide  # Ubuntu
unhide check  # 扫描隐藏进程/端口

2. 检查异常网络连接

木马通常会连接 C&C 服务器(控制端),需排查陌生网络连接:

  • 查看当前网络连接
netstat -antlp  # 显示所有 TCP 连接(-a 所有,-n 数字显示 IP,-t TCP,-l 监听,-p 进程)
ss -antlp  # 比 netstat 更快的替代工具

关注:

  • 状态为 ESTABLISHED 的陌生 IP(尤其是境外 IP);
  • 监听的陌生端口(如非业务端口 4444、8888 等);
  • 进程 ID(PID)对应的可执行文件是否合法。
  • 追踪网络流量

iftop 实时查看带宽占用(需安装):

yum install iftop / apt install iftop
iftop -i eth0  # 监控 eth0 网卡流量,查看是否有异常外连

3. 检查异常文件

  • 查找近期修改的文件

木马文件通常是近期上传的,用 find 按时间筛选:

# 查找 24 小时内修改过的文件(重点关注 /tmp、/var/tmp、网站目录)
find / -mtime -1 -type f 2>/dev/null | grep -v "/proc\|/sys\|/dev"
# 查找近期创建的可执行文件
find / -ctime -3 -type f -perm /111 2>/dev/null  # 近 3 天创建的可执行文件
  • 检查系统目录完整性

对比系统文件是否被篡改(以 /bin/sbin 为例):

# 计算系统目录文件的 MD5 并与干净系统对比(或用 rpm -Va 检查包完整性)
rpm -Va  # CentOS 检查所有已安装包的完整性(输出中 "5" 表示 MD5 变化,"S" 表示大小变化)
debsums -a  # Ubuntu 检查包文件完整性(需安装:apt install debsums)
  • 检查 Web 目录(如 Nginx/Apache)

网站目录是 Webshell 高发区,重点排查:

# 查找 PHP/JSP/ASP 等脚本中的可疑代码(如 eval、base64_decode、assert)
grep -r "eval(" /var/www/html/ 2>/dev/null
grep -r "base64_decode" /var/www/html/ 2>/dev/null
# 查找隐藏文件(如 .shell.php)
find /var/www/html/ -name ".*" -type f 2>/dev/null

4. 检查账号与登录日志

  • 查看系统账号
cat /etc/passwd  # 检查是否有陌生账号(尤其是 UID 为 0 的 root 权限账号)
cat /etc/shadow  # 检查账号密码哈希(若有空密码或陌生哈希需警惕)
  • 查看登录日志
last  # 查看所有用户登录记录(包括 SSH、本地登录)
lastb  # 查看登录失败记录(若有大量陌生 IP 爆破,可能已被入侵)
grep "Accepted" /var/log/secure  # CentOS 查看 SSH 成功登录日志
grep "Accepted" /var/log/auth.log  # Ubuntu 查看 SSH 成功登录日志

5. 检查计划任务(Crontab)

木马常通过计划任务实现持久化:

crontab -l  # 查看当前用户的计划任务
cat /etc/crontab  # 查看系统级计划任务
ls /etc/cron.d/  # 查看额外计划任务目录

若发现陌生任务(如每分钟执行 /tmp/xxx.sh),需立即删除并排查文件。

6. 检查启动项

木马会修改启动项实现开机自启:

  • Systemd 服务(CentOS 7+/Ubuntu 16+):
systemctl list-unit-files --type=service | grep enabled  # 查看所有启用的服务
ls /etc/systemd/system/  # 检查自定义服务(尤其是陌生 .service 文件)
  • Init.d 脚本(CentOS 6/Ubuntu 14 及更早):
ls /etc/init.d/  # 查看启动脚本
chkconfig --list  # 查看服务启动状态
  • 开机自启文件
cat /etc/rc.local  # 检查 rc.local 是否被篡改
ls /etc/profile.d/  # 检查环境变量脚本(木马可能在此植入)

7. 用专业工具扫描

  • ClamAV(开源杀毒)
yum install clamav clamav-update  # CentOS 安装
apt install clamav clamav-daemon  # Ubuntu 安装
freshclam  # 更新病毒库
clamscan -r /  # 扫描根目录(耗时较长,可指定目录如 /var/www)
  • RKHunter(Rootkit 检测)
yum install rkhunter / apt install rkhunter
rkhunter --update  # 更新规则
rkhunter --check  # 全面检查(包括 Rootkit、后门、文件篡改)
  • Chkrootkit(Rootkit 检测)
yum install chkrootkit / apt install chkrootkit
chkrootkit  # 快速扫描 Rootkit

三、Windows 服务器排查步骤

1. 检查异常进程

  • 打开 任务管理器Ctrl+Shift+Esc),切换到「详细信息」标签:
  • 关注 CPU/内存占用高、无签名、路径陌生 的进程(如 C:\Users\Public\xxx.exe)。
  • 右键进程 →「打开文件所在位置」,若路径为临时目录(如 C:\Temp)或系统目录被篡改(如 C:\Windows\System32\svchost.exe 实际路径不对),需警惕。
  • Process Explorer(微软官方工具,比任务管理器更强大):

下载:Process Explorer
功能:查看进程父子关系、加载的 DLL、网络连接,可识别隐藏进程。

2. 检查异常网络连接

  • netstat 命令(需管理员权限):
netstat -ano  # 显示所有连接和进程 PID

结合任务管理器查看 PID 对应的进程,若有陌生 IP 连接(尤其是境外 IP),需进一步排查。

  • Wireshark 抓包分析(适合深度排查):

下载:Wireshark
过滤异常流量(如 tcp.port == 4444 或陌生 IP)。

3. 检查异常文件

  • 查找近期修改的文件

打开「文件资源管理器」→ 搜索栏输入 *,筛选「修改日期」为近 1-3 天的文件,重点关注:
C:\Windows\TempC:\Users\PublicC:\inetpub\wwwroot(Web 目录)。

  • 检查系统文件完整性

sfc /scannow 修复并验证系统文件:

sfc /scannow  # 扫描并修复损坏的系统文件
  • 检查 Web 目录

用 Notepad++ 或 VS Code 打开网站文件,搜索 evalbase64_decodeRequest.QueryString 等可疑代码(Webshell 常用)。

4. 检查账号与登录日志

  • 查看本地用户

右键「此电脑」→「管理」→「本地用户和组」→「用户」,检查是否有陌生账号(尤其是管理员组 Administrators 中的未知用户)。

  • 查看登录日志

打开「事件查看器」(eventvwr.msc)→「Windows 日志」→「安全」:

  • 筛选事件 ID 4624(成功登录)、4625(登录失败),查看是否有异地 IP 或陌生账号登录。

5. 检查计划任务

  • 打开「任务计划程序」(taskschd.msc),查看「任务计划程序库」:

检查是否有陌生任务(如触发器为「开机时」、操作为执行陌生 .exe.bat 文件)。

6. 检查启动项

  • msconfig 命令:
msconfig  # 切换到「启动」标签(Windows 10/11 需通过任务管理器查看启动项)
  • Autoruns(微软官方工具,最全面的启动项检查):

下载:Autoruns
功能:检查所有启动项(包括服务、驱动、计划任务、浏览器插件等),可识别隐藏的木马启动项。

7. 用专业工具扫描

  • Windows Defender

打开「Windows 安全中心」→「病毒和威胁防护」→「扫描选项」→ 选择「完全扫描」。

  • Malwarebytes(第三方反恶意软件):

下载:Malwarebytes
适合查杀木马、勒索软件、广告软件等。

  • 火绒安全

国产轻量安全软件,对木马、病毒查杀效果较好,适合服务器环境。

四、确认木马后的处理步骤

  1. 隔离服务器:断开网络连接(避免木马继续外连或扩散),但保留现场(不要立即重启,防止木马自毁或丢失证据)。
  2. 备份关键数据:将业务数据(如数据库、网站文件)备份到本地(需先确认备份文件无木马)。
  3. 清除木马
  • 终止可疑进程(kill -9 PID 或任务管理器结束进程);
  • 删除木马文件(若文件被锁定,可进入安全模式删除);
  • 清理计划任务、启动项、注册表(Windows)中的木马残留。
  1. 修复漏洞
  • 更新系统补丁(yum update / apt upgrade 或 Windows Update);
  • 修复 Web 漏洞(如 SQL 注入、文件上传漏洞,避免再次被入侵);
  • 修改所有账号密码(尤其是 SSH/RDP 密码、数据库密码)。
  1. 重装系统(终极方案)

若木马难以清除(如 Rootkit 级木马),建议备份数据后重装系统,再恢复业务(最彻底的方式)。

五、预防木马入侵的建议

  1. 最小权限原则:避免使用 root/Administrator 直接运行业务,限制账号权限。
  2. 关闭不必要端口:用防火墙(如 iptables、云安全组)仅开放业务所需端口(如 80、443、22),禁止 0.0.0.0/0 访问敏感端口。
  3. 定期更新补丁:及时修复系统、Web 服务、CMS(如 WordPress、Discuz)的漏洞。
  4. 启用日志审计:配置 rsyslog 或 ELK 收集日志,监控异常登录、文件修改等行为。
  5. 使用云安全产品:开启云厂商的「主机安全」「DDoS 防护」「Web 应用防火墙(WAF)」等服务。

通过以上步骤,可全面排查云服务器是否被植入木马。若对排查结果不确定,建议联系云厂商技术支持或专业安全团队协助。

开始使用我们的产品

销售客服
售后技术支持