大规模NDSW/NDSX恶意软件活动分析

大规模NDSW/NDSX恶意软件活动分析

最近,Avast 的研究人员 Pavel Novák 和 Jan Rubín 发布了一篇关于“ Parrot TDS ”活动的详细文章,该活动涉及16,500多个受感染的网站。Sucuri 并没有忽视如此大规模的感染,我们立即认识到他们的文章中的感染属于我们内部称为“ ndsw/ndsx ”恶意软件的活动。自 2019 年 2 月以来,我们一直在跟踪这一特定活动——但是,有些变体的参考日期甚至更早。

该恶意软件由几层组成:第一层突出显示JavaScript 注入中的ndsw变量,第二层利用有效负载中的ndsx变量。我们的研究结果表明,攻击者会定期更改其 JavaScript 注入的混淆,同时保持这种可识别的 ndsw/ndsx模式。

更重要的是,这种恶意软件是Sucuri 在 2021 年检测和清除的顶级感染之一。去年, SiteCheck 扫描的61,000多个网站包含恶意“ ndsw ”JavaScript。

由于攻击者通常会将此恶意软件注入他们可以找到的每个 JavaScript 文件中,因此在感染期间通常会影响大量文件。仅在 2021 年,我们的团队就从在受感染网站上发现的近2000 万个.js 文件中删除了此恶意软件。该恶意软件的 PHP 部分(Avast 称之为“代理版本”)被我们的修复工具删除了5,400多次,平均每个受感染网站删除 1 或 2 个文件。

在撰写本文时,此“ ndsw ”活动仍在进行中。在 2022 年的前 5 个月中,SiteCheck 已检测到11,000 多个受感染的网站 – 今年我们已经清除了与此恶意软件活动相关的2,900多个PHP 和164 万个 JavaScript 文件。

大规模NDSW/NDSX恶意软件活动分析

恶意 NDSW JavaScript 和变体分析

让我们看一下ndsw JavaScript 及其修改。

所有变体都包含以下语句“ if(ndsw===undefined) ”——ndsw因此而得名。

恶意脚本通常被注入内联脚本末尾的HTML 页面或受感染环境中所有.js文件的底部,有时在单个站点上可能包含数千个受感染文件。在极少数情况下,这种恶意软件也可以在数据库中找到(通常由某些插件缓存)。

一个典型的脚本如下所示:

大规模NDSW/NDSX恶意软件活动分析
正在进行的 NDSW 活动的恶意 JavaScript 典型示例

您可以清楚地看到位于同一站点上的恶意 PHP 文件的 URL。在此屏幕截图中,它是//<redacted>/wp-admin/css/colors/blue/blue.php?id=’+token(),其中<redacted>是受感染网站的域名。

有时,PHP 文件的 URL 会被混淆以试图阻止其被发现。

大规模NDSW/NDSX恶意软件活动分析
带有混淆 PHP 代理 URL 的 JavaScript 变体

随着时间的推移,我们发现了一些变体使用多种不同类型的混淆来隐藏关键字符串,如下所示。

大规模NDSW/NDSX恶意软件活动分析
NDSW JavaScript 变体利用多种混淆技术

而其他变体使用ndsj变量而不是ndsw

大规模NDSW/NDSX恶意软件活动分析
使用 ndsj 变量的 JavaScript 变体

注入的 JavaScript 也可以很好地缩进,因此对于普通的观察者来说,它看起来不那么可疑。

大规模NDSW/NDSX恶意软件活动分析
正确缩进的 NDSW JavaScript 变体

而且,在最不寻常的变化中,我们发现一个版本使用 canvas 的getImageDataString.fromCharCode函数的组合而不是通常的 PHP从假图像文件“ pixelapn.adsprofitnetwork[.]com/apnpixel.png ”加载有效负载代理。

大规模NDSW/NDSX恶意软件活动分析
恶意 NDSW JavaScript 变种从虚假图像文件加载有效负载

这些可见的 JavaScipt 注入的功能是获取并执行攻击的第二层,该攻击通常从同一受感染环境中随机目录中的 PHP 文件加载。

