c-使用模拟令牌访问远程资源



我想在域环境中模拟windows服务器(2012/2016/2019(上的用户。这应该由具有SE_DEBUG和SE_IMPERSONATE权限的管理员帐户执行。

GetAccessToken()
DuplicateTokenEx()
CreateProcessWithTokenW(token, LOGON_NETCREDENTIALS_ONLY, L"c:\windows\system32\cmd.exe", NULL, 0, FALSE, NULL, &si, &pi)

到目前为止一切正常。

但我必须在模拟用户/令牌的上下文中读取另一台服务器上的文件共享。在localhost上,创建的进程拥有原始用户/进程的所有权限。如果试图访问网络上的文件共享或任何其他服务器;访问被拒绝";。

我发现,连接到另一个系统所需的系统上是否有用户凭据,这取决于登录类型。(双跳(但是,如果模拟的进程是从交互式登录(尝试RDP und runas.exe(启动的,那么远程系统上似乎没有权限。我检查了令牌GetTokenInformation((的登录类型以获取会话id,然后调用LsaGetLogonSessionData((以获取字段LogoType。这与从GetTokenInformation获取TokenOrigin变量之间的区别在哪里?

哪种配置允许我使用模拟的令牌访问远程共享?

模拟管理员和非管理员没有区别,但LOCAL管理员不一定可以访问另一台机器。域用户会这样做。

最新更新