后门伪装成合法插件
今天,我们想分享一种恶意软件,它充当复杂的后门,能够执行各种任务,同时伪装成真正的插件。带有专业外观的开头注释暗示它是一个缓存插件,该流氓代码包含许多功能,添加过滤器以防止自身包含在激活的插件列表中,并具有 ping 功能,允许恶意行为者检查脚本是否仍然可以运行,以及文件修改功能。此外,它还提供创建管理员帐户以及远程激活和停用插件的功能。
该样本是wordfence的一位分析师在 2023 年 7 月 18 日清理现场时发现的。第二天,同一位分析师开发了签名,并在测试后两周内发布到生产环境。仍在使用免费版本 Wordfence 的客户在 30 天延迟后于 2023 年 9 月 1 日收到了此签名。
自 2023 年 10 月 9 日起,wordfence的Premium、Care和Response用户将通过防火墙规则受到保护,防止使用此后门。
分析样品
由于恶意软件文件相当大,分析师无法在此处显示整个样本,而是将重点关注几个关键部分。
恶意用户创建
由于恶意文件在 WordPress 上下文中作为插件运行,因此它确实可以像其他插件一样访问正常的 WordPress 功能。上面的代码利用该wp_create_user
函数创建一个带有用户名superadmin
和硬编码密码的新用户帐户,我们对其进行了编辑以防止滥用。该用户的角色设置为administrator
在通过该功能显示一条短消息之前_pln_json_die
指示任务已成功执行。
以下函数_pln_cmd_hide
旨在superadmin
在不再需要该帐户时将其删除。一旦受害者成功受到攻击,攻击者可能会使用此功能来删除痕迹并减少检测到的机会。
虽然在测试代码中经常看到,但使用硬编码密码创建用户应该被视为危险信号,并且将该用户提升为管理员当然足以引起怀疑。
机器人检测
机器人检测代码经常出现在恶意软件中,这些恶意软件向某些用户提供正常内容,同时向其他类型的用户重定向或呈现恶意内容。这些感染场景的一个共同点是,网站所有者发现他们的网站对他们来说看起来不错,但他们的访问者报告了诸如看到垃圾邮件或被重定向到可疑网站等问题。
其他人报告说,他们的网站外观和行为完全正常,但仅在从搜索引擎访问时显示垃圾内容。由于此类恶意软件希望搜索引擎找到恶意内容,因此通常会在索引站点时向搜索引擎提供恶意内容。使用关键字填充有助于增加发送到受感染网站的流量。管理员经常报告,当其站点受到感染时,站点流量会突然出现意外激增。
虽然机器人检测代码的存在本身不足以将此类样本归类为恶意样本,但它无疑是该恶意软件中脱颖而出的因素之一。
内容替换
该插件添加了几个过滤器。其中两个如下所示:
add_filter( 'the_content', 'get_plugin_content', 9999999, 2 );
add_filter( 'the_page_content', 'get_plugin_content');
当 WordPress 渲染帖子和页面内容时,get_plugin_content
会调用恶意软件提供的功能。这种类型的挂钩通常用于将免责声明附加到帖子或页面、操纵摘录长度或将其他所需内容注入帖子或页面。
上述内容替换函数执行初始检查以查看当前登录的用户是否是管理员。如果是这样,他们将看到正常的内容。该过滤器设置为尽可能晚地运行以覆盖其他过滤器,因此9999999
. 还检查一些其他条件以确定是否提供未修改的站点内容。如果恶意软件确定不满足这些条件,则会组装并显示恶意内容。调用其他几个函数来插入垃圾邮件链接/按钮。
插件激活和停用
如上所述,该恶意软件在作为插件运行时利用了一些 WordPress 功能,例如内容过滤。但是,它还提供了一些不依赖于激活的远程控制功能。相反,在某些情况下,它只是简单地包含代码在 WordPress 环境中成功运行所需的相关文件。
上面的代码可用于远程激活和停用任意插件。这对于禁用不需要的插件以及根据需要激活此恶意插件很有用。除了我们已经讨论过的管理员用户删除之外,该恶意软件还包含其他清理功能,可以从数据库中删除恶意内容。
远程调用
以下代码用于启用该后门的恶意功能:
该_pln_is_colonel
函数检查是否存在控制该后门功能所需的特定用户代理字符串。如果该参数存在,$_REQUEST
将检查多个参数,如果设置,则执行其相应的功能。
总而言之,这些功能为攻击者提供了远程控制受害网站并从中获利所需的一切,但代价是牺牲网站自身的 SEO 排名和用户隐私。
结论
在今天的文章中,我们介绍了一个后门,其功能使其可以作为独立脚本和插件工作。远程插件激活、管理员用户创建和删除以及条件内容过滤使该后门能够逃避缺乏经验的用户的轻松检测。
Premium、Care 和 Response 用户在文件上传过程中受到我们的恶意软件扫描程序的保护,防止上传此示例及其许多变体,并且还受到我们的分层方法的保护,该方法使用其他几个规则来保护我们的免费用户。这意味着 Wordfence 将阻止攻击者通过上传此文件来破坏 WordPress 网站的任何尝试。在具有Wordfence Premium、Wordfence Care和Wordfence Response的站点上运行的正确配置的扫描也将检测到该样本(万一在感染期间上传到站点)。
可以访问商业签名集的付费版Wordfence CLI的用户也将能够检测到该恶意软件,而使用免费版Wordfence CLI的用户则不会。
重要的是要记住,检测妥协对于安全性与确保您的站点受到保护同样重要。通过使用 Wordfence 插件,并确保其已按照以下安全最佳实践进行最佳配置,您可以确保您的网站尽可能受到保护。没有什么是 100% 安全的,风险也永远无法完全降低,因此,在您的网站在遵循所有最佳实践的情况下仍然受到威胁时,对您的网站进行监控非常重要。Wordfence 扫描程序会向您发出任何感染警报,以便您可以启动事件响应,并且在攻击者突破网站第一道防线的情况下阻止恶意软件上传。
如果您认为您的网站可能被感染,您可以通过购买wordfence的护理或响应产品来寻求事件响应团队的帮助,或者按照本指南自行删除感染。
如果您在 Wordfence 扫描期间遗漏了恶意软件样本,请通过样本发送至我们的邮箱样本@wordfence.com 告知wordfence。