再谈关于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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
2014-07-19 【Linux学习】 写一个简单的Makefile编译源码获取当前系统时间