NDSW PHP恶意软件分析

现在,让我们看一下 JavaScript 加载其有效负载的 PHP 脚本。

我编制了一些最常见的位置模式和现实世界示例的列表。

/wp-admin/css/colors/blue/blue.php (最常见)

/random/<directory>/<directory>.php
- /assets/images/about/about.php
- /ajax/jquery.validate/1.11.1/1.11.1.php
- /bat/phpmailer/phpmailer.php
- /administrator/components/com_admin/helpers/html/html.php
- /wp-content/plugins/affiliates-manager-wp-estore-integration/affiliates-manager-wp-estore-integration.php

/random/directory/slicemap.php
- /slicemap.php
- /staging/slicemap.php
- /system/Database/slicemap.php

/random/directory/class.php
- /wp-content/plugins/wp-sp/class.php
- /wp-content/plugins/wp-sps/class.php

/random/directory/.class.php
- /wp-content/uploads/typehub/custom/dn46/.class.php

/wp-content/plugins/<fake-plugin>/clock.php
- wp-content/plugins/wp-dumpme/clock.php
- wp-content/plugins/wp-pimple/ciock.php

wp-special.php

然而,这份清单并不详尽。攻击者正在使用各种不同的命名约定和位置来隐藏他们的 PHP,我们预计随着新变体的开发,这种情况会继续下去。

混淆技术

PHP“代理”通常看起来像这样。

大规模NDSW/NDSX恶意软件活动分析
在 NDSW 活动中发现的典型混淆 PHP 恶意软件

PHP 恶意软件中的混淆保持不变:两个具有随机名称的解码助手类,后跟具有加密值的代码、可见的curl请求以及使用的“ base64_encode(json_encode ”函数组合)。

就像我们看到的恶意 JavaScript 的一些变种一样,我们也发现了一些修改来帮助文件伪装成合法的 PHP。攻击者使用虚假的标题注释和适当的缩进来试图伪装恶意内容,如下所示。

大规模NDSW/NDSX恶意软件活动分析
恶意软件伪造的标题注释和适当的缩进进行伪装

虽然脚本的功能因版本而异,但主要思想保持不变。

大规模NDSW/NDSX恶意软件活动分析
部分解码的 PHP 脚本揭示了功能

如上所示,该脚本对网站访问者的信息(IP 地址、浏览器和引用者)进行编码,并将其传递给第三方服务器上的脚本(如上所示“ ad.syncadv[.]com ”)。如果响应包含“ ndsx ”关键字,它会被注入并作为受感染网页上的内联脚本即时执行。

分析 NDSX 有效负载

以下是从第三方服务器(通常通过 PHP 代理)获取的典型 NDSX 有效负载示例。

大规模NDSW/NDSX恶意软件活动分析
NDSX JavaScript 有效负载

在此示例中,脚本从以下位置加载另一个脚本:hxxps://stuff.bonneltravel[.]com/report?r=dj03ZDdlM2JjMjNlY2E3Mzc0OTQxYSZjaWQ9MjUw

在极少数情况下,我们还看到没有“” var ndsx= true;的脚本,部分被黑客直接注入到网页和.js文件中。

NDSW/NDSX 脚本层

这种攻击有许多可区分的层。

1. NDSW JavaScript 注入:

攻击的第一层是注入的ndsw/ndsj脚本,可以在受感染网页的 HTML 代码或受感染网站显式加载的.js文件中找到该脚本。

2. PHP 代理脚本:

攻击的第二层(常见但可选)是从同一受感染环境中的 PHP 代理加载的脚本。此代理的主要目的是隐藏带有 NDSX 有效负载的服务器的位置。通过在服务器端加载有效负载,其来源对于在客户端级别执行的流量监控和静态分析是不可见的。然后将有效负载作为内联脚本注入。

3. 来自 TDS 服务器的 NDSX 脚本:

