欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

滥用 MacOS 许可执行代码 - Visual Studio

最编程 2024-04-25 14:59:08
...

微软发布了其首要的MacOS IDE的简化版本,主要用于Xamarin,.NET Core和Mono的C#开发。尽管是“缩减版”,但它仍支持原始版本的许多功能,包括NuGet,IntelliSense等。

它还具有一些有趣的权利。

当然,MacOS用户在Microsoft生态系统中被视为二等公民,Microsoft无法对这对最终用户的影响一概而论-尽管影响更为严重,但与上述影响相似。我们可以看到,基本上禁用了强化运行时的每个功能-通过DYLD_INSERT_LIBRARIES环境变量启用最简单的代码注入方法。以下视频演示了如何在Visual Studio上下文中轻松执行代码。

请记住:在此上下文中执行的代码将继承父级的权利和TCC值。不难想象,Microsoft试图“强化” Visual Studio for Mac可能导致IP(知识产权)被盗的情况。与Dropbox一样,所有安全隐患都是相同的,但是由于允许使用DYLD环境变量,因此容易实现大约30倍的提取。

我相信大多数阅读本文的人都对Burp Suite熟悉。如果不是这样的话,这是一种可利用网络进行侦查的瑞士军刀,可帮助进行侦察,侦破和侦破。那我们为什么不利用呢?

这次,我们将利用Burp Suite安装程序。您可能现在已经猜到了,它具有一些有趣的权利。

除了缺少换行符的输出外,这种情况下的利用也不同。安装中没有外壳程序脚本(也没有允许存在DYLD环境变量的权利),并且,如果我们要创建一个恶意安装程序,则需要使用已打包的程序。因此,我们将篡改安装程序随附的JRE(jre.tar.gz)。

实际上,有两种解决方法-完全替换dylib或劫持dylib。Dylib劫持与其在Windows上的合作伙伴DLL劫持相似,在于它滥用可执行文件来搜索可能存在或可能不存在的库,通常由@rpath“弱引用” 指定或有时由“弱引用” 指定。弱引用是不需要加载但可以加载的库。有关dylib劫持的详细信息,我建议这个客观见的帕特里克·沃德尔精彩介绍。为简便起见,我们将在JRE中替换.dylib。

安装程序的执行方式是在安装过程中将JRE提取到一个临时位置,该位置将用于其余的安装。这个临时位置是随机的,实际上给我们的攻击增加了一层混乱,因为没有两个执行将JRE提取到同一位置。扩展JRE后,将加载它并尝试安装Burp Suite。这使我们能够在Burp Suite的幌子和环境下执行未签名的代码,在用户不了解的后台运行代码。值得庆幸的是,Burp Suite不需要(当前)需要提升的特权才能在macOS上安装。但是,由于容易伪造恶意安装程序以及Gatekeeper并非明智之举,因此这是一个问题。

可以在下面查看概念证明。