zoukankan      html  css  js  c++  java
  • Windows平台下的session0创建进程的问题与解决办法

    很多博客都有记载如何在session0下创建进程的办法,也就是使用CreateProcessAsUser。但是这个要求服务的进程有SE_INCREASE_QUOTA_NAME和SE_ASSIGNPRIMARYTOKEN_NAME权限如果设置的登录用户是LocalServer的话,是默认有以上两个权限。但是如果是自己创建的账户,那么是不具有SE_ASSIGNPRIMARYTOKEN_NAME的权限。

    service

        查看用户的权限可以通过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可通过注册表查看,路径为:HKLMSOFTWAREMicrosoftWindows NTCurrentVersionProfileList

     

    整个过程总结一下:

    第一步:使用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

  • 相关阅读:
    原生j获取元素的几种方法
    git 解决每次更新代码都要输入用户名密码
    npm/ yarn设置淘宝镜像
    git clone 失败: fatal: unable to access 'https://github.com/liufeifie/xxx.git/': Failed to connect to github.com port 443: Timed out
    git注意事项之|解决remote: User permission denied 问题
    js-input file 文件上传(照片,视频,音频)
    设置 npm 源为淘宝镜像
    vue-cli3安装过程
    PowerShell yarn : 无法加载文件 C:UserspcAppDataRoaming pmyarn.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参 阅 ....
    http协议简介
  • 原文地址:https://www.cnblogs.com/navono007/p/6058680.html
Copyright © 2011-2022 走看看