是否可以在不使用服务的情况下以SYSTEM用户身份运行进程?

时间:2019-06-21 10:23:16

标签: winapi service system teamviewer

我需要以SYSTEM身份运行我的应用程序,但是没有找到一种无需服务即可执行此操作的方法。 TeamViewer的仅运行版本执行此操作,似乎没有执行此操作(已通过ProcessExplorer检查)。它在“本地用户帐户”中运行一个提升的可执行文件,该文件会生成两个在SYSTEM帐户下运行的子进程。

基本上,问题是:TeamViewer为实现这一目标正在做什么?

  • 我知道CreateProcessAsUser可以完成此工作(以另一个用户身份启动进程),但是它需要一些特权才能成功运行,否则会失败,并显示1314-ERROR_PRIVILEGE_NOT_HELD。很好,我应该设置所需的特权,但管理员用户没有SeTcbPrivilege,这对于调用提到的WinAPI函数至关重要。只有SYSTEM进程才具有该特权,而我的主要问题是启动一个特权,因此我刚遇到一个悖论。

  • 我知道PSExec可以轻松做到这一点(通过Administrator CMD,您可以以SYSTEM用户身份启动任何进程),但是此工具正在使用服务。

  • 我试图查看TeamViewer的主要可执行文件(启动两个SYSTEM进程),但是我发现只有CreateProcess调用,该调用通过继承调用进程的安全上下文来生成一个进程,因此可能不是有帮助...

我不是要完全避免使用服务,但首先我想确保没有其他可能的方法可以做到这一点(在这种情况下,我想证明TeamViewer也会对服务进行处理)。

0 个答案:

没有答案