有没有什么办法可以以另一个当前登录的用户身份运行应用程序而不需要其密码?

有没有什么办法可以以另一个当前登录的用户身份运行应用程序而不需要其密码?

我想通过局域网使用“psexec”以同时登录系统的另一个用户的身份运行命令。

换句话说:我想使用内置管理员帐户凭据的“psexec”在 Bob 的桌面上运行程序。该程序需要相信它是由 Bob 使用其凭据启动的。由于我使用的是管理员帐户,因此我想绕过 Bob 密码的需要来执行此操作(也许可以使用“runas”)。

编辑1

澄清:

由于我拥有管理员帐户,因此我已经获得系统访问权限。

我不想在后台一直在运行代理/服务/exe。

这是一个家庭设置。

我在想这样的事情:http://reboot.pro/files/file/237-runassystem-and-runfromtoken/但适用于任何其他用户。

我希望能够启动一个程序,比如游戏或邮件客户端,将文件保存在每个用户路径中。**因此,以管理员身份运行将不会有效,因为该程序将加载管理员的数据配置文件,而不是 Bob(已登录)的数据配置文件。

我的最终目标是能够启动“whoami”命令并让它说我是已登录的用户。

更新

我已经能够以 SYSTEM 身份获取“cmd.exe”,然后使用 RunFromToken 以我的帐户(受密码保护)身份获取一个实例。我将进一步测试这一点。

答案1

不,这会完全绕过个人安全点。

不过,我要补充一点,如果您有权访问 SCCM 等部署系统,则可以仅在用户登录时运行包,然后它将在用户的上下文中运行。您还可以将包作为登录脚本的一部分运行,该脚本也将在用户的上下文中运行。

答案2

就通过网络模拟用户而言,所有这些答案都是正确的。但是,在特定条件下,您可以模拟本地用户而无需密码:

  1. 您必须是本地管理员组的成员。
  2. 您只能冒充当前登录系统的其他用户
  3. 用户模拟仅限于本地系统。如果不先以本地管理员组成员身份登录到远程系统,则无法模拟远程系统上的用户。

这是允许的,因为 Windows 将模拟本地登录用户的权限委托给系统和本地管理员。您可以在本地组策略 > 本地策略 > 用户权限分配 > 身份验证后模拟客户端下找到有关此权限的信息。

我知道一个可以让你做到这一点的工具是 Process Hacker 2。以管理员身份运行该工具,然后找到以你想要模拟的用户身份运行的进程。右键单击它,选择杂项 > 以此用户身份运行...,然后输入你想以该用户身份运行的二进制路径,例如 cmd。然后 CMD 将以该用户身份打开,而不会提示输入该用户的密码。

答案3

你不能这么做,而且理由非常充分。

如果可能的话,这将是任何病毒的圣杯。Windows
计算机上始终有许多进程在多个管理员帐户下运行(例如 LocalSystem 和 NetworkSystem 帐户,仅举两个例子)。
如果您的请求可以实现,则任何任意进程都可以将新进程插入这些帐户:您绝对不可能保护您的系统免受病毒侵害。(任何任意进程的字面意思就是:这也包括病毒!)

其他问题包括隐私和责任。
如果你可以伪造操作,就好像它是由另一个用户执行的,那么你就可以获取其他用户的数据。隐私就不复存在了。
而且再也没有办法分辨某件事是该用户实际做的还是有人冒充他/她做的。这意味着你再也无法可靠地追踪谁做了什么。你失去了责任感,而责任感在必须遵守合规性规定的系统中是一件大事,比如医疗系统。

因此,这些都是将账户环境彼此隔离的很好的理由。(还有很多,但这超出了这个问题的范围。)

答案4

正如其他答案所指出的,你可能真的不想这样做。如果这么简单,我可以强迫用户加载一些非法网站,然后他们会被解雇和逮捕。即使是管理员也不应该拥有这种神一般的权力。

如果您真正想要做的只是找出谁当前登录到计算机(本地或远程),请考虑使用 MS TechNet(以前为 SysInternals)的“psloggedon”实用程序:https://technet.microsoft.com/en-us/sysinternals/bb897545.aspx

如果你仍然需要以用户身份运行任务,请查看登录时运行的任务。当然,出于安全原因,这仍然会追溯到你,但 Windows 仍然会跑步执行任务时,就好像您是该用户一样。

相关内容