操作系统启动文件()使用RDC

2024-04-27 05:18:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我的windows系统上有一个cherrypy服务器。它处理在默认编辑器中打开文件的请求。(请求只包含文件路径)

当两个用户登录到同一个Windows服务器(使用RDC)时,对于第二个用户发出的打开文件请求,cherrypy将在first users桌面中打开该文件(因为cherrypy服务器是由第一个用户启动的)

有解决办法吗?我可以将用户信息与操作系统启动文件()调用以便在第二个用户桌面上打开文件?在


Tags: 文件用户路径服务器信息windows系统编辑器
1条回答
网友
1楼 · 发布于 2024-04-27 05:18:53

简单的回答是:不容易。在

{{a1}的调用意味着^没有功能。在

您可以很容易地让每个用户在自己的帐户下,在任何他想要的会话上启动自己的web服务器副本。当然,这意味着您必须使用不同的端口号(或者在登录时随机分配端口号,然后以某种方式显示),但这并不可怕。在


首先,您需要直接与win32api对话(理想情况下通过pywin32,但是如果您真的想使用ctypes,可以)。在

接下来,用户可能连接到web服务器,但没有连接到RDC服务器,或者更糟的是,可能有三个不同的RDC会话。那么,“第二个用户的桌面”到底是什么意思?如果任意挑选一个是可以接受的,如果没有就失败了,这是一个合理的答案。这一部分非常简单:您可以使用Windows Terminal Server API(现在是远程桌面服务的一部分,但大多数函数仍然以WTS开头)来枚举会话并找到第一个与您的用户匹配的WTS_SESSION_INFO_1。在

现在,您只需要在该会话中为该用户获取一个访问令牌或模拟令牌,这样就可以调用^{}^{}。(您不能使用CreateProcessWithLogon,因为这不会出现在他们的RDS会话中,它将在该用户的新会话中,但是连接到您的RDS会话,这是双重无用的。)

那么,你怎么得到这些东西呢?在这里你可以选择一个巨大的安全漏洞,如果你不太小心,不知道你在做什么,或者一个不同的安全漏洞,如果你不非常小心,不知道你在做什么。在

如果你不在乎你的终端服务器被黑客攻击,你可以运行你的服务器(或者,希望是你的服务器与之对话的一个最小的辅助工具),并调用^{}。这个其实很简单,只要读了这句话,你的电脑就成了别人垃圾邮件僵尸网络的一部分。在

如果您不在乎用户的帐户被黑客入侵,您可以通过web服务器传递他们的凭据,这样您就可以登录并^{}获取用户令牌。有一些方法可以在不通过web以明文形式传递密码的情况下实现这一点,但这并不重要。因为下一步是创建一个连接到用户现有会话的新会话,并且要从外部执行此操作,即使您已经以用户身份登录,也需要他的用户名和密码。不管怎样,你只要在新的会话中运行这个应用程序,他就会在他现有的会话中看到它,从此以后每个人都过着幸福的生活,尤其是那个刚刚检查过你的朋友在PayPal上使用的密码与他为你的服务器使用的密码相同的人,并收取了价值17000美元的费用。在

如果这还没有吓跑你,在一个没有连接到互联网的局域网上创建一些虚拟机,然后开始玩这些东西,这是非常有趣的,你会学到很多,理想的情况下,你可以写一些你想做的事情,并最终说服自己,你不会在任何地方泄露代币你准备好部署它了。在

相关问题 更多 >