跳到正文
>_ITDITDWeb 安全平台

术语表

什么是后门——攻击者如何保留再次进入的路径,以及如何发现

后门是绕过正常认证、供攻击者再次进入的隐藏入口。本文从防御方的角度说明它是怎样被植入的、与正当的远程维护有何不同、以及如何检测和防范。不包含任何攻击方法。

发布于 2026-09-05 更新于 2026-10-06 3 分钟阅读

后门是绕过正常登录、供人再次进入的入口。本文说明它的原理,以及如何发现和防范(不涉及安装或使用方法)。

它从哪里来,为什么会一直存在

后门很少单独出现,它总是和首次入侵成对出现。攻击者先以某种方式获得据点,然后留下一条回来的路。麻烦之处就在这里:修复最初的漏洞,并不能结束对方的访问。

1. 首次入侵

利用漏洞或被盗凭据获得据点

2. 植入后门

留下一个绕过认证的入口

3. 反复回来

漏洞修复后仍然可以进入

4. 数据外传

与指令服务器通信,数据被传出

即使修复了最初的入口,只要隐藏的回路还开着就没有用,所以还必须清除攻击者留下的驻留手段。
后门的典型样子
目的
把一次入侵变成持续的访问
进入途径
未打补丁的漏洞(例如远程代码执行)/被盗的凭据或 SSH 密钥/被投毒的依赖包
如何留下来
绕过正常认证、避开日志,有时还被设计成重启后依然存在
之后会发生什么
与外部指令服务器(C2)通信,成为进一步行动和窃取数据的据点

后门并不只是服务器被攻破后才被加上去的东西。2024 年曝光的 xz-utils 后门是另一种形式:一个花了很长时间取得维护者信任的人,把后门植入了一个广泛使用的压缩库的分发源码中(CVE-2024-3094)。也就是说,即使你自己的服务器从未被攻破,后门也可能随着你引入的组件一起进来。无论哪种形式,结论都一样:修复了漏洞不等于安全了。要检查是否留下了据点。

实例:植入在发布版和更新中的后门

本站介绍过的案例,加上一个广为人知的公开案例。

案例植入位置得到的教训
XZ Utils(2024)压缩库的发布文件(CVE-2024-3094,CVSS 10.0)在大范围进入稳定版之前被发现,起因是一位工程师调查了一次原因不明的变慢
SolarWinds Orion(2020)监控软件的正式更新该公司提交给 SEC 的文件称,安装了受影响更新的客户不到 18,000 家。美国 CISA 发布紧急指令,要求联邦机构断开受影响的产品
MOVEit Transfer(2023)通过漏洞进入的 Web 服务器(Web Shell)零日漏洞导致 Web Shell 被放置,其后端数据库中的数据被整批取走

三个案例中,用户都是按正规流程在使用正规产品。即使你自己的服务器从未被攻破,后门也可能藏在你引入的组件或更新里进来。

后门与相近术语的区别

术语含义与后门的关系
后门绕过认证、供人再次进入的隐藏入口—
漏洞软件的缺陷,非预期的漏洞口常被用于首次入侵,之后再放置后门
木马伪装成有用软件的恶意软件可能在内部带有后门
RAT(远程访问木马)用于远程控制被感染设备的恶意软件设备上后门的典型形式
Web ShellWeb 服务器上的恶意操作脚本Web 服务器上后门的典型形式

与正当远程维护的区别

作为「远程操作机器的手段」,正当的远程维护和后门看起来很相似。区别在于是否受控。

正当的远程维护

管理员知道它的存在,它受认证和访问控制管理,并且会留在审计日志中。谁在什么时候做了什么都可以追溯。它是经过授权创建的。

后门

由攻击者偷偷植入,绕过认证,并被设计成不留下记录。是一个没人追踪、也没人控制的看不见的入口。

检测与防范

不是靠一项措施,而是三者结合:减少入口、让对方无法留下来、发现变化。

1

减少入口(阻止首次入侵)

不留下未打补丁的漏洞(及时更新依赖和框架),严格管理凭据和密钥、绝不重复使用,并把暴露面降到最小。没有首次入侵,就没有留下后门的机会。

2

让对方无法扎根(最小权限与隔离)

把权限范围收紧,把服务相互隔离,让被攻破时的损害停留在有限范围内。设计成一个组件被攻破也不会连带其他部分。

3

发现变化(完整性与通信监控)

留意不认识的可执行文件或脚本、意外的进程和 cron 条目,以及服务器向你不认识的目标发起的外发通信。EDR 等工具就是为了让异常变化显现出来。

4

审查依赖与供应链

审查你引入的东西,堵住被投毒的组件把后门带进来的路径。但要注意,签名证明的是来源,不是安全性——关于被投毒的版本通过正规发布流程发出的案例,见防范 npm 供应链攻击;机械化检查见 osv-scanner 入门。