攻击的第三层(有时是第二层)是来自攻击者控制的服务器的 NDSX 脚本,用作 TDS(交通指挥系统)。TDS 根据 IP、浏览器和引用数据的行为决定为特定用户使用什么有效负载。此外,它不断为其恶意脚本引入新的 URL,以避免将流量发送到已列入黑名单的资源。

4. 恶意负载:

一旦 TDS 验证了特定站点访问者的资格,NDSX 脚本就会从第三方网站加载最终有效负载。

正如Avast 的研究人员 Pavel Novák 和 Jan Rubín在他们最新的帖子中所解释的那样,Windows 计算机最流行的最终有效载荷是所谓的“假更新”恶意软件。

恶意域名

我们一直在跟踪与正在进行的 NDSW 恶意软件活动相关的许多恶意域名。

adsprofitnetwork[.]com - Creation Date: 2019-10-22, IP:188.120.239.154
- pixelapn.adsprofitnetwork[.]com/apnpixel.png

statclick[.]net - Creation Date: 2021-01-30, IP:145.239.23.7
- visit.statclick[.]net/ui_node.js
- go.statclick[.]net/ui_node.js

clickstat360[.]com - Creation Date: 2018-10-22, IP:145.239.23.7
- public.clickstat360[.]com/ui_node.js

syncadv[.]com - Creation Date: 2020-11-18, IP:145.239.23.7
- ad.syncadv[.]com/ui_node.js

webcachespace[.]net - Creation Date: 2021-09-22, IP:217.23.6.50
- webcachespace[.]net/ac-analytics.js
- webcachespace[.]net/jquery.min.js

cachespace[.]net - Creation Date: 2022-03-13, IP:217.23.6.50
- ping.cachespace[.]net/jquery.min.js

staticvisit[.]net - Creation Date: 2021-08-17 IP:54.38.59.250
- go.staticvisit[.]net/ui_node.js

webcachestorage[.]com - Creation Date: 2021-09-22 IP:217.23.6.22
- webcachestorage[.]com/sync.adv.min.js

最近的第 4 层域

在一种称为域阴影的技术中,我们还对利用合法网站子域的以下第 4 层脚本进行了排序。

45.10.42.26 (VDSINA-NL, RU)
- market.bluestonechiropractic[.]com
- craft.cheesedome[.]com

109.234.35.249 (VDSINA-NL, RU)
- design.lawrencetravelco[.]com
- stuff.bonneltravel[.]com
- rotation.ahrealestatepr[.]com
- doors.vipveinsaz[.]com
- patients.brannonsmiles[.]com

179.43.169.30 (PLI-AS, PA)
- contractor.thecaninescholar[.]com
- staff.beeboykind[.]com
- sdk.expresswayautopr[.]com
- flowers.netplusplans[.]com
- rotation.craigconnors[.]com
- notify.aproposaussies[.]com

188.120.239.154 (RU-JSCIOT, RU)
- pixelapn.adsprofitnetwork[.]com
- mines.cajonsoul[.]com
- bumpy.daniyalmedicaltech[.]com
- trace.mukandratourandtravels[.]com
- mamba.cpncredit[.]com

最有可能的是,攻击者破坏了域所有者的帐户 (DNS),并为指向他们自己服务器的恶意子域创建了额外的 A 记录。

感染载体

在分析了受此活动影响的多个受感染网站后,我们发现其中大多数网站都存在大量恶意软件和漏洞。

大多数网站包含各种后门、黑帽 SEO 脚本以及易受攻击或过时的组件(例如插件和主题)。在许多受感染的网站上,我们还发现了属于正在进行的 WordPress 活动的日本垃圾邮件或恶意软件,这些活动负责将重定向注入推送通知诈骗页面——这并不奇怪,因为这三个活动都主导了我们2021 年的检测和清理图表。.

NDSW 恶意软件活动非常成功,因为它使用了一个多功能的利用工具包,该工具包不断添加新的公开漏洞和 0-day 漏洞。一旦不良行为者获得对环境的未经授权的访问权限,他们就会添加各种后门和 CMS 管理员用户,以在原始漏洞关闭后很长时间内保持对受感染网站的访问权限。

