基于白名单AutoElevate绕过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提权