如何检查自己的服务器(Linux 示例)

这些检查的目的是找出你不认识的东西。全部只读取,不会更改任何设置。

1

检查登录途径

查看每个用户的 ~/.ssh/authorized_keys 中是否有不认识的公钥,以及 /etc/passwd 中是否有陌生用户,或新增的 UID 为 0 的用户。

2

检查自动运行的内容

检查 crontab -l(每个用户)、/etc/cron.* 和 systemctl list-unit-files --state=enabled,看有没有不是你设置的定时任务或服务。

3

检查文件变更

用类似 find /var/www -type f -mtime -7 的命令找出 Web 根目录中最近更改的文件,看看有没有在你没部署时出现的脚本。用 debsums -c(Debian 系)或 rpm -Va(RHEL 系)检查软件包文件是否被篡改。

4

检查外发连接

用 ss -tnp 查看是否有进程从服务器连接未知的目标。定期连接同一个目标的通信,可能是 C2 通信。

如果发现了什么,不要只删除了事:断开网络、保留记录、重建,并更换所有凭据。

按「有人会进来」的前提来规划

后门危险的地方在于它很容易不被发现。正因如此,只依赖「把所有人挡在外面」是不现实的。能够做到「即使有人进来,也留不下据点,而且我们会很快发现」,才能防止事件拖成长期事件。

本站的观点:修复漏洞之后,要检查攻击者是否留下了驻留手段

事件响应中常见的疏漏是修复了漏洞就觉得结束了。我们的立场是:修复漏洞之后,必须继续检查是否还残留后门或来历不明的常驻进程。攻击者的目的从来不是来一次就走,而是留下来。只有切断这一点,响应才算完成。

出处(一手资料)

  • NIST NVD, "CVE-2024-3094" — nvd.nist.gov(XZ Utils 后门,CVSS 10.0)
  • SolarWinds Corporation, "Form 8-K"(2020 年 12 月 14 日)— sec.gov(受影响客户数)
  • CISA, "Emergency Directive 21-01" — cisa.gov
  • CISA 等机构,关于 MOVEit Transfer 漏洞 CVE-2023-34362 的联合通告(AA23-158A)— cisa.gov(Web Shell 的放置)
  • MITRE ATT&CK, "Server Software Component: Web Shell (T1505.003)" — attack.mitre.org(检测角度)

接下来阅读

FAQ

Q后门和正当的远程维护有什么区别?
A

从技术上看,两者可能很相似。决定性的区别在于:是否经过授权、是否有人知道它存在、是否留下记录。正当的远程访问是管理员知道的,并受认证、访问控制和审计日志的管理。后门则是偷偷植入的,绕过认证,并且被设计成不留痕迹。同样是远程操作机器的能力,区别在于是否可见、是否受控。

Q后门是怎样被植入的?
A

大多数是在首次入侵之后安装的,用作留下来的据点。入口通常是没有打补丁的漏洞(例如远程代码执行)、被盗的凭据或 SSH 密钥,或者构建时引入的被投毒依赖包。本站不讲解安装或操作方法。重要的是分层的目标:阻止首次入侵,并且在万一被入侵时让攻击者无法留下来。

Q怎样确认自己是否被植入了后门?
A

没有一项检查就能确认的办法。有效的做法是同时从几个角度观察:文件完整性监控(是否出现了不认识的可执行文件或脚本)、外发通信监控(服务器是否定期连接未知的目标)、检查意外的进程和 cron 条目,以及依赖审查。只靠其中一项很容易被绕过;组合起来,异常的变化就会显现出来。

Q后门(backdoor)这个词是什么意思?为什么叫「后门」?
A

意思是不走正门——即正常的登录(认证)——的入口。典型情况是攻击者入侵后植入的,但开发者留下的隐藏维护账号、产品里内置的固定密码,如果用户不知道也无法控制,也被称为后门。在密码学领域,这个词也指为了让政府等第三方能够解密而故意内置的机制。

QWeb Shell 是什么?和后门是一回事吗?
A

Web Shell 是放置在 Web 服务器上的恶意脚本,可以让人从浏览器等远程操作服务器。它是 Web 服务器上后门的典型形式。在 2023 年 MOVEit Transfer 的大规模泄露中,攻击者利用漏洞放置了 Web Shell,并从其后端的数据库窃取了数据。

Q发现后门后,删掉就可以了吗?
A

不够。后门可能不止一个,入侵时使用的凭据也可能已被盗。应把服务器从网络上断开,保留调查用的记录,从确认干净的状态重建,并更换所有凭据——密码、SSH 密钥、API 密钥。同时修复让攻击者进来的那个漏洞。