由于此活动使用多种利用场景,我们无法就攻击者如何侵入网站或如何清除和预防感染给出简单的通用答案——不同网站的情况不同。甚至注入本身也取决于特定的漏洞以及它提供的对服务器的访问级别。

WordPress网站中的假插件

例如,如果该漏洞提供了对 WordPress 网站的管理员访问权限,我们发现黑客通常会安装一个假插件。此类插件的典型名称是wp-spwp-spswp-pimplewp-dumpme

以下是wp-dumpme恶意插件在访问日志中的安装方式:

194.87.216.247 - - [19/May/2022:10:42:32 -0400] "POST /wp-admin/plugin-install.php?wc-ajax=1 HTTP/1.1" 200 17807 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0"

194.87.216.247 - - [19/May/2022:10:42:34 -0400] "POST /wp-admin/plugins.php HTTP/1.1" 200 18995 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0"

194.87.216.247 - - [19/May/2022:10:42:34 -0400] "POST /wp-admin/plugins.php?wc-ajax=1&action=activate&plugin=wp-dumpme%2Fwp-dumpme.php&plugin_status=all&_wpnonce=f66ee79d9b HTTP/1.1" 302 0 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0"

194.87.216.247 - - [19/May/2022:10:42:35 -0400] "GET /wp-admin/plugins.php?activate=true&plugin_status=all&paged=1&s= HTTP/1.1" 200 18806 "https://redacted/wp-admin/plugins.php?wc-ajax=1&action=activate&plugin=wp-dumpme%2Fwp-dumpme.php&plugin_status=all&_wpnonce=f66ee79d9b" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0"
…
194.87.216.247 - - [19/May/2022:10:42:39 -0400] "GET /?dumpmecheck=1 HTTP/1.1" 200 8109 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36"
大规模NDSW/NDSX恶意软件活动分析
假 WordPress DumpME 插件示例

在这个例子中,你可以看到这个“插件”在wp-dumpme/clock.php文件中创建了 NDSW PHP 代理。该文件的内容最初存储为wp-dumpme/tasty.pot中的 base64 编码字符串。对于其他假插件,NDSW PHP 代理文件的名称通常是class.php

这个假插件还在wp-dumpme/click.php中安装了一个后门,允许攻击者在受感染的站点上执行任意 PHP 代码。

大规模NDSW/NDSX恶意软件活动分析
解码 wp-dumpme/click.php 后门,带有“systemfilesdonttouch”响应,用于处理不需要的请求

当然,这些插件只是这个 NDSW/NDSX 活动使用的许多可能感染场景之一,所以不要指望在每个受感染的站点上都能找到它们。相反,您应该关注的是系统的清理方法。

清理和缓解步骤

如果您的网站已受到此恶意软件的攻击,请采取以下步骤来清除感染并强化您的网站。

  1. 更改您的 CMS 管理员密码并审核您的 CMS,以确保没有不需要的用户拥有管理员权限。
  2. 检查您网站上安装的所有主题、插件和其他第三方组件。删除(简单的停用是不够的)任何您不认识或不再使用的东西。
  3. 识别并清理所有受感染的文件和数据库记录。利用全新的网站备份和完整性监控系统可以提供很大帮助,因为此恶意软件的受感染文件总数可能达到数千个。在处理这么多受感染的文件时,手动清理可能非常繁琐,因此如果您没有可用的网站备份,请考虑使用自动化解决方案或参考我们的被黑网站指南
  4. 确保您的 CMS 和所有剩余的第三方组件都是最新的。不要浪费时间。这种攻击非常快地在其工具包中添加了新的漏洞。幸运的是,当漏洞被披露时,(由于与安全研究人员的合作)易受攻击的主题或插件的供应商可能已经发布了安全补丁。
  5. 考虑使用网站防火墙来保护您的网站免受大多数已知的攻击并虚拟修补已知漏洞,直到您能够更新您的软件。

from

转载请注明出处及链接

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注