linux – 使用winexe启动Windows进程

当我在 Windows上时,我使用 PsExec在其他Windows机器上启动进程.我现在有一个案例,我想从Linux机器上做到这一点.

幸运的是有一个小程序,它应该像PsExec一样工作,只适用于Linux-World.我没有安装它的问题,我能够启动像cmd.exe这样的进程.

问题是我无法启动Windows用户可见的进程.如果我启动calc.exe,我可以看到它是在任务管理器中启动的,但是没有GUI.

题:
如何启动Windows机器上实际可见的进程?

解决方法

How is it possible to start processes that are actually visible on the
Windows machine?

一个好的开始是在当前登录用户的会话中创建进程.如果只有一个登录,那通常是会话1.如果有多个人登录,则可能是会话2或3或27.您必须首先在wtsapi32.dll中运行代码,以查找谁连接到哪个会话.在Windows的现代版本中,会话0保留用于服务和系统功能.

您正在会话0中启动进程,因此没有人可以看到它.

psexec可以启动一个远程进程,让你选择一个不同的会话来启动它,但我不知道任何Linux等价物.我查看了winexe的手册页,它似乎没有那个选项.

编辑:微软的官方立场是远程启动交互式进程是一个太大的安全风险,因此他们会阻止你这样做……但如果我们愿意变脏,我们仍然可以解决它:

schtasks.exe /create /S COmpuTERNAME /RU "NT AUTHORITY\SYstem" /RL HIGHEST /SC ONSTART /TN "RemoteProcess" /TR "program.exe \"argument 1\" \"argument 2\""

schtasks.exe /Run /S COmpuTERNAME /I /TN "RemoteProcess"

schtasks.exe /Delete /S COmpuTERNAME /TN "RemoteProcess"

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...