首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么,当从c#执行mstsc.exe (远程桌面)时,进程HasExited = true并且没有MainWindowHandle

当从C#执行mstsc.exe(远程桌面)时,进程的HasExited属性为true并且没有MainWindowHandle的原因可能是以下几种情况之一:

  1. 远程桌面进程已经执行完毕并退出:当mstsc.exe进程执行完毕后,HasExited属性会被设置为true,表示进程已经退出。此时,由于远程桌面窗口已关闭,所以没有MainWindowHandle。
  2. 远程桌面进程执行过程中发生错误:如果在执行远程桌面过程中出现错误,可能会导致进程意外退出。这种情况下,HasExited属性会被设置为true,表示进程已经退出。由于错误导致远程桌面窗口无法正常打开,所以没有MainWindowHandle。
  3. 远程桌面进程被其他程序或操作系统关闭:有时候,其他程序或操作系统可能会主动关闭远程桌面进程。这种情况下,HasExited属性会被设置为true,表示进程已经退出。由于进程被强制关闭,所以没有MainWindowHandle。

针对以上情况,可以通过以下方法来解决或排查问题:

  1. 检查远程桌面连接参数:确保在执行mstsc.exe时,传入的参数正确无误,包括远程计算机的IP地址、用户名、密码等。
  2. 检查远程桌面连接状态:可以尝试手动使用远程桌面客户端连接到目标计算机,观察是否能够成功建立连接并打开远程桌面窗口。如果手动连接也无法成功,可能是目标计算机的配置或网络问题导致无法建立连接。
  3. 检查权限和防火墙设置:确保执行远程桌面操作的用户具有足够的权限,并且目标计算机的防火墙设置允许远程桌面连接。
  4. 检查远程桌面服务状态:确保目标计算机上的远程桌面服务正在运行,并且没有被禁用或配置错误。

如果以上方法无法解决问题,建议进一步查看相关日志或使用调试工具来定位具体的错误原因。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

几个窃取RDP凭据工具的使用测试

应用场景 当我们拿到某台机器就可以用以下几个工具来窃取管理员使用mstsc.exe远程连接其他机器所输入的RDP用户密码等信息,其原理是将特定的恶意dll注入到mstsc.exe实现窃取RDP凭据;...RdpThief RdpThief本身是一个独立的DLL,注入mstsc.exe进程,将执行API挂钩、提取明文凭据并将其保存到文件中。...rdpthief_enable命令启用即可,目标主机进程列表中有mstsc.exe进程将注入shellcode。...RdpThief使用detours库开发,通过挂钩以下几个APIRDP客户端提取明文凭据,可以使用API Monitor工具监控mstsc.exe进程在登录过程中调用了哪些API?...最后在RDP远程桌面连接输入用户、密码就会在C:\Users\Public\Music目录下生成一个RDPCreds.txt文件存储窃取到的RDP凭据,但是只有用户和密码,没有IP地址。

22410

内网渗透|获取远程桌面连接记录与RDP凭据

与 lsass.exe 一样,RDP 协议相关的进程例如 svchost.exe、mstsc.exe 等也在收集凭证的范围内,并且从这些进程中收集凭据不需要管理员特权。...许多服务通过注入到该程序中启动,所以当我们查看进程列表时会有多个该文件的进程。 当用户在目标主机上开启运行 RDP 远程桌面并通过远程桌面连接进行身份验证,终端服务会由 svchost 进程托管。...mstsc.exe 并通过 RDP 协议远程连接到其他系统,将创建 mstsc.exe 进程。...\Invoke-DllInjection.ps1Invoke-DllInjection -ProcessID 1204 -Dll RdpThief.dll 管理员使用远程桌面并输入密码便会抓取到 RDP...如果 mstsc.exe 被终止,Server 也会继续运行,并且等待 mstsc.exe 进程再次重新启动时会尝试再次进行 Hooking。这解决了 RdpThief 要求进程已经存在的限制。

4.1K10

内网渗透|获取远程桌面连接记录与RDP凭据

