一个微软不认的0day

admin 2020年8月26日10:56:54评论415 views字数 1750阅读5分50秒阅读模式

一个微软不认的0day

安全365原创翻译

一个微软不认的0day

最近,我们向Microsoft报告了50多个EOP和信息泄漏漏洞。但是微软不认为这是漏洞。因此,在这里,我们发布了两个非常稳定的信息泄漏漏洞,这些漏洞是我们上个月发现的,Microsoft拒绝修复它们。

漏洞1:usosvc.dll中的信息泄漏


服务中的堆地址泄漏错误usosvc,usosvc.dll!UsoSettingsUtil::GetSetting导致特权升级。

此错误的根本原因如下代码所示:

__int64 __fastcall UsoSettingsUtil::GetSetting(const unsigned __int16 *a1, VARTYPE a2, struct tagVARIANT *a3){    /*        ...      */    pvargDest.vt = 8;    pvargDest.llVal = (LONGLONG)v11;    v12 = VariantChangeType(&pvargDest, &pvargDest, 0, a2);    v7 = v12;    if ( v12 >= 0 )    {      v12 = VariantCopy(return_val, &pvargDest);      /*        ...      */}


a2是一个用户可以控制的int值,此代码段的功能将VARTYPE更改为您可以指定的类型,然后复制到并返回给调用方。错误是如果调用者设置,一旦被调用,堆地址将被存储到其中。

因此,攻击者可以从return的成员中获取堆地址。


一旦攻击者获得了堆地址,他就可以绕过ALSR或进一步利用其他错误最终实现 


一个微软不认的0day

pvargDestBSTRpvargDestreturn_vala2 = VT_EMPTYVariantChangeTypepvargDest.vtVTVARIANTEscalation of Privilege


要触发此错误,您应该首先 UxUpdateManager 从获取一个对象 usosvc,然后调用UxUpdateManager::GetCachedSettingValue

POC
编译并运行我提供的代码。您可以从中获取堆地址usosvc
要检查堆地址是否来自usosvc,您应该使用windbg附加到usosvc,在处设置断点VariantChangeType并集中于的VT成员pvargDest,检查它是否与返回的堆地址相同。
测试平台
Windows 10 2004 19041.450 img


一个微软不认的0day

漏洞2:usocoreworker.exe中的信息泄漏


这是另一个与前一个错误非常相似的错误。它位于中usocoreworker.exe!UsoSettingsUtil::GetSetting,您可以轻松地修改我们以前的POC来触发此错误。

微软的回应
提交后2周。我们得到了微软的回应。“Our engineering team provided this detail in their report: Reproduced, but since it only works in Medium IL this is a Moderate severity and should be addressed as v.Next (no repro on LowIL, AC)。”

这两个信息泄漏漏洞的时间表
2020年7月22日:找到并报告该错误。
2020年8月12日:MSRC答复说:“已复制,但由于它仅在中等IL中有效,因此严重性中等,应作为v.Next解决(对LowIL,AC不做复制)。”
2020年8月25日:发布。


讨论区
显然,这些漏洞是非常稳定的信息泄漏。它打破了中型用户和系统服务之间的安全边界。由于我们可以泄漏堆地址,因此我们可以使用它来破坏ASLR并与该服务中的另一个内存损坏错误进行链接以获得完整的EOP利用。

值得一提的是:此服务器中还有另一个内存损坏漏洞,因此我们可以将它们链接在一起以获得完整的EOP。但是,有关此漏洞的故事也使我对Microsoft感到非常沮丧。

我猜微软已经放弃了Windows的修复工作,但是我仍然在愚蠢地寻找Windows Bug。

学分
Zhiniang Peng(@edwardzpeng)和李雪峰(@ lxf02942370)


原文地址与下载地址:

https://github.com/hhlxf/USO_Info_Leak

精彩推荐
一个微软不认的0day

树莓派搭建蜜罐

一个微软不认的0day


国内黑客都在用什么聊天?

一个微软不认的0day


升级不涨价丨华盟学院网络安全就业办九月开班

一个微软不认的0day

一个微软不认的0day

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年8月26日10:56:54
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一个微软不认的0dayhttp://cn-sec.com/archives/103920.html

发表评论

匿名网友 填写信息