security - 删除windows下的进程权限

标签 security winapi setuid

出于安全原因,我正在寻找一种删除进程权限的方法。我想以具有特权的用户身份开始,以有限用户身份结束。

例如,我希望我的 Web 服务器在受限用户下运行,因为我仍然想监听端口 80。

我怎么能在 Windows 下做这样的事情。类似于 Unix 的东西:

bind_to_80();
chroot("/some/limited/dir");
setuid(limited_user_id);
setgid(limited_group_id);
chroot("/some/limited/dir");
// drop some more rights
fork(); // now I can't come back

如何在 Windows 下做类似的事情?

编辑:当然,我知道 Windows 没有 fork 或 chroot,但我正在寻找放弃各种权限,尤其是用户 - 最佳实践。

最佳答案

看看Mark Russinovich's description使用 CreateRestrictedToken 在 Windows 下剥离特权和 CreateProcessAsUser .正如他解释的那样,这不是万无一失的,因为运行进程的帐户仍然保留其特权。

当然,还有他的 PsExec sysinternals 实用程序可帮助您至少删除 Administrator特权,无需编码。

对于现有的进程,似乎 AdjustToken AdjustTokenGroup 允许操作(前者显然需要 XPSP2 或更高版本),但本身需要特权……可能可以通过这种方式提交特权 seppuku,但我还没有尝试过:他们 可能对操作当前进程的特权的barf。

关于security - 删除windows下的进程权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3966536/

相关文章:

Python33 - 使用 BaseHTTPRequestHandler 提高服务器安全性

winapi - 如何从其句柄获取控件ID?

android - setuid 在 Galaxy s4 上因 PermissionDenied 失败

c - 我的程序阻止 Windows 关闭!

c++ - 鼠标事件返回值单位

linux - 如何将 valgrind 运行到具有 super 用户位的进程?

linux - 非 root 用户解压缩文件时是否可以保留 setgid 位?

php - 这是处理信用卡付款的正确方法吗?

php - 防止有人阅读源代码的最佳方法

php - 在 PHP 中使用适当的身份验证安全登录