近期的工作,总是会碰到一些比较奇特的需求,比如说:在一个以管理员权限运行的程序里面,启动/运行一个非管理员/当前用户权限的程序或者服务之类。
进程的权限是继承的。一般来说,管理员权限下运行的程序,即便创建新进程或者启动别的程序,被创建或者启动的也依然管理员权限。
=======================================================================
将程序或者进程提权,倒是有许多办法可以实现。比如说调用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

在管理员权限的程序中,需要启动一个非管理员或当前用户权限的进程。通常进程继承父进程权限,但可以利用explorer.exe的token或任务计划程序降权。本文介绍了两种方法,一种是遍历进程获取explorer.exe的token并使用CreateProcessAsUser创建进程,另一种是利用任务计划程序创建任务立即执行,以实现降权运行程序。
最低0.47元/天 解锁文章
272

被折叠的 条评论
为什么被折叠?



