如何在CreateRestrictedToken中选择基本令牌来沙箱SYSTEM级别的服务
How to select base token in CreateRestrictedToken to sandbox SYSTEM level services
我正在尝试在C++中沙箱SYSTEM级别的Win服务。为了创建沙箱进程,我们首先需要通过CreateRestrictedToken创建一个受限令牌,然后通过CreateProcessAsUser传递该令牌。
CreateRestrictedToken需要输入中现有进程的令牌。目前,我在删除SID和特权后使用当前SYSTEM级别进程的令牌。我阅读了以下内容https://www.tiraniddo.dev/2020/01/dont-use-system-tokens-for-sandboxing.html并发现不建议使用SYSTEM级别的令牌作为基本令牌。
我将从哪里获得基本令牌?
不建议使用SYSTEM级别的令牌作为基本令牌。
更确切地说,不建议将令牌与AuthenticationId == SYSTEM_LUID
一起使用(SYSTEM_LUID
在winnt.h和ntifs.h中定义为{0x3e7,0x0}(
要使用另一个(而不是0x3e7 = 999
(AuthenticationId获取令牌,您可以简单地调用
LogonUserW(L"*", L"*", L"*", LOGON32_LOGON_NEW_CREDENTIALS, LOGON32_PROVIDER_DEFAULT, &hToken)
则已经在返回的令牌上调用CCD_ 5
相关文章:
- Active Directory:从网络服务帐户下运行的Windows服务调用ADsOpenObject时失败
- 如何在c++中使用system()来运行包含空格的python脚本
- System.InvalidCastException - SQL to C++ - safe_cast<float>
- 检测win32服务创建和删除的最佳方法
- 使用 mod_gsoap 部署服务时,如何在 Gsoap 中更改 soap 上下文的模式?
- 当服务中的事件被触发时,如何将响应从服务发送回客户端?
- C++/CLI System.AccessViolation在托管类中调用非托管函数时出现异常
- 来自 Android 应用程序内部的 boost 类型的 boost::wrapexcept<boost::system::system_error> 的未捕获异常
- gRPC 生成的代码缺少服务实现
- C# DLL 从C++应用程序调用 SOAP Web 服务
- 在 Winrt/C++ 中使用应用服务
- 将第二个 GATT 服务添加到 Movesense 容器
- 程序在使用 system() 启动另一个可执行文件时停止
- 为什么我的 DeviceInformation 对象没有 System.Devices.InterfaceClassGuid 属性?
- 从运行服务的应用程序代码中提取窗口句柄
- 为什么"using System;"不被视为不良做法?
- C++ 合并字符串以'system'函数错误
- 对于使用高级服务的分钟数和应付金额,我不断得到相同的数字
- 为什么我不能在Windows Server 2008中使用System()从服务启动批处理文件
- 我可以从Windows服务调用system()吗