如何识别并彻底清理 WordPress 高级后门 Webshell:完整技术排查指南

近期经常碰到新的wordpress高级黑,不是简单的上传恶意文件,而是伪装插件,加上SQL注入,安全插件都无法识别。

被黑的症状:如下,这个外贸独立站用户反馈,1. 网站加载后,提示人类验证,这是一个伪装成cloudflare的验证,诱导用户下载不明程序,让你的外贸网站变成黑客帮凶。

2.管理员登陆后台后,前台就不会再出现了。

如何识别并彻底清理 WordPress 高级后门 Webshell

如果你的 WordPress 网站出现性能骤降、未知管理员账户、或服务器资源异常占用,极有可能已经植入了伪装成「缓存优化插件」的高级后门木马

一、什么是 WordPress 高级后门(Advanced Webshell)

与传统一句话木马不同,现代 WordPress 后门通常具备以下特征:

  1. 深度伪装:文件头标注为 Filesystem Abstraction LayerCache Engineering,类名模仿 WordPress 官方风格。
  2. 字符串混淆:大量使用 chr()、XOR 运算、十六进制编码,躲避静态扫描。
  3. 多节点持久化:不仅写入 mu-plugins,还会感染 advanced-cache.phpdb.phpobject-cache.php 等 Drop-in 文件。
  4. 数据库寄生:将完整恶意代码以 base64 形式存入 wp_options 及各 meta 表,实现文件删除后的自我恢复。
  5. 信息窃取:拦截 authenticateafter_password_reset 钩子,加密记录所有登录凭证。

二、恶意代码核心能力清单

功能模块技术实现风险等级
远程命令执行shell_exec / exec / system🔴 极高
任意 PHP 执行eval($_POST['code'])🔴 极高
数据库操控直接执行自定义 SQL🔴 极高
文件管理读写删任意服务器文件🔴 极高
隐藏管理员创建 sitereview 等隐身账户🔴 极高
密码窃取伪装成 .jpg 写入 uploads 目录🟠 高
自我更新通过 mode=u 远程覆写自身🟠 高
自动登录HMAC 签名绕过认证🟠 高

三、数据库排查:SQL 检测脚本

以下 SQL 可直接在 phpMyAdmin 或 MySQL 命令行执行。执行前务必先导出备份

3.1 检测 wp_options 中的恶意存储

SELECT option_name, 
       LENGTH(option_value) AS data_length,
       LEFT(option_value, 80) AS preview
FROM wp_options
WHERE option_name LIKE '%site_compatibility%'
   OR option_name LIKE '%_wph_%'
   OR option_name LIKE '%_bcdata%'
   OR option_name LIKE '%_bcmeta%'
   OR option_name LIKE '%_pcache%'
   OR option_name LIKE '%_uprefs%'
   OR option_name LIKE '%_torder%'
   OR option_name LIKE '%_cstatus%'
   OR option_name LIKE '%_av_backup%'
   OR option_name LIKE '%_wcfg%'
ORDER BY data_length DESC;

判断标准:data_length 超过 5,000 且 preview 以 YToyaHR0 等 base64 特征开头,即可判定为恶意代码存储。

3.2 查找隐藏管理员账户

SELECT ID, user_login, user_email, user_registered, display_name
FROM wp_users
WHERE user_login = 'sitereview'
   OR user_login LIKE '%support%'
   OR user_email LIKE '%sitereview%'
ORDER BY user_registered DESC;

若发现异常用户,进一步核查其权限:

SELECT user_id, meta_key, meta_value
FROM wp_usermeta
WHERE user_id IN (
    SELECT ID FROM wp_users WHERE user_login = 'sitereview'
);
如何识别并彻底清理 WordPress 高级后门 Webshell

3.3 扫描各 Meta 表的寄生数据

-- wp_postmeta
SELECT post_id, meta_key, LENGTH(meta_value) AS len
FROM wp_postmeta
WHERE meta_key LIKE '%site_compatibility%' 
   OR meta_key LIKE '%_wph_%'
   OR LENGTH(meta_value) > 3000;

-- wp_usermeta
SELECT user_id, meta_key, LENGTH(meta_value) AS len
FROM wp_usermeta
WHERE meta_key LIKE '%site_compatibility%' 
   OR meta_key LIKE '%_wph_%'
   OR LENGTH(meta_value) > 3000;

-- wp_termmeta
SELECT term_id, meta_key, LENGTH(meta_value) AS len
FROM wp_termmeta
WHERE meta_key LIKE '%site_compatibility%' 
   OR meta_key LIKE '%_wph_%'
   OR LENGTH(meta_value) > 3000;