与 lsass.exe 一样,RDP 协议相关的进程例如 svchost.exe、mstsc.exe 等也在收集凭证的范围内,并且从这些进程中收集凭据不需要管理员特权。...许多服务通过注入到该程序中启动,所以当我们查看进程列表时会有多个该文件的进程。 当用户在目标主机上开启运行 RDP 远程桌面并通过远程桌面连接进行身份验证,终端服务会由 svchost 进程托管。...RdpThief •项目地址:https://github.com/0x09AL/RdpThief 当用户打开 Windows 远程桌面 mstsc.exe 并通过 RDP 协议远程连接到其他系统,将创建...\Invoke-DllInjection.ps1Invoke-DllInjection -ProcessID 1204 -Dll RdpThief.dll 管理员使用远程桌面并输入密码便会抓取到 RDP...如果 mstsc.exe 被终止,Server 也会继续运行,并且等待 mstsc.exe 进程再次重新启动时会尝试再次进行 Hooking。这解决了 RdpThief 要求进程已经存在的限制。

7K30

C# 关于进程回收管理的一款工具设计与分享

设计初衷 在使用 COM 模式操作 OFFICE 组件的开发过程中,操作完相关文档后,在某些情况下仍然无法释放掉 Word 或 EXCEL 等应用进程,因此根据进程活动情况或时间点范围开发了一个强制杀掉指定进程名称的...,以进程时间计算(默认) 2、ByNowTime,以启动当前时间计算 6 回收动作 共有两种方式: 1、Kill,直接关闭释放进程(默认) 2、Command,执行命令行操作 7 相关动作命令 第6项回收动作为...Command,此项为必输入项,表示要执行的 WINDOWS 命令行操作 8 重新启用命令 设置此项,则当关闭或执行动作命令后,尝试执行此命令 9 计划强制关闭时间(小时) 可以设定小时:分:秒(这个值前缀需要设置一个有效日期...>_gcSpan) { _kill=true; } } //如果初期标识为可以关闭该进程并且策略为强制性关闭,则进行内存判断...+ "进程ID:"+process.Id.ToString()+ "进程主窗口句柄:"+process.MainWindowHandle.ToString()

8010

横向渗透之

(2)进程查看 tasklist /svc | find "TermService" # 找到对应服务进程的PID netstat -ano | find "3220" # 找到进程对应的端口号 2....taskmgr任务管理器查看,同一权限下可以相互注 销会话。...远程用户登录使用与原系统相同的账户,原系统将切换到登陆页面,并会看到登陆的机器名 ? 如果使用不同的账户,原系统将弹窗提示其他用户已登陆到此计算机 ?...关闭 RDP 安全认证 服务器开启安全认证,必须先通过登陆密码才能进入远程桌面;如果服务端用的是 不安全的认证方式,即可以先远程链接后登陆可以触发Shift后门 ?...如何设置不安全的连接,去掉”仅允许使用网络级别的身份验证的远程桌面的计算机连 接”选项,需要注意的是先上系统后验证也会在计算机本地留下一定的进程、日志。 ? 2.

2.4K10

内网渗透|基于文件传输的 RDP 反向攻击

如果我们通过相应的设置,在客户端连接远程主机的一瞬间,将远程主机上早已准备好的木马程序复制到客户端主机的启动项中,那么客户端主机下一次启动便会执行该木程序,客户端主机便可以成功上线。...Mstsc 挂载盘符 这里利用了Windows 远程桌面客户端 mstsc.exe 连接的一个选项: image-20210712211001617 连接目标主机时,如果像上图那样在 mstsc.exe...我们的思路是,在远程主机的启动项中写入一个 .bat 脚本(run.bat),一个客户端用户通过远程桌面连接到这个远程主机时,在登陆之后会立即执行这个启动项中的 run.bat 脚本。...假设此时管理员好像通过远程桌面去管理这个 Windows Server 2012,他连接上远程桌面,位于 Windows Server 2012 启动项中的 run.bat 就会成功执行,如下所示:...就算用户真的没有开启驱动器,我们还可以用一些比较猥琐手段,比如在 run.bat 脚本找不到挂载磁盘的情况下,直接结束 rdpclip.exe 进程使的管理员无法使用剪切板功能实现本地主机与远程主机之间的复制粘贴

2.8K20

内网渗透测试:初探远程桌面的安全问题

