Why is SeCreateSymbolicLinkPrivilege ignored on Windows 8?
鉴于:
>用户位于Administrators组中
>关闭UAC对我来说不是一个选择.
>高架跑不是一种选择.
问题:是否可以将SeCreateSymbolicLinkPrivilege添加到Windows为管理员用户创建的标准用户令牌中?
附录
C:\dayforce\SharpTop>whoami /priv PRIVILEGES INFORMATION ---------------------- Privilege Name Description State ============================= ==================================== ======== SeShutdownPrivilege Shut down the system Disabled SeChangeNotifyPrivilege Bypass traverse checking Enabled SeUndockPrivilege Remove computer from docking station Disabled SeIncreaseWorkingSetPrivilege Increase a process working set Disabled SeTimeZonePrivilege Change the time zone Disabled C:\dayforce\SharpTop>
普通用户:
C:\Windows\system32>whoami /priv PRIVILEGES INFORMATION ---------------------- Privilege Name Description State ============================= ==================================== ======== SeShutdownPrivilege Shut down the system Disabled SeChangeNotifyPrivilege Bypass traverse checking Enabled SeUndockPrivilege Remove computer from docking station Disabled SeIncreaseWorkingSetPrivilege Increase a process working set Disabled SeTimeZonePrivilege Change the time zone Disabled SeCreateSymbolicLinkPrivilege Create symbolic links Disabled C:\Windows\system32>
请注意,普通用户具有SeCreateSymbolicLinkPrivilege权限,因为我已在安全策略中启用它.但管理员用户搞砸了,因为这样做不会影响其标准用户令牌!
解决方法
我感到很痛苦 – 我一直在寻找一种方法来允许管理员用户运行非升级来创建符号链接,但没有成功…
>我调查过改变过程令牌(也许是“探险家”)
添加SeCreateSymbolicLinkPrivilege权限,但它出现了
没有办法改变现有令牌的权限集.
即使您的补丁进程以SYSTEM和/或具有
SeTcbPrivilege特权.
>我调查过使用CreateRestrictedToken创建“自己的”
非升级进程,但使用SeCreateSymbolicLinkPrivilege
特权保持启用状态.但是我读过的所有轶事
CreateRestrictedToken表示生成的令牌不能
与“真实的”非高举令牌充分相似.那里
是完整性水平或高架旗帜难以逾越的问题
与令牌相关联.
>无论您分配给create-symlink用户的用户是什么
安全策略管理器,如果您的进程没有升级(来自
具有admin的用户),获得SeCreateSymbolicLinkPrivilege权限
除去.即使添加的唯一用户是“Everyone”,也会发生这种情况.
微软真的在这个问题上对我们犯了错误,似乎没有好的解决方法.虽然有一个可能是hackish解决方案……
现在,对于hackish解决方案 – 在用户登录期间,启动后台程序(提升),这将代表其他进程创建符号链接.这将需要使用某种IPC(可能是命名管道)来接收来自客户端进程的create-symlink-requests.它很丑陋,可能很慢,但除了运行Elevated(或禁用UAC),或从Administrators组中删除用户之外,我没有看到任何其他方式.