-- wp_commentmeta
SELECT comment_id, meta_key, LENGTH(meta_value) AS len
FROM wp_commentmeta
WHERE meta_key LIKE '%site_compatibility%' 
   OR meta_key LIKE '%_wph_%'
   OR LENGTH(meta_value) > 3000;

3.4 检查可疑 Transient 与 Cron

SELECT option_name, option_value
FROM wp_options
WHERE option_name LIKE '_transient_%wph%'
   OR option_name LIKE '_transient_%site_compatibility%'
   OR option_name LIKE '_transient_timeout_%wph%';

四、文件系统排查清单

数据库清理必须与文件清理同步进行,否则后门会通过数据库中的备份代码自动重建文件。

  1. MU-Plugins 目录wp-content/mu-plugins/ 下的可疑 PHP 文件(如 revision-cleaner.phpsecurity-headers-mgr.php)。
  2. 伪装图片wp-content/uploads/YYYY/MM/gallery-thumb-*.jpg,实际内容为 base64 加密数据。
  3. Drop-in 文件
    • wp-content/advanced-cache.php
    • wp-content/db.php
    • wp-content/object-cache.php
  4. 散落文件
    • wp-content/uploads/locale-handler.php
    • wp-content/languages/capability-cache.php
    • wp-content/cache/oEmbed-handler.php
    • wp-content/fonts/feed-handler.php
    • wp-content/upgrade/export-helper.php
  5. wp-config.php:检查是否被注入 define('WP_CACHE', true);
如何识别并彻底清理 WordPress 高级后门 Webshell
如何识别并彻底清理 WordPress 高级后门 Webshell
如何识别并彻底清理 WordPress 高级后门 Webshell

五、一键清理 SQL(确认后执行)

以下清理脚本会删除恶意选项、meta 数据及隐藏用户。执行前必须完成数据库备份

-- 清理 wp_options 恶意选项
DELETE FROM wp_options
WHERE option_name LIKE '%site_compatibility%'
   OR option_name LIKE '%_wph_%'
   OR option_name LIKE '%_bcdata%'
   OR option_name LIKE '%_bcmeta%'
   OR option_name LIKE '%_pcache%'
   OR option_name LIKE '%_uprefs%'
   OR option_name LIKE '%_torder%'
   OR option_name LIKE '%_cstatus%'
   OR option_name LIKE '%_av_backup%'
   OR option_name LIKE '%_wcfg%';

-- 清理各 meta 表
DELETE FROM wp_postmeta WHERE meta_key LIKE '%site_compatibility%' OR meta_key LIKE '%_wph_%';
DELETE FROM wp_usermeta WHERE meta_key LIKE '%site_compatibility%' OR meta_key LIKE '%_wph_%';
DELETE FROM wp_termmeta WHERE meta_key LIKE '%site_compatibility%' OR meta_key LIKE '%_wph_%';
DELETE FROM wp_commentmeta WHERE meta_key LIKE '%site_compatibility%' OR meta_key LIKE '%_wph_%';

-- 删除隐藏用户(请先确认 user_id)
-- DELETE FROM wp_usermeta WHERE user_id = 999;
-- DELETE FROM wp_users WHERE ID = 999;

六、清理后的加固措施

  1. 重置所有凭证:WordPress 管理员密码、数据库密码、服务器 SSH/FTP 密码。
  2. 重装 WordPress 核心:保留 wp-content/uploadswp-content/themes(需审计)和 wp-config.php,其余核心文件从官方包覆盖。
  3. 审计主题与插件:检查最近 30 天内修改过的文件,排查供应链攻击。
  4. 限制文件写入权限:将 wp-content/uploads 以外的目录设为不可写(644755)。
  5. 安装安全插件:推荐使用 Wordfence 或 Sucuri Scanner 进行全盘扫描与实时监控。
  6. 启用 Web 应用防火墙(WAF):拦截常见的文件上传与代码执行漏洞利用。

七、总结

现代 WordPress 后门早已不是简单的一句话木马,而是具备多节点持久化、数据库寄生、自我恢复、信息窃取等高级特性的完整 Webshell 框架。仅靠删除单个文件无法根除,必须结合数据库 SQL 排查、文件系统审计与权限加固,才能彻底恢复网站安全。

如果你发现本文提到的 sitereview 用户或 revision-cleaner.php 类文件,请立即按照上述步骤执行隔离与清理,避免造成更严重的数据泄露与服务器沦陷。

需要外贸独立站建站或 GEO 优化服务?美络云科技(Mloun)提供 WordPress 外贸独立站建站、WooCommerce 跨境商城、海外 SEO 与 GEO 生成式引擎优化一站式服务,服务覆盖全球 25% 的国家和地区。