: RDP 劫持实现未授权登录 对于开启远程桌面服务的 Windows 系统,有多个用户登录该系统,会产生多个会话,如下图: 其中,管理员用户 Administrator 为本地登录,用户 bunny... RDP 爆破走不通,我们不妨尝试一下中间人。...我们的思路如下: 当我们启动TrustedInstaller服务 会启动进程TrustedInstaller.exe, 该程序的权限为NT SERVICE\TrustedInstaller,那么我们就可以窃取该进程的令牌...: use incognitops # 找到TrustedInstaller的进程PID,这里为3476steal_token # 进程中窃取令牌getuid 此时便可以对...此时,我们开启目标主机的远程桌面,当我们点击左下角的辅助功能按钮后,成功弹出了 CMD 窗口,并且为 SYSTEM 权限的: 不仅是 CMD,我们还可以换成任意的 Payload 用于钓鱼,受害者使用响应功能便会触发

3.5K40

C++实现远程桌面集群软件

: typedef struct _SERVER_ { CString name; CString ip; CString port; CString user; //map中key为结构体需要重写...的窗体根本无法加载,在window7上跟踪dlg.DoModal()到occcont.cpp第925行 IsWindow(pTemp->m_hWnd) 引发了一个断言终止,往前分析看,原来是MSTSCAX并没有加载起...)在win7生成的RDP文件无法正常运行 按照网上提供的rdp文件的格式,并运用API:CryptProtectData获得远程加密密码,导出rdp文件,在win8完美运行,在win7上并非正常运行,执行...mstsc.exe以后未完成自动登陆,并未从已生成的rdp文件读取任何信息,如图: 我很好奇为什么在win8可以win7却不行,在用winhex查看rdp之后我发现我在rdp文件开头漏掉了FFEF,说明...RDP是以Unicode编码存储的,这也说明,win8读取存储文件默认以Unicode编码来读取,win7在未找到FFEF,不会以Unicode读取。

2.1K20

dotnet 设置 X11 建立窗口之间的父子关系

所有者窗口最小化时,它所拥有的窗口也会被隐藏。 所有者窗口被销毁,它所拥有的窗口也会被销毁。...父窗口被隐藏,它的所有子窗口也会被隐藏。 父窗口被销毁,它所拥有的子窗口也会被销毁。...核心 C# 代码如下 // 设置父子关系 XReparentWindow(display, childWindowHandle, mainWindowHandle, 0,...具体来说,如果指定的窗口已经被映射到屏幕上,XReparentWindow 会自动执行 UnmapWindow 请求,将其当前层次结构中移除,并将其插入到指定父窗口的子级中。...通常情况下,窗口管理器客户端应该忽略此窗口,如果此成员设置为 True。最后,如果原始窗口已经被映射,X 服务器会自动对其执行 MapWindow 请求。

11410

.NET Core 跨平台执行命令、脚本

arguments:在进程启动传递给应用程序的命令行参数。 (2)主要属性 CreateNoWindow:指示是否在新窗口中启动进程。...UseShellExecute:指示是否使用操作系统shell启动进程。如果启动进程使用shell,则为true; 如果应该直接执行文件创建进程,则为false。 默认值是true。...ExitTime:获取关联进程退出的时间。 StartTime:获取关联进程启动的时间。 HasExited:获取一个值,指示相关进程是否已终止。...可以看到我们获取执行输出是没有问题的,但是获取进程开始执行出错了,无法进程检索该信息,现在我们移除统计执行时间的代码: ? 这下我们执行没有问题了。...直接执行命令: ? git Clone代码,执行结果如下: ? 可以看出我们在OSX上执行没有问题的。

1.9K20

如何防止程序多次运行

,如果操作系统没有运行该程序进程,则运行这个程序。...从而这个问题就转换为判断该程序进程的数量问题了,此时我们就想.NET 有没有提供一个类可以获得该进程名的数量,如果数量大于1则说明该程序已经运行了,小于就表明程序没有运行。...——我们能不能让运行一个进程的时候,让该进程具有一个变量,该变量是唯一标识该进程点击exe文件预创建一个改程序进程,我们去判断这个变量是否存在,如果存在就说明这个进程已经运行,从而退出本次的程序,...从上面的分析过程中可以看出,我们解决这个问题的思路就是进程入手,第三点的思路就是直接进程数量入手,而第四点思路也是进程入手,只是做了一个变换罢了,让一个变量来唯一标识一个进程变量存在说明该程序进程也运行了...= currentproc.Id) { // 如果进程的句柄为0,即代表没有找到该窗体,即该窗体隐藏的情况

1.8K30

C# 开发技巧]如何防止程序多次运行 线程 进程

,如果操作系统没有运行该程序进程,则运行这个程序。...从而这个问题就转换为判断该程序进程的数量问题了,此时我们就想.NET 有没有提供一个类可以获得该进程名的数量,如果数量大于1则说明该程序已经运行了,小于就表明程序没有运行。...——我们能不能让运行一个进程的时候,让该进程具有一个变量,该变量是唯一标识该进程点击exe文件预创建一个改程序进程,我们去判断这个变量是否存在,如果存在就说明这个进程已经运行,从而退出本次的程序,...从上面的分析过程中可以看出,我们解决这个问题的思路就是进程入手,第三点的思路就是直接进程数量入手,而第四点思路也是进程入手,只是做了一个变换罢了,让一个变量来唯一标识一个进程变量存在说明该程序进程也运行了...= currentproc.Id) { // 如果进程的句柄为0,即代表没有找到该窗体,即该窗体隐藏的情况

1.5K30

Windows服务器核心(Server-Core)安装与基础配置使用

3.控制面板选项control也没有了。 4.Window Internet Explorer也没有了。....启用Server的远程桌面 描述: 虽然 Server Core 不提供mstsc.exe 远程桌面连接工具但可以提供远程连接的服务,便于我们客户端可以使用远程桌面工具进行连接。...但默认情况下Windows Server 2019将外部远程桌面访问设置为禁用作为安全措施,我们可以轻松地PowerShell中启用它。...# - 4.在我们的客户端执行mstsc.msc进行连接到Core服务器中 mstsc.exe /admin WeiyiGeek.Core-Server 5.启用Windows PowerShell...,若要使用 SSH 服务器轻松进行密钥身份验证,请在权限提升的 PowerShell 提示符下运行以下命令: # 已创建了 OpenSSHUtils PowerShell 模块来正确设置密钥 ACL,并且应当将该模块安装在服务器上

6.7K10

【解析向】腾讯云的Windows Server日志配置收集工具是个什么鬼?(3)

无非就是系统卡顿/服务异常(假死/夯住)/系统被入侵或者中毒,则这四个场景的核心进程属性值应该关心什么呢?...首先是Name,这个Name是软件开发者在编译赋予的,通常指的是进程名而非软件名(与软件下所对应的具体可执行服务程序对应),通常为何关心这个呢?...其次是Handle(HandleCount ),Handle,类似Linux下的file-max(proc/sys/fs/file-max),系统异常夯住或者无法打开新的窗口或者创建新的进程,就要看看是否某个进程...BUG,就是申请VM(虚拟内存,后面讲到)后并没有释放,导致每次执行就会重复调起多个句柄来记录关系,当然勒索木马并不会考虑性能与稳定性。...若知道对应的进程情况,其实日志收集工具所呈现出来的内容仅仅只能知晓哪里可能出了问题,但是具体问题的影响以及相关情况建议使用有号称Windows系统瑞士军刀之称Windows Sysinternals中的

2.8K130

RDP攻击 - 允许攻击者反向通信的多个关键漏洞

通过利用远程代码执行和内存损坏漏洞,攻击者可以服务器连接回客户端计算机,研究人员将其称为反向RDP攻击。 由Microsoft开发的RDP客户端,被用户号码用户和IT专业人员广泛使用。...RDP攻击 - 以客户为目标 研究人员开始使用开源RDP客户端进行测试 FreeRDP - (开源RDP)内存损坏和远程代码执行 rdesktop - (开源RDP)内存损坏和远程代码执行 mstsc.exe...研究人员分析的下一个RDP客户端是Mstsc.exe微软的RDP客户端Build 18252.rs,研究人员使用微软的RDP客户端测试了所有开源客户端的PoC并且没有崩溃,它安全关闭。...路径遍历漏洞 客户端与恶意服务器建立RDP连接,如果他们使用“复制和粘贴”,则恶意服务器可以将任意文件丢弃到客户端计算机上的任意文件位置。...以下是Checkpoint发布的视频PoC,“我们简单地杀死了rdpclip.exe,并通过向每个”复制和粘贴“操作添加额外的恶意文件来生成我们自己的进程执行路径遍历攻击。

1.4K20

C#的Process类调用第三方插件实现PDF文件转SWF文件

在.NET平台中,对C#提供了一个操作对本地和远程的访问进程,使能够启动和停止系统进程。这个类就是System.Diagnostics.Process,我们首先来了解一下该类。...一.解析System.Diagnostics.Process类       在C#中使用Process类可以提供对本地和远程的访问进程,使能够启动和停止系统进程并且该类可以对系统进程进行管理。...如果启动了进程资源,则为 true;如果没有启动新的进程资源(例如,如果重用了现有进程),则为 false。      ...Kill 强制终止进程,Kill 方法将异步执行。 在调用 Kill 方法后,请调用 WaitForExit 方法等待进程退出,或者检查 HasExited 属性以确定进程是否已经退出。      ...StartInfo 表示用于启动进程的一组参数。 调用 Start ,StartInfo 用于指定要启动的进程。 唯一必须设置的 StartInfo 成员是 FileName 属性。

1.6K60

内网渗透|谈谈HASH传递那些世人皆知的事

Hash 为:ab89b1295e69d353dd7614c7a3a80cec 然后,在 Windows 7 上用 mimikatz 将获取的 Administrator 的 Hash 添加进 lsass 进程中...使用 Invoke-SMBExec 脚本 该脚本通过 SMB 在目标主机创建服务来执行命令,该脚本执行命令没有回显,我们可以用它执行一些木马程序。...本地帐户或在用户名后使用@domain不需要此参数。•-Hash:用于身份验证的NTLM密码哈希(格式:LM:NTLM 或 NTLM)。•****-Command:**在目标上执行的命令。...使用 Invoke-SMBClient 脚本 该脚本支持SMB1,SMB2,SMB signing,如果只有 SMB 文件共享的权限而没有远程执行权限的话,可以使用这个脚本列举远程主机上的共享目录、上传或下载文件...然后再攻击机上使用 Mimikatz 进行哈希传递,大致原理就是哈希传递成功后执行 mstsc.exe /restrictedadmin 来打开远程桌面: privilege::debugsekurlsa

1.5K20

域渗透-横向移动命令总结

Certutil提供了网络中下载文件的功能,测试人员可以在远程主机上执行Certutil命令,控制其下载预先部署在可控服务器上的恶意文件,如攻击载荷等。...,注意"="后需要有一个空格, #在远程主机上创建一个名为schtasksname的系统服务,服务启动执行上传的攻击载荷 sc \\10.10.10.19 start schtasksname...,远程主机成功上线 远程桌面 执行以下命令: #若字段值为0,则说明RDP服务已启动;若为1,则说明RDP服务已禁用。...客户端执行命令,服务端通过PSEXESVC服务启动相应的程序执行命令并回显数据。运行结束后,PSEXESVC服务会 被删除。...MSI; 二是远程部署WMI事件订阅,在特定条的事件发生触发攻击。

2.2K10

C# 实现 Linux 视频聊天、远程桌面(源码,支持信创国产化环境,银河麒麟,统信UOS)

(2)收到来自其他在线用户的视频聊天邀请,可接受或拒绝对方的请求。 (3)接受其他在线用户的视频聊天邀请,即可开启视频聊天。 2....远程桌面 (1)每个登录的用户都可向其他任意在线用户发送远程桌面请求;对方未响应时,可主动取消远程桌面请求。 (2)收到来自其他在线用户请求控制桌面,可接受或拒绝对方的请求。...(3)发送方收到其他在线用户同意控制其电脑,即可开启远程桌面连接。 (4)被控端和主控端都可主动断开远程桌面连接。 二.开发环境 1.开发工具: Visual Studio 2022 2....,大家文末下载源码并对照着源码看,会更清楚些。...实现远程桌面 远程桌面的请求/应答逻辑几乎与视频聊天请求/应答逻辑是一模一样的。这里就不再罗列响应的代码了。 (1)收到对方的远程桌面控制请求,将显示请求窗口。

35170
领券