基于COM组件ICMLuaUtil接口来实现uac绕过

Posted zpchcbd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于COM组件ICMLuaUtil接口来实现uac绕过相关的知识,希望对你有一定的参考价值。

Y4er哥给的文章 整理下UAC这个知识点

参考文章:https://payloads.online/archivers/2020-03-02/2

先介绍下UAC(用户帐户控制):

UAC(User Account Control)是微软在 Windows Vista 以后版本引入的一种安全机制,通过 UAC,应用程序和任务可始终在非管理员帐户的安全上下文中运行,除非管理员特别授予管理员级别的系统访问权限。

UAC 可以阻止未经授权的应用程序自动进行安装,并防止无意中更改系统设置。

UAC需要授权的动作包括:配置Windows Update;增加或删除用户账户;改变用户的账户类型;改变UAC设置;安装ActiveX;安装或移除程序;安装设备驱动程序;设置家长控制;将文件移动或复制到Program Files或Windows目录;查看其他用户文件夹等。

先来讲下什么时候我们需要绕过UAC

举例一个环境:当我们当前获得的权限是存在于管理员组的时候但是并且是administrator这个用户,此时就可能需要我们进行绕过UAC的操作,否则虽然是管理员组但是实际上并没有管理员所对应的高权限操作

再讲下为什么有的应用程序不需要提示UAC?

因为普通应用执行权限有限,某些操作必然会要求更高的管理员权限。此时,通常就需要一个权限提升的操作。程序可以向系统请求提权,系统会将此请求通过提一个提示框,请用户确认。

如果当前用户的用户组权限不是管理员,提权操作是要求输入管理员密码的,这点和在Linux中的相应操作类似。

猜想:所以有的应用程序不需要提示UAC,应该是类似的windows自带的某些必然需要运行的程序,而且该程序必然要求更高的管理员权限来进行维持相对应的需要,所以自然不需要用户的确认来确定该操作

并且 白名单还有一个特性:拥有自动权限提升属性的文件,当默认以管理员权限运行,不需要经过用户的授权

上面讲的关于 有的应用程序不需要提示UAC的问题,也就是我们其中的一个突破口,白名单的绕过

所以一般绕过UAC的方法主要有两种方法

绕过UAC的两种方法:一种是利用白名单提权机制,另一种是利用COM组件接口技术

第一种就是白名单提权机制:

倾旋的文章中提到了:拥有自动权限提升属性的文件,当默认以管理员权限运行,不需要经过用户的授权的程序则可以成为我们白名单程序

这里其实还需要指出一点:仅仅找到拥有自动权限提升的属性的程序还是不够的,为什么不够?难道我们可以叫它帮我们进行其他命令的执行吗?不可以

但是可以尝试去挖掘,如果我们能够劫持它所需要的dll文件来执行我们所需要的才真正成功了

到时候差不多介绍完白名单的提权机制了

那么如何进行寻找白名单的程序并且成功利用呢?

以上是关于基于COM组件ICMLuaUtil接口来实现uac绕过的主要内容,如果未能解决你的问题,请参考以下文章

c#编程,添加引用时,COM和.NET有啥区别?代表啥意思

windows提权-绕过UAC提权

避免使用管理员密码 UAC

基于element ui的级联选择器组件实现的分类后台接口

Unity UGUI事件接口概述

分布式架构(10)---基于Redis组件的特性,实现一个分布式限流