Windows平台下的session0创建进程的问题与解决办法
很多博客都有记载如何在session0下创建进程的办法,也就是使用CreateProcessAsUser。但是这个要求服务的进程有SE_INCREASE_QUOTA_NAME和SE_ASSIGNPRIMARYTOKEN_NAME权限。如果设置的登录用户是LocalServer的话,是默认有以上两个权限。但是如果是自己创建的账户,那么是不具有SE_ASSIGNPRIMARYTOKEN_NAME的权限。
查看用户的权限可以通过gpedit.msc工具中,在“计算机配置”-- “Windows设置” -- “安全设置” -- “本地策略” -- “用户权限分配”中查看。或者通过secedit.exe导出本地策略。
手动可以通过以上的方法设置,但是通过程序,在登录账户下的进程是无法设置。但是可以使用secedit.exe进行导出导入进行设置。导出的信息包括以下一部分:
1 [Privilege Rights]
2 SeNetworkLogonRight = *S-1-1-0,*S-1-5-32-544,*S-1-5-32-545,*S-1-5-32-551,*S-1-5-32-581
3 SeBackupPrivilege = *S-1-5-32-544,*S-1-5-32-551
4 SeChangeNotifyPrivilege = *S-1-1-0,*S-1-5-19,*S-1-5-20,*S-1-5-32-544,*S-1-5-32-545,*S-1-5-32-551
5 SeSystemtimePrivilege = *S-1-5-19,*S-1-5-32-544
6 SeCreatePagefilePrivilege = *S-1-5-32-544
7 SeDebugPrivilege = *S-1-5-32-544
8 SeRemoteShutdownPrivilege = *S-1-5-32-544
9 SeAuditPrivilege = *S-1-5-19,*S-1-5-20
10 SeIncreaseQuotaPrivilege = *S-1-5-19,*S-1-5-20,*S-1-5-32-544
11 SeIncreaseBasePriorityPrivilege = *S-1-5-32-544
12 SeLoadDriverPrivilege = *S-1-5-32-544
13 SeBatchLogonRight = *S-1-5-32-544,*S-1-5-32-551,*S-1-5-32-559
14 SeServiceLogonRight = *S-1-5-20,*S-1-5-80-0,*S-1-5-83-0
15 SeInteractiveLogonRight = __vmware__,Guest,*S-1-5-32-544,*S-1-5-32-545,*S-1-5-32-551,*S-1-5-32-581
16 SeSecurityPrivilege = *S-1-5-32-544
17 SeSystemEnvironmentPrivilege = *S-1-5-32-544
18 SeProfileSingleProcessPrivilege = *S-1-5-32-544
19 SeSystemProfilePrivilege = *S-1-5-32-544,*S-1-5-80-3139157870-2983391045-3678747466-658725712-1809340420
20 SeAssignPrimaryTokenPrivilege = *S-1-5-19,*S-1-5-20
21 SeRestorePrivilege = *S-1-5-32-544,*S-1-5-32-551
22 SeShutdownPrivilege = *S-1-5-32-544,*S-1-5-32-545,*S-1-5-32-551
23 SeTakeOwnershipPrivilege = *S-1-5-32-544
24 SeDenyNetworkLogonRight = Guest
25 SeDenyInteractiveLogonRight = Guest
26 SeUndockPrivilege = *S-1-5-32-544,*S-1-5-32-545
27 SeManageVolumePrivilege = *S-1-5-32-544
28 SeRemoteInteractiveLogonRight = *S-1-5-32-544,*S-1-5-32-555
29 SeImpersonatePrivilege = *S-1-5-19,*S-1-5-20,*S-1-5-32-544,*S-1-5-6
30 SeCreateGlobalPrivilege = *S-1-5-19,*S-1-5-20,*S-1-5-32-544,*S-1-5-6
31 SeIncreaseWorkingSetPrivilege = *S-1-5-32-545
32 SeTimeZonePrivilege = *S-1-5-19,*S-1-5-32-544,*S-1-5-32-545
33 SeCreateSymbolicLinkPrivilege = *S-1-5-32-544,*S-1-5-83-0
34
使用账户的SID,更新到SeAssignPrimaryTokenPrivilege字段,该用户即可拥有了SE_ASSIGNPRIMARYTOKEN_NAME权限。获取SID可以通过LookupAccountName函数。完整的用户的SID可通过注册表查看,路径为:HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
整个过程总结一下:
第一步:使用LookupAccountName,通过服务登录账户名,获取该账户的SID;
第二步:secedit.exe导出本地策略,将第一步获取的SID更新到SeAssignPrimaryTokenPrivilege字段;
例如:secedit /export /cfg gp.inf
第三步:使用secedit.exe,将新的配置文件导入到系统;
例如:secedit /configure /db C:\\test.sdb /cfg gp.inf
第四步:重启计算机;
第五步:在服务进程中,使用CreateProcessAsUser进行子进程的创建。
示例代码地址:代码的GetSIDByUserName.cpp和CreateProcessAsUser.cpp
Windows平台下的session0创建进程的问题与解决办法的更多相关文章
- mysql免安装版1067错误终极解决办法|在windows平台下MySql启动时的1067错误的解决方法及反思
[windows事件查看] 我的电脑--此电脑--右键管理--计算机管理--系统工具--事件查看器--Windows日志--应用程序--找错误标志,如下图 [提示] 按部就班,可能并不能解决你的问题, ...
- windows平台下cocos2d-x-3.0beta2创建新项目
我目前使用的版本是cocos2d-x-3.0beta2 前提: 已安装了python2.7.3 已安装了VS2012 打开我的cocos2d-x-3.0beta2所在文件夹F:\Framework\c ...
- 利用zabbix监控ogg进程(Windows平台下)
本文给大家介绍如何监控windows平台下的ogg程序.(注:所有操作都在administrator用户下面进行操作) 监控linux平台下的ogg程序请看:https://www.cnblogs.c ...
- 在Windows平台下Qt的exe报错问题排查步骤
在Windows平台下Qt的exe报错问题排查步骤 工具介绍: 1. Dependency Worker Dependency Worker是一个免费的用具用来扫描任何的32bit 或者64bit 的 ...
- [转]Windows平台下Makefile学习笔记
Windows平台下Makefile学习笔记(一) 作者:朱金灿 来源:http://blog.csdn.net/clever101 决心学习Makefile,一方面是为了解决编译开源代码时需要跨编译 ...
- Windows平台下Git服务器搭建
第一步:下载Java,下载地址:http://www.java.com/zh_CN/ 第二步:安装Java.安装步骤不再详述. 第三步:配置Java环境变量. 右键”计算机” => ”属性” = ...
- Windows 平台下Git 服务器搭建
由于项目中一直在使用git作为版本管理,自己对git的理解.使用都还不是怎么的熟悉,所以准备深入了解一下git及一些常用命令的使用,于是干脆把服务端架上,通过自己的PC作为服务端同时作为客户端的角色进 ...
- 【转】Windows平台下Git服务器搭建
Windows平台下Git服务器搭建 Posted on 2015-05-18 21:29 阿祥当码农 阅读(7637) 评论(0) 编辑 收藏 该文章转自:http://www.codeceo.co ...
- Windows平台下的node.js安装
Windows平台下的node.js安装 直接去nodejs的官网http://nodejs.org/上下载nodejs安装程序,双击安装就可以了 测试安装是否成功: 在命令行输入 node –v 应 ...
随机推荐
- 有关linux日志分析的详细介绍
linux的日志文件可以帮助我们了解系统所处的状态,比如查出哪些用户有登入,及其它安全相关的一些问题. linux下的日志分析. 以下内容,部分参考了:探讨 linux 日志分析 这篇文章. 1.了解 ...
- 《Java并发编程实战》读书笔记(更新中)
一.简介 1.多线程编程要注意的几点: 安全性:永远不发生糟糕的事情 活跃性:某件正确的事情最终会发生(不会发生无限循环或者死锁) 性能:正确的事尽快发生(上下文切换消耗之类的) 二.线程安全 1.为 ...
- KM3
本科:读完一本书,知道book里讲的是什么,带有知识吸收: 硕士:读完一本书,知道book里的内容,而且还能发现相关的问题,带有知识的思考: 博士:读完一本书,知道book里的内容,而且还能发现相关的 ...
- sirius的学习笔记(2)
原文来自网络,侵权删 if both values of in a or expression are true ,Python will select the first one, and the ...
- Speech Patterns (string)
People often have a preference among synonyms of the same word. For example, some may prefer "t ...
- 计算器(delphi)
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- (转)Qt Model/View 学习笔记 (七)——Delegate类
Qt Model/View 学习笔记 (七) Delegate 类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...
- javaweb 在netbeans 上的部署问题
最近用netbeans去部署开发 javaweb程序!现总结一下自己的安装开发过程. 第一,在官网上下载netbeans时,有自带的tomcat,可以直接使用这个服务器,在我这儿这个自带的tomcat ...
- Oracle中对象权限与系统权限revoke
实验: 1.以sys登陆,创建用户test1, test2: 2.授予test1系统权限(带admin option)-connect,授予test1对象权限(带grant option)-selec ...
- MQ 2035(MQRC_NOT_AUTHORIZED)
当使用MQ7.1或7.5时,如果使用MQ管理员账号去连接MQ服务器,可能会报以下的错误,提示你权限不足. 2035 MQRC_NOT_AUTHORIZED 在之前的版本中是没有这个问题的. 原因是在7 ...