文章插图
让我们来看看我们可以从Process Monitor 中找到什么 。访问与这个进程相关的事件的属性 , 然后 , 进入Stack选项卡 , 会显示以下内容 。我们可以看到 , 有很多对rpcrt4.dll和combase.dll的引用 。这可能意味着这个进程是由一个COM相关的RPC调用触发的 。如果是这样的话 , 根据远程对象和接口的权限 , 也可以作为普通用户触发 。
注 。COM用于进程间通信(IPC) 。因此 , 它可以为低权限的进程提供运行高权限操作的能力 。从二进制文件的属性来看 , 我们可以看到如下描述:USO Core Worker Process 。
文章插图
根据前几个要素 , 我试图在谷歌上找到更多信息 。第一个结果把我引向answsers.microsoft.com上的一个帖子 。根据其中一条信息 , 我发现这个文件与 “Update Orchestrator Service “有关 。
细细研究 , 我发现了这个非常有趣的关于 “USO客户端 “的非官方文档 。首先 , 我们了解到 “USO “是 “Update Session Orchestrator “的缩写 。
我们还了解到 , ”USO客户端”(usoclient.exe)是取代 “WUAUCLT “的工具 , 而WUAUCLT在以前的Windows版本中是用来管理Windows更新的 。事实上 , 这个工具已经被Windows系统管理员所熟知 , 因为虽然它不被微软官方支持 , 但它能让他们自动完成更新管理过程 。
注:他们甚至引用了TechNet上微软员工的回复 , 其中说你不应该直接运行这个工具 。这越来越有趣了 。我们喜欢做我们不应该做的事情 , 不是吗?文档中列出了所有你可以使用的选项 。所以 , 我试着玩玩usoclient命令 , 看看是否能触发我之前观察到的相同行为 。从StartScan开始 , 根据描述 , 它会触发一个简单地获取可用更新的检查 。
我像往常一样在后台运行 Process Monitor , 运行命令 , 成了 。
结论通过一个简单的命令 , 我们能够让Update Orchestrator服务以NT AUTHORITY/System的方式运行任意代码 。这种方法的另一个好处是 , 我们可以在DllMain之外运行我们的代码(即在加载器锁之外) 。
注意:根据微软的说法 , 应避免在DllMain中运行代码 , 因为它可能会导致应用程序死锁 。更多信息查看这里 。然而 , 这种技术也有一些缺点 。
- 这需要你能够控制一个特权文件创建或移动的操作 。
- 导致ACL覆盖的漏洞等 。
- 作为一个普通用户 , 我们不知道DLL是否已经成功加载 。
Links & Resources
- Windows开发技巧 。利用任意文件写入来提升本地的权限 。
https://googleprojectzero.blogspot.com/2018/04/windows-exploitation-tricks-exploiting.html
https://googleprojectzero.blogspot.com/2018/04/windows-exploitation-tricks-exploiting.html - Twitter – MS终于修复了Win 10 1903的 “Diag Hub Collector “漏洞 。
https://twitter.com/decoder_it/status/1131247394031579138
https://twitter.com/decoder_it/status/1131247394031579138 - 非官方的USO客户文件
https://www.urtech.ca/2018/11/usoclient-documentation-switches/
https://www.urtech.ca/2018/11/usoclient-documentation-switches/ - 关于 “USO客户端 “工具的主题 , 在TechNet上 。
https://social.technet.microsoft.com/Forums/en-US/7619f7fa-ffc1-433b-a885-12e26f9762bf/usoclientexe-usage?forum=win10itprogeneral
https://social.technet.microsoft.com/Forums/en-US/7619f7fa-ffc1-433b-a885-12e26f9762bf/usoclientexe-usage?forum=win10itprogeneral - 动态链接库最佳实践
https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-best-practices
https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-best-practices
推荐阅读
- 英雄联盟特权服务15个皮肤有哪些?
- 哪些高速公路收费站和服务区关闭关停?何时开放?怎样绕行?公示汇总信息在这儿查
- 微服务核心技术——负载均衡
- 超简单本地备份服务器搭建攻略
- 花了17年!微软修复Windows DNS服务器漏洞
- 对DBA、开发、测试、产品同时友好 大规模多存储场景的数据库选型与服务平台建设
- 现代服务业包括哪些行业?
- linux下多线程与并发服务器设计方案及常见问题
- kali linux之应用层Dos
- 服务器|中科院回应停用知网:近千万续订费太贵 将用万方和维普替代