后门背景
该后门文件伪装成一个JavaScript资源,位于WordPress后台目录 wp-admin/js 中。但其内容实为PHP代码。如果在浏览器中直接访问,它会搜索WordPress的wp-config.php,加载完整的运行环境,并自动选取一个管理员账户完成登录,随后直接跳转到后台仪表盘。
任何知道该文件URL(例如 wp-admin/js/mr_skk/data.php)的人,都可以瞬间获得管理员权限。该文件还试图通过在末尾加载标准的模板加载器来融入正常的WordPress行为,使请求看起来像一次普通的页面加载,而非明显的攻击脚本。
感染路径
恶意文件位于 wp-admin/js/mr_skk/data.php。这一点非常可疑,因为JavaScript目录中本不应存在PHP文件。mr_skk/子目录并非WordPress核心的一部分,而名为data.php的文件被伪装成一个看似无害的数据处理器。
该后门包含两个自定义函数:auto_login()和get_user_id()。这些函数滥用了合法的WordPress API,包括wp_set_current_user()、wp_set_auth_cookie()以及get_users(['role' => 'administrator']),以实现管理员会话劫持。代码通过目录遍历查找wp-config.php,从发现的路径加载wp-load.php,并最终包含WordPress核心中的template-loader.php。
后门执行后会重定向到包含参数 ?platform=000webhost 的后台URL。这个跟踪参数可能表明入侵来源。典型的访问模式为:直接请求 /wp-admin/js/mr_skk/data.php,立即创建管理员会话,随后访问管理面板,而服务器日志中并无对应的登录事件。
入侵影响
这种后门让攻击者获得网站完全控制权。一旦以管理员身份登录,他们可以安装恶意插件、投放额外有效载荷、修改主题文件、创建新后门,甚至删除合法用户账户。由于脚本使用真实的管理员身份登录,后台不会出现可疑的用户名。
登录过程会触发正常的WordPress钩子,这意味着任何依赖wp_login动作的安全插件可能只会记录一次看似合法的登录,而不会将其标记为恶意行为,这使得入侵极其隐蔽,容易被忽略。
该后门会创建有效的身份验证Cookie,使攻击者在Cookie生命周期内(默认通常为14天)无需重新认证即可持续访问。与创建新管理员账户的后门不同,这种恶意程序不会在数据库中留下新用户记录,不会修改现有用户密码,在访问日志中表现为正常的管理员活动,也绕过了可能提醒站点所有者的账户创建邮件通知。
恶意工作流内部分析
后门首先会定位WordPress的根目录:

一旦找到相关文件,它便定义路径并加载完整的WordPress环境:

这一步至关重要。通过加载WordPress,攻击者得以使用所有内部API,例如用户枚举、Cookie创建、登录钩子以及重定向辅助函数。
该恶意程序包含会话检测机制,以避免冲突:

如果已有合法用户登录,后门会直接重定向到后台面板,而不会尝试创建新会话。这可以避免会话冲突、强制登出或重复认证等可疑行为,从而降低被站点管理员察觉的风险,对于保护网站安全、防范此类渗透测试中常见的隐蔽攻击手段尤为重要。
核心恶意功能通过auto_login()函数执行自动登录:

此时,WordPress会将攻击者视为合法的管理员。
脚本会选择它找到的第一个管理员账户。它会先尝试基于邮箱的检测方式,然后回退到通用的管理员列表:

如果仍然失败:

通过冒用真实用户,攻击者避免了创建新的可疑账户,使得攻击在代码审计中更难被发现。
在文件的最后,攻击者添加了:

这使得该文件表现得像一次普通的WordPress前端请求。即使登录过程失败,或者攻击者想保持脚本低调,文件仍会渲染一个正常的主题页面,而不会输出明显的恶意内容。
攻击者使用WordPress核心文件动机
wp-config.php
攻击者需要确认WordPress的安装位置。该文件可以确认根路径,并通过WordPress的正常加载流程访问数据库凭据。
wp-load.php
这是最关键的包含文件。它会启动WordPress、加载插件、设置数据库访问并初始化所有主要API。没有它,攻击者就无法调用get_users()、wp_set_auth_cookie(),或通过admin_url()进行重定向。
template-loader.php
该文件负责生成普通请求的前端输出。通过在最后调用它,攻击者将其脚本隐藏在正常的网站行为中。任何直接访问该文件的人,可能只会看到首页或某个主题模板,而非明显的恶意代码。
清除与防护建议
立即清除
- 删除恶意文件:定位并彻底删除
wp-admin/js/mr_skk/data.php 及其所在目录。
- 审计用户账户:检查所有管理员账户,删除任何未知或可疑的账户。
- 重置所有凭据:立即更改WordPress管理员密码、数据库密码、FTP/SFTP及主机控制面板密码。
安全加固
- 更新所有组件:将WordPress核心、所有插件和主题更新至最新版本。
- 进行安全扫描:使用可信的安全插件对网站文件进行彻底扫描,查找其他潜在后门或异常文件。
- 审查文件权限:确保网站目录和文件具有严格的权限设置,防止未授权写入。
- 检查服务器日志:分析访问日志,寻找异常或重复访问可疑路径的IP地址,并进行封禁。