Cyble 发现了 VSCode 远程隧道功能的复杂利用,阐明了攻击者如何获得未经授权的访问以及对网络安全的影响。
关键要点
-
Cyble 研究与情报实验室 (CRIL) 发现了一种利用 Visual Studio (VS) Code 和 GitHub 等合法工具的复杂攻击。
-
威胁行为者 (TA) 使用 .LNK 文件作为初始攻击媒介,可能通过垃圾邮件或网络钓鱼电子邮件进行传播。.LNK 文件伪装成合法的安装文件,使用 MSI 安装图标诱骗用户执行它。
-
执行后,.LNK 文件会静默下载 Python 分发包并使用它来运行恶意 Python 脚本。
-
TA 利用 VScode 工具启动远程隧道并检索激活码,TA 可以使用该激活码获取对受害者机器的未经授权的远程访问权限。这使 TA 能够与系统交互、访问文件并执行其他恶意活动。
-
为了保持持久性,TA 创建了一个计划任务,旨在自动触发具有 SYSTEM 权限和高优先级的恶意 Python 脚本的执行。
-
中文 APT 组织 Stately Taurus 在针对欧洲和亚洲各地组织的网络间谍活动中也采用了类似的策略、技术和程序 (TTP)。
概述
Cyble 研究与情报实验室 (CRIL) 发现了一项利用可疑 .LNK 文件作为初始攻击媒介的活动。该文件可能通过垃圾邮件发送,会下载 Python 分发包,然后用于执行从粘贴站点检索到的模糊 Python 脚本。在发布这项研究时,VirusTotal (VT) 上尚未检测到此脚本,因此很难通过标准安全措施识别它。
一旦执行,Python 脚本就会通过创建具有系统权限和高优先级的计划任务来建立持久性。它会检查受害者的机器上是否安装了 Visual Studio Code (VSCode)。如果没有,脚本会从受信任的来源下载独立的 VSCode CLI。使用 VSCode,脚本会创建一个远程隧道,与 TA 共享激活码,这有助于对受害者的机器进行未经授权的远程访问。
VSCode Remote – Tunnels 扩展通常用于通过安全隧道连接到远程计算机,例如台式电脑或虚拟机 (VM)。这使用户能够从任何 VSCode 客户端访问计算机,而无需 SSH。然而,在这次活动中,TA 利用此功能,利用它与受害者的系统建立远程连接以达到恶意目的。
这种攻击方法与之前在 Stately Taurus 中文 APT 组织活动中观察到的策略相似, Unit42 研究人员记录了这些策略。在本篇博文中,我们将研究 TA 如何巧妙地使用 VSCode 和 GitHub 等合法工具来隐藏其活动并建立未经授权的远程连接。下图说明了感染链。
技术分析
CRIL 已发现一项活动涉及伪装成安装程序的可疑 .LNK 文件。执行后,它会显示一条伪造的中文“安装成功”消息(“安装成功”)。然而,它会在后台使用 curl 实用程序悄悄下载其他组件,包括名为“ python-3.12.5-embed-amd64.zip ”的 Python 分发包。
然后,.LNK 文件在“%LOCALAPPDATA%MicrosoftPython ”处创建一个目录,并使用 tar.exe 将 zip 存档的内容提取到此位置。之后,它通过 URL“ hxxps[:]//paste[.]ee/r/DQjrd/0 ”从 paste.ee 网站下载恶意脚本,并将其保存为“ update.py ”并保存在同一位置。下载完成后,使用“ pythonw.exe ”执行“ update.py ”,而不显示控制台窗口。LNK 文件的内容如下所示:
更新.py
该脚本首先检查系统上是否已安装 Visual Studio Code (VSCode)。它通过验证位于“ %LOCALAPPDATA%microsoftVScode ”的目录是否存在来实现此目的。如果找不到此目录,则表明未安装 VSCode,然后脚本继续从 Microsoft 源下载 VSCode 命令行界面 (CLI):“ hxxps://az764295.vo.msecnd.net/stable/97dec172d3256f8ca4bfb2143f3f76b503ca0534/vscode_cli_win32_x64_cli[.]zip”。下载后,将解压 zip 文件,并将可执行文件“ code.exe ”放入“ %LOCALAPPDATA%microsoftVScode ”目录中
持久性
然后,该脚本继续创建一个名为“ MicrosoftHealthcareMonitorNode ”的计划任务,以确保其恶意活动的持久性。它旨在使用“pythonw.exe”执行“ update.py ”脚本,该脚本运行时不会显示控制台窗口,从而使恶意活动保持隐藏状态。在创建任务计划程序条目之前,该脚本通过运行命令“ schtasks /query /tn MicrosoftHealthcareMonitorNode ”来检查它是否已经存在,以避免创建重复项。
此任务的配置因用户的权限级别而异。对于非管理员用户,该任务设置为每四小时运行一次,从上午 8:00 开始,确保恶意脚本定期执行。在用户具有管理权限的系统上,该任务配置为在登录时触发,以提升的 SYSTEM 权限和高优先级运行,这赋予它更多的控制权和更少的被中断的可能性。下图显示了恶意软件创建的计划任务条目。
创建远程隧道
接下来,脚本通过检查“ tasklist ”命令的输出来检查“ code.exe ”是否已在后台运行。如果检测到“ code.exe ”未处于活动状态,则继续执行“ code.exe ”以注销任何活动的远程会话。这是通过发出命令“ code.exe tunnel user logout ”来完成的,该命令可确保终止连接到受害者系统的任何现有远程隧道。这一步对于 TA 至关重要,因为它允许他们建立一条新的远程隧道,以便将来与受害者的系统进行交互。
确保现有隧道已关闭后,脚本使用以下命令启动新进程:
-
code.exe –locale en-US tunnel –accept-server-license-terms –name <计算机名称>
此命令启动远程隧道,脚本自动将其与 GitHub 帐户关联以进行身份验证。现在,“ code.exe ”命令的输出保存在“ % localappdata%microsoftVSCode ”目录中名为“ output.txt ”的文件中。此外,“ output.txt ”的内容被复制到同一目录中另一个名为“ output2.txt ”的文件中,以提取 GitHub 帐户的 8 个字符的字母数字激活码。
随后,脚本读取“ output2.txt” 文件,并使用正则表达式模式“ and use code (w{4}-w{4})”识别 GitHub 帐户激活码 ,如下图所示。 提取的代码将保存到变量中,供攻击的后期阶段使用,从而实现进一步的恶意活动。
泄漏
然后,TA 通过从多个目录中收集文件夹名称来收集受害者的系统信息,包括“C:\Program Files”、“C:\Program Files (x86)”、“C:\ProgramData”和“C:\Users”。此外,TA 还会获取受害者机器上当前正在运行的进程列表,并将此信息直接发送到 TA 的命令和控制 (C&C) 服务器“ hxxp://requestrepo.com/r/2yxp98b3 ”,如下所示。RequestRepo.com主要用于分析传入的 HTTP 和 DNS 请求。然而,TA 利用它来捕获从受害者机器传输的被盗数据。
此外,TA 还会收集更多敏感数据,例如系统的语言设置、地理位置、计算机名称、用户名、用户域、远程隧道的激活码以及有关用户权限的详细信息。所有这些数据都经过 base64 编码以进行混淆,然后通过 POST 请求发送到命令和控制 (C&C) 服务器。下图显示了 TA 用于数据泄露的代码片段。
影响
TA 收到窃取的数据后,可以使用其 GitHub 帐户登录 URL“ hxxps://github.com/login/device”。在这里,TA 可以输入窃取的字母数字激活码,以获得对受害者机器的未授权访问。
未经授权访问受害者的机器允许 TA 查看和操作存储在受害者系统上的文件和目录。下图显示了 TA 如何使用窃取的激活码通过 VSCode 隧道访问受害者的文件。
这种访问级别不仅使他们能够浏览受害者的文件,还使他们能够通过终端执行命令。通过这种控制,TA 可以执行各种操作,例如安装恶意软件、提取敏感信息或更改系统设置,从而可能导致进一步利用受害者的系统和数据。
Unit42 的研究人员解释说,TA 可以执行多种工具,包括 mimikatz、LaZagne、In-Swor 和 Tscan,在受害者的系统上执行各种恶意活动。
结论
此次攻击活动表明,攻击者利用 VSCode 等合法工具建立对受害者系统的未经授权的访问,其技术水平日益提高。通过使用看似无害的 .LNK 文件和经过混淆的 Python 脚本,Threat Actot 可以有效绕过检测措施。这种访问使他们能够操纵文件、执行命令,并可能安装其他恶意软件,从而扩大了攻击范围。
组织保持主动的安全态势,注重警惕,增强现有安全实践,并实施新安全实践,以防御不断演变的威胁。了解这些策略对于建立更具弹性的网络安全态势至关重要。
建议
-
利用包含行为分析和机器学习功能的高级端点保护解决方案来检测和阻止可疑活动,即使是涉及 VSCode 等合法应用程序的活动。
-
定期检查所有系统上的计划任务,以识别未经授权或异常的条目。这有助于检测威胁行为者建立的持久性机制。
-
开展培训课程,教育用户了解打开可疑文件或链接的风险,特别是与 .LNK 文件和未知来源相关的文件或链接的风险。
-
限制用户安装软件的权限,尤其是那些可被利用的工具,比如 VSCode。实施应用程序白名单来控制哪些应用程序可以在系统上安装和运行。
-
部署先进的监控工具,可以检测异常的网络流量、未经授权的访问尝试以及系统内的异常行为。定期审核和查看系统和应用程序日志,以尽早发现入侵迹象。
原文:
https://cyble.com/blog/silent-intrusion-unraveling-the-sophisticated-attack-leveraging-vs-code-for-unauthorized-access/
原文始发于微信公众号(独眼情报):揭秘利用 VS Code 进行未经授权访问的复杂攻击
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论