# 网站被黑客入侵后该怎么办

Source: https://support.kapsulehost.com/zh-cn/site-hacked-what-to-do

一个遭到入侵的网站需要按顺序完成三件事：控制住局面，查明对方是如何入侵的，然后干净地重建网站。不按这个顺序操作，正是网站在一天之内再次被感染的原因。

请从本页顶部开始逐步操作。本页不预设攻击是如何发生的。

> **Important:** 不要只是删除可疑文件然后照常运营。几乎每一次入侵都会留下不止一条重新进入的途径：第二个后门、一个恶意的管理员账户、一个计划任务，或一个被修改过的核心文件。只清除可见的症状就此止步，是网站在同一周内再次遭到攻击的最常见原因。

## 确实已被入侵的迹象

- 搜索结果中出现您从未写过的药品、赌博或外语页面。
- 访客被重定向到其他地方，通常只发生在移动设备上，或只在从搜索引擎进入时发生。
- 浏览器或搜索引擎对您的域名显示警告。
- 出现您无法解释其名称或修改日期的文件。
- 您的网站在发送垃圾邮件，或您的域名开始被邮件服务商拒收。
- 存在一个无人创建过的管理员账户。

并非以上每一种情况都意味着遭到了黑客入侵。如果网站只是速度慢或报错，更常见的原因是插件冲突或资源限制。如果您遇到的只是这些情况，请先参阅[网站无法加载](https://support.kapsulehost.com/zh-cn/website-not-loading)。

## 第 1 步：控制局面

在调查之前先让网站下线。网站多公开一分钟，您的声誉、搜索排名和访客就会多受一分损害。

在不删除任何内容的前提下，最快的做法是启用密码保护，它会在 Web 服务器层面为整个网站加上一道登录：

1. 进入**网站**并打开该网站。
2. 打开**密码保护**标签页。
3. 启用它并设置用户名和密码。

现在，网站会向每一位访客（包括攻击者）显示登录提示，而您仍可通过面板、SFTP 和 SSH 拥有完整的访问权限。

![KPanel 中网站的安全标签页，显示恶意软件扫描、IP 屏蔽列表和各项防护](https://support.kapsulehost.com/help/screenshots/site-hacked-what-to-do.27484098.webp)

如果您知道攻击者的 IP 地址，也请将其添加到网站**安全**标签页上的 **IP 屏蔽列表**中。

> **Warning:** 不要删除网站，也暂时不要还原任何内容。当前状态是您了解攻击如何发生的唯一证据。现在就为被入侵的网站创建一份备份，清楚地标注其已被感染，并将其单独存放。您可能会用到它。

## 第 2 步：查明对方是如何入侵的

现实中可能的答案只有几种，而每一种都会改变您下一步要做的事。

**检查面板审计日志。** 进入**设置**，然后**账户**，然后**查看日志**。如果有操作被记录为您团队所为，但来自您团队中无人使用的 IP 地址，就说明您的 KapsuleHost 账户本身已被攻破。这是一起严重得多的事件：请参阅[账户安全](https://support.kapsulehost.com/zh-cn/account-security)，并将该账户也视为已被入侵。网站的**活动**标签页涵盖通过面板所做的更改。

在网站的**日志**标签页上**检查您的错误日志和访问日志**。对某个插件路径的反复请求，或对某个上传端点的大量 POST 请求，通常就能指明入侵途径。请参阅[阅读错误日志](https://support.kapsulehost.com/zh-cn/error-logs)。

在网站的**安全**标签页上**运行恶意软件扫描**。如何解读扫描结果，请参阅[扫描并清除恶意软件](https://support.kapsulehost.com/zh-cn/malware-cleanup)。

**检查哪些内容已经过时。** 过时的插件、主题或核心版本是迄今为止最常见的入侵点。请参阅[WordPress 更新](https://support.kapsulehost.com/zh-cn/wordpress-updates)。

## 第 3 步：干净地重建

有两种方法可以得到一个干净的网站，但只有其中一种是可靠的。

### 可靠的方法：从入侵发生前创建的备份还原

根据日志大致判断入侵是从何时开始的，然后从远早于该日期创建的备份进行还原。

1. 进入网站的**备份**页面。
2. 选择一份感染发生之前的备份。
3. **先还原到预发布环境**。还原对话框特意将默认目标设为预发布环境。
4. 检查预发布副本：没有未知文件，没有未知的管理员用户，没有重定向。
5. 确认无误后，再还原到正式网站。还原到正式网站时需要输入域名进行确认。

详细说明（包括如何分别还原文件和数据库）请参阅[从备份还原](https://support.kapsulehost.com/zh-cn/restoring-from-backup)。

在使用托管数据库的 WordPress 和 WooCommerce 网站上，网站 **PITR** 标签页中的时间点恢复可以将数据库还原到某个具体的分钟，而不仅仅是上一次夜间备份。当您原本会因此丢失一整天的订单时，这一点就非常重要。

> **Warning:** 还原会回滚所有内容，包括该备份创建之后产生的合法内容和订单。在还原之前，请从当前网站导出您需要保留的任何数据，并注意从被入侵网站导出的内容本身也可能携带被注入的代码。导入之前请先仔细检查。

### 不可靠的方法：原地清理

如果您没有干净的备份，就只能手动清理网站。请如实评估这项工作需要做到多彻底。

- 隔离恶意软件扫描标记出的每一个文件。请参阅[扫描并清除恶意软件](https://support.kapsulehost.com/zh-cn/malware-cleanup)。
- 用从原始来源获取的全新副本替换 WordPress 核心、每一个插件和每一个主题，而不是原地更新。
- 删除您没有实际使用的任何插件或主题。未启用的代码只要能被访问到，仍然会被执行。
- 检查扫描程序未覆盖的文件：`.htaccess`、`wp-config.php`，以及上传文件夹中任何不是图片的文件。
- 在网站的**定时任务**标签页上检查计划任务，找出不是您创建的任务。
- 检查数据库中是否有被注入的内容，特别是选项和文章内容中。

## 第 4 步：更改所有凭据

假设网站能够访问到的一切都已被窃取。

- **WordPress 管理员密码。** 在网站的 **WordPress** 标签页中重置每一个密码，强制所有用户退出登录，使被盗的会话 Cookie 失效，并删除任何不是您创建的应用程序密码。请参阅[重置 WordPress 密码](https://support.kapsulehost.com/zh-cn/wordpress-reset-password)。
- **未知的管理员账户。** 删除它们，并将任何不需要管理员权限的账户降级。
- **数据库凭据**，在网站的**数据库**标签页上更改。
- **SFTP 账户**，在网站的 **SFTP** 标签页上处理。删除某个账户会终止其所有已打开的会话。
- **SSH 密钥**，在网站的 **SSH 访问**标签页上处理。移除任何您不认识的密钥。
- **您的 KapsuleHost 密码**，并撤销任何不是您创建的 API 密钥。请参阅[API 密钥与开发者访问](https://support.kapsulehost.com/zh-cn/developer-api-access)。

## 第 5 步：恢复上线并加固

一旦您确信网站已经干净，就关闭密码保护，让外界重新访问。

然后关上那扇曾经敞开的门：

- **保持所有内容为最新版本。** 请参阅[WordPress 更新](https://support.kapsulehost.com/zh-cn/wordpress-updates)和[WordPress 插件](https://support.kapsulehost.com/zh-cn/wordpress-plugins)。
- 在网站的**安全**标签页上**开启各项安全防护**：暴力破解防护、国家/地区筛选和 IP 屏蔽列表。
- 在您的 KapsuleHost 账户以及网站自己的管理员账户上**启用双重身份验证**。
- 为确认无问题的网站**创建一份新备份**。请参阅[创建备份](https://support.kapsulehost.com/zh-cn/taking-a-backup)。
- **考虑购买扩展备份保留期**，这样即使入侵在数周后才被发现，网站仍然可以恢复。

## 何时需要联系支持团队

如果符合以下任一情况，请[提交支持工单](https://support.kapsulehost.com/zh-cn/opening-a-support-ticket)：

- 入侵是通过您的 KapsuleHost 账户而非网站本身发生的。
- 您的网站正在发送垃圾邮件，或您的发信信誉已受到影响。
- 您没有可用的备份，并且无法将网站清理干净。
- 您的账户或网站已被暂停。请参阅[您的账户为何被暂停](https://support.kapsulehost.com/zh-cn/account-suspended)。
- 您认为另一位客户的网站正在攻击您的网站。请参阅[举报滥用行为](https://support.kapsulehost.com/zh-cn/reporting-abuse)。

请说明您发现了什么、您最初是何时注意到的，以及您已经更改了哪些内容。您能分享的自行调查结果越多，我们答复得就越快。

## 故障排除

**搜索引擎仍然对网站发出警告。** 在网站确实已经干净之后，请通过搜索引擎自己的网站管理员工具申请复查。这不在我们的控制范围之内。

**清理之后问题又出现了。** 您遗漏了某个后门，或者某个您没有更改的凭据仍然有效。请改为从干净的备份还原，并更改第 4 步中的所有凭据。

**扫描显示干净，但网站明显已被入侵。** 文件扫描能发现已知的恶意代码，但无法发现被注入的数据库记录。请与备份进行对比，并检查数据库。

**我无法登录进行修复。** 请使用 SFTP 或 SSH，而不是应用程序自己的登录方式，因为攻击者可能已经更改了它。请参阅 [SFTP 访问](https://support.kapsulehost.com/zh-cn/sftp-access)和[文件管理器](https://support.kapsulehost.com/zh-cn/file-manager)。
