关于bypassuac的探究——uac程序特性探究

通常以shell\open\command命名的键值对存储的是可执行文件的路径,如果exe程序运行的时候找到该键值对,就会运行该键值对的程序,而因为exe运行的时候是静默提升了权限,所以运行的该键值对的程序就已经过了uac。所以我们把恶意的exe路径写入该键值对,那么就能够过uac执行我们的恶意exe。

这里使用proc监听ComputerDefaults.exe

关于bypassuac的探究——uac程序特性探究_第1张图片

发现他会去查询HKCU\Software\Classes\ms-settings\Shell\Open\command里面的值

关于bypassuac的探究——uac程序特性探究_第2张图片

那么我们创建一个HKCU\Software\Classes\ms-settings\Shell\Open\command路径,再对ComputerDefaults.exe进行监听尝试关于bypassuac的探究——uac程序特性探究_第3张图片

然后发现他还会去查询HKCU\Software\Classes\ms-settings\Shell\Open\command\DelegateExecute,而且Result显示的是NAME NOT FOUND,那么可以认为首先去查询HKCU\Software\Classes\ms-settings\Shell\Open\command路径下的注册表,再去查询HKCU\Software\Classes\ms-settings\Shell\Open\command\DelegateExecute是否存在

关于bypassuac的探究——uac程序特性探究_第4张图片

那么这里我创建一个DelegateExecute的键值对,然后把默认键值对指向我的一个程序进行尝试

关于bypassuac的探究——uac程序特性探究_第5张图片

当我运行c:\windows\system32\ComputerDefaults.exe的时候,发现不再弹出的是默认进程的界面,而是打开了我自己的程序

关于bypassuac的探究——uac程序特性探究_第6张图片

么这里就可以大胆的猜测一下,首先运行ComputerDefaults.exe这个程序之前,会查询HKCU:\Software\Classes\ms-settings\shell\open\command这个目录是否存在,若存在继续寻找同目录下是否有DelegateExecute这个键值对,若两者都存在则执行HKCU:\Software\Classes\ms-settings\shell\open\command指向的exe路径

为了验证猜想,这里我将exe路径改为cmd,若猜测成立则可以获得管理员权限的cmd

关于bypassuac的探究——uac程序特性探究_第7张图片

whoami /priv查看一下果然成功关于bypassuac的探究——uac程序特性探究_第8张图片

你可能感兴趣的:(windows,网络,安全,学习)