我创建了一个命令,它使用GetTokenInformation来获取当前进程的特权信息,并运行它,包括提升和非提升。当提升(作为管理员运行)时,我将获得所有特权的状态。当没有提升时,我只获得8种特权的状态--有些是启用的,有些是禁用的。
为什么运行非提升时只返回8个特权?
发布于 2020-02-04 22:43:34
令牌不能在创建后添加特权,而是使用一组较小的权限创建非提升令牌,以便即使非提升进程的安全性被破坏,特权也不会被启用。这样,只有提升的进程集显示了一个重要的攻击面。
发布于 2020-02-05 03:27:45
它依赖于用户帐户控制(UAC),您可以参考关于用户帐户控制如何工作的文档。
如果启用了UAC:
当您运行进程(没有提升)时,它将得到一个受限的令牌,并且管理员将从组列表中删除。即使当前用户是administrators组的成员,进程也不能使用管理员权限。
如果UAC被禁用:
您将得到原始令牌的副本,没有任何限制。
可以将以下寄存器设置为禁用(不建议禁用UAC ):
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
EnableLUA = 1 (REG_DWORD)重新启动电脑。
https://stackoverflow.com/questions/60064445
复制相似问题