再谈关于windows服务中的会话隔离

 

windows service(服务)自windows vista起就工作在session 0,默认账户是SYSTEM账号,这个账户的权限是最高的,高于Administrator。

在windows服务中使用robocopy备份文件的时候,代码中调用cmdkey /add:ip  /user:user /pass:password 来添加windows凭据并期望能在windows凭据管理器里看到它。

然而在robocopy执行的时候却报错,在windows凭据管理器里也看不到添加的凭据。

 

经过检索,发现SYSTEM账户有自己的凭据存储区域,因此在administrator账户下是看不到的。

又得知psexec可以以SYSTEM用户运行执行的进程(这里需要的是cmd),在我的机器上可以,但是在另外一台服务器上却不可以,执行 psexec -i -s cmd.exe 总是报错【找不到网络名】,

经过Google,发现有其他人也遇到过这个问题,解决方案就是修改注册表里的两个表项(如果不存在则创建),如下:

没有的话执行下2句命令

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" /v "AutoShareServer" /t REG_DWORD /d 1 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" /v "AutoShareWks" /t REG_DWORD /d 1 /f

执行命令后重启系统就可以了正常执行提权命令了

记住了。。是重启系统以后。。

 

重启计算机后,执行 psexec -i -s cmd.exe 正常。

输入 cmdkey /list  就看到了SYSTEM账户下的凭据。

 

我用的是  PsExec v2.43

https://learn.microsoft.com/en-us/sysinternals/downloads/psexec

 

 

参考:

https://blog.csdn.net/hongkaihua1987/article/details/85230694

https://cloud.tencent.com/developer/article/2018160

https://www.cnblogs.com/stweily/p/16963220.html

 

 

posted on   崔好好  阅读(45)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
历史上的今天:
2014-07-19 【Linux学习】 写一个简单的Makefile编译源码获取当前系统时间

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示