如何从网络请求以管理员身份运行 ftp 部署的 exe?

Posted

技术标签:

【中文标题】如何从网络请求以管理员身份运行 ftp 部署的 exe?【英文标题】:How to run ftp-deployed exe as admin from web request? 【发布时间】:2017-05-10 01:30:27 【问题描述】:

目标: 我定期通过 FTP 将新的 .exe 文件上传到 Windows Server 2003,我想通过点击同一服务器上网站的 Url 手动运行它。 exe 需要在管理员帐户下运行,而不是NETWORK SERVICE 帐户。

我目前取得的成就: 我已经能够通过 Web 请求在服务器上的 Admin 帐户下成功运行诸如记事本之类的应用程序,方法是使用以下任何一种:

PsExec, .net process.Start() 提供给process.StartInfo 的凭据,甚至 通过模拟管理员然后使用 process.Start 没有凭据 (http://www.f4cio.com/programmatically-impersonate-in-csharp)

问题: 上述方法运行我的 exe,但任务管理器或对 System.Security.Principal.WindowsIdentity.GetCurrent().Name 的调用显示它在 NETWORK SERVICE 下运行。

我怀疑这个文件添加了安全限制,因为它来自 ftp 链接。在文件属性中检查 run-as-administrator 不是一个选项,因为文件将被定期替换并且所有内容都需要自动化。此外,手动服务器配置应该是最少的或理想情况下不存在。纯代码单网页解决方案是理想的。编辑该 asp.net 网页和 exe 都可以。 (我尝试了一些 exe 自重启)。

【问题讨论】:

【参考方案1】:

对此不确定,但我怀疑这与您在NETWORK SERVICE 用户下运行的网站有关。无论您的网站用户拥有什么特权,当您尝试运行可执行文件时,可能会授予/传递相同的特权。

此服务器是在内部网络上还是以其他方式受到保护? (我应该希望如此!)。如果是这样,您可以尝试将运行该网站的 App Pool 更改为管理员帐户(在 IIS 中,右键单击运行该站点的 App Pool,选择 Advanced Settings,然后查找 Identity 设置) .如果我是对的,那也将允许您以管理员身份运行您的可执行文件。

但是请注意,这可能会增加您的设置的安全风险: 允许您的网站在管理员帐户下运行意味着如果有人能够渗透任何安全措施,则可以更轻松地访问您的整个服务器你已经到位。确保对该服务器的访问受到严格限制,并且最好确保它反过来无法访问其他系统,因为这反过来又会使它们通过扩展变得容易受到攻击。

【讨论】:

我的想法是能够将单个 Web/触发页面包含到任何站点中。如果没有人想出其他解决方案,我将采用这种方法,我为此触发页面有单独的站点和应用程序池。谢谢。

以上是关于如何从网络请求以管理员身份运行 ftp 部署的 exe?的主要内容,如果未能解决你的问题,请参考以下文章

如何以管理员身份执行章鱼部署步骤以调用 Update-SPSolution

如何以管理员身份从 Windows 命令行运行命令?

如何以不同用户和管理员身份从命令提示符运行程序 [关闭]

如何从 vbs 以管理员身份运行 vbs?

如何从命令提示符以“以管理员身份运行”运行应用程序? [关闭]

万字解析——区块链hyperledger fabric2.2部署实战教程