M2Team / Privexec

Run the program with the specified permission level (C++20 required)
MIT License
327 stars 52 forks source link

请问有办法实现类似 Linux 的 SUID 权限吗? #18

Closed wy16W2pIilK1xgqN closed 5 years ago

wy16W2pIilK1xgqN commented 5 years ago

主要是想对一些程序永久性降权。

目前的方法都是通过,中介程序来实现降权,如果程序被直接掉用就不会被降权。 希望能实现:指定程序,被任何权限的程序掉用,都不会被提权。

比如 Notepad.exe 被设定为 Users 后, 具有 Administrators 权限的程序掉用它后, Notepad.exe 任然以 Users 权限启动。

请问有这样的办法吗?

fcharlie commented 5 years ago

此需求应该修改 应用程序清单 设置权限,但与Linux 权限策略仍然有区别

wy16W2pIilK1xgqN commented 5 years ago

谢谢回复! 网上爬文后,大概得知方法了。 首先提取exe 中的manifest文件。 然后修改 requestedExecutionLevel 项的值。 但设定项只要三个:asInvoker highestAvailable requireAdministrator。 实际上就是决定是否提权,而不是降权。 请问是我没搞懂吗?

fcharlie commented 5 years ago

这个是提权的 但在 Windows 系统上降权的话比较麻烦,利用清单降权基本没有办法.

MouriNaruto commented 5 years ago

我记得曾经我看微软的博文谈到了通过icacls来指定一个exe强制以某个完整性级别运行的功能 那个例子貌似是让某目录的计算器程序以始终以IL Low运行

wy16W2pIilK1xgqN commented 5 years ago

我记得曾经我看微软的博文谈到了通过icacls来指定一个exe强制以某个完整性级别运行的功能 那个例子貌似是让某目录的计算器程序以始终以IL Low运行

必须在指定路径? 这样也行,请问有连接吗?