该后门文件伪装成一个JavaScript资源, 位于WordPress后台目录: wp-admin/js, 但其内容完全是PHP代码, 如果在浏览器中直接访问, 它会搜索WordPress的wp-config/php, 加载完整的运行环境, 并选择一个管理员账户自动登录, 然后直接跳转到后台仪表盘。
任何知道该文件 URLwp-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 函数,包括 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、立即创建管理员会话,以及在服务器日志中没有对应登录事件却直接访问管理面板。
这种后门可以让攻击者获得完全控制权。一旦以管理员身份登录,他们就可以安装恶意插件、投放额外的有效Payload、修改主题文件、创建新的后门,甚至删除合法用户账户。由于脚本是以真实的管理员身份登录,后台中不会出现可疑的用户名。
登录过程还会触发正常的 WordPress 钩子,这意味着任何依赖 wp_login 动作的安全插件,可能只会记录一次看起来合法的登录,而不会将其标记为恶意行为。这使得入侵极其隐蔽,且很容易被忽略。
该后门会创建有效的身份验证 Cookie,使攻击者即使关闭浏览器后也能持续访问被入侵的网站,在整个 Cookie 生命周期内(默认通常为 14 天)无需重新认证。与创建新管理员账户的后门不同,这种恶意程序不会在数据库中留下新的用户账户,不会修改现有用户密码,在访问日志中表现为正常的管理员活动,也绕过了可能提醒站点所有者的账户创建邮件通知。
后门首先会定位 WordPress 的根目录:
一旦找到相关文件,它就会定义路径并加载完整的 WordPress 环境:
这一步至关重要。通过加载 WordPress,攻击者可以使用所有内部 API,例如用户枚举、Cookie 创建、登录钩子以及重定向辅助函数。
该恶意程序包含会话检测机制,以避免冲突:
如果已有合法用户登录,后门会直接重定向到后台面板,而不会尝试创建新的会话。这可以避免会话冲突、强制登出或重复认证等可疑行为,从而减少被站点管理员察觉的风险。
核心恶意功能通过 auto_login() 函数执行自动登录:
此时,WordPress 会将攻击者视为合法的管理员。
脚本会选择它找到的第一个管理员账户。它会先尝试基于邮箱的检测方式,然后回退到通用的管理员列表:
如果仍然失败:
通过使用真实用户,攻击者避免创建新的可疑账户,使攻击在代码审计中更难被发现。
在文件的最后,攻击者添加了:
这使得该文件表现得像一次普通的 WordPress 前端请求。即使登录过程失败,或者攻击者想保持脚本低调,文件仍会渲染一个正常的主题页面,而不会输出明显的恶意内容。
wp-config.php
攻击者需要确认 WordPress 的安装位置。该文件可以确认根路径,并通过 WordPress 的正常加载流程访问数据库凭据
wp-load.php
这是最关键的包含文件。它会启动 WordPress、加载插件、设置数据库访问并初始化所有主要 API。没有它,攻击者就无法调用 get_users()、wp_set_auth_cookie(),或通过 admin_url() 进行重定向。
template-loader.php
该文件负责生成普通请求的前端输出。通过在最后调用它,攻击者将其脚本隐藏在正常的网站行为中。任何直接打开该文件的人,可能只会看到首页或某个主题模板,而不是明显的恶意代码。
删除恶意文件 :删除 DebugMaster 插件目录以及 wp-user.php。
审计用户 :删除 help 账户以及任何其他可疑的管理员账户。
重置凭据 :更改所有 WordPress、FTP、主机和数据库密码。
更新所有组件 :将 WordPress 核心、插件和主题更新到最新版本。
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)