近期的工作,总是会碰到一些比较奇特的需求,比如说:在一个以管理员权限运行的程序里面,启动/运行一个非管理员/当前用户权限的程序或者服务之类。
进程的权限是继承的。一般来说,管理员权限下运行的程序,即便创建新进程或者启动别的程序,被创建或者启动的也依然管理员权限。
=======================================================================
将程序或者进程提权,倒是有许多办法可以实现。比如说调用API ShellExcuteEx( )并指定SHELLEXCUTEINFO的lpVerb为“runas”;比如说在工程文件的manifast里面指定,要求admin权限才能运行;再比如说利用漏洞,当然,这个非常规做法难度太高、风险太大就不在讨论范围内了。
参考此文 https://blog.youkuaiyun.com/zuishikonghuan/article/details/46965159 《[Win32] UAC用户账户控制(提权+降权)》
=======================================================================
关于降权,在网上查找的资料,大致可以分为两类。
第一类就是利用当前用户的explorer.exe的token。Windows shell进程explorer.exe本身没有管理员权限。
比较有用的就是这个: https://blog.youkuaiyun.com/w