CHQ1d 发布于2022年11月8日 分享 发布于2022年11月8日 0x00 前言 在渗透测试中,经常联系Windows server的远程桌面服务,通过接口管理服务器。但是,对于常见的Windows系统,在某些情况下也需要界面操作。 虽然我们可以通过编写程序(抓取桌面信息、压缩传输、发送鼠标键盘消息等)来实现界面操作。),如果能使用远程桌面服务岂不是更方便高效? 那么,对应非服务器版本的Windows系统,使用远程桌面服务需要注意哪些问题呢?本文将对它们逐一进行分析和介绍。 0x01 简介 本文将介绍以下内容: 一种打开远程桌面的方法 使用mimikatz支持远程桌面多用户的原理 改进的想法 测试工具rdpwrap 0x02 开启远程桌面的方法 1、查询系统是否允许3389远程连接 REG QUERY ' HKEY _ LOCAL _ MACHINE \ SYSTEM \ current Control set \ Control \ Terminal Server '/v fdenyts connections 1表示关闭,0表示打开。 要查看远程连接的端口: REG QUERY ' HKEY _ LOCAL _ MACHINE \ SYSTEM \ current Control set \ Control \ Terminal Server \ win stations \ RDP-Tcp '/v端口号 端口格式为十六进制,如下图所示 0xd3d转换成十进制的33389。 2、本机开启3389远程连接的方法 方法1:通过cmd REG ADD ' HKLM \系统\当前控制集\控制\终端服务器'/v fDenyTSConnections/t REG _ DWORD/d 0000000/f REG ADD ' HKEY _ LOCAL _ MACHINE \ SYSTEM \ current Control set \ Control \ Terminal Server \ win stations \ RDP-Tcp '/v port number/t REG _ DWORD/d0x 00000 d3d/f 方法2:通过reg文件 内容如下: Windows注册表编辑器5.00版 [HKEY _ LOCAL _ MACHINE \ SYSTEM \ current Control set \ Control \ Terminal Server] fDenyTSConnections '=dword:00000000 [HKEY _ LOCAL _ MACHINE \ SYSTEM \ current Control set \ Control \ Terminal Server \ win stations \ RDP-Tcp] 端口号'=dword:00000d3d 导入注册表: regedit /s a.reg 注: 如果修改了连接端口,在系统重新启动之前不会生效。 补充 如果系统尚未配置远程桌面服务,则有必要添加防火墙规则,以便在首次打开时允许端口3389,如下图所示。 修改防火墙配置并允许端口3389的命令如下: netsh advfirewall防火墙添加规则名称='远程桌面'协议=TCP目录=在本地端口=3389操作=允许 3、远程连接方法 Kali使用3389远程连接: rdesktop 192 窗口: mstsc.exe 0x03 非服务器版本的Windows系统默认只允许一个账户登录 具体表现如下: 远程登录时,使用与原系统相同的账号,原系统会切换到登录界面。 如下图 使用不同的帐号,登录时提示其他用户登录这台电脑,如下图所示。 选择后原系统桌面会弹出一个框提示是否断开当前连接(30秒后默认选择OK,会返回登录界面)。 如下图 0x04 非服务器版本的Windows系统支持多用户登录的方法 1、使用mimikatz 权限:调试 ts:multirdp 执行下图 开启多用户登录功能,最高支持Win7。 使用与原系统相同的账户,原系统还是会被切换到登录界面 使用与原系统不同的帐户登录成功,如下图所示 通过查看mimikatz的源代码找到修改的思路。代码位置如下: https://github . com/gentili kiwi/mimikatz/blob/master/mimikatz/modules/kuhl _ m _ ts . c 当Windows打开服务远程桌面服务时,将加载termsrv.dll,如下图所示 通过修改内存中的termsrv.dll打开多用户功能。具体操作如下: Win7 x86: 查找:0x3B86200300000F84 替换为:0xC78620030000FFFFFF7F9090 Win7 x64: 查找:0x39873C0600000F84 替换为:0xC7873C060000FFFFFF7F9090 当然,这个方法在系统重启后就失效了。 再者,如果我们直接修改文件termsrv.dll,是否可以永久开放多用户登录功能? 继续下一个测试。 2、修改termsrv.dll 推荐工具:CFF探索者 测试系统:Win7 x64 打开c: \ windows \ system32下的termsrv.dll。 十六进制编辑器 检查十六进制数据39873C0600000F84 如下图 从0x0001738A中选择12个字节,替换为C7873C060000FFFFFF7F9090。 保存dll 注: 在替换termsrv.dll之前,您需要停止远程桌面服务。 更换TermService后,重新启动服务术语service。 尝试远程连接不同的用户,成功了。验证想法是否正确。 完整的操作如下: 1.检查远程桌面服务的状态。 sc qc TermService 2.如果服务启动,需要先将其关闭。 净停止期限服务/y 3.删除原来的termsrv.dll del c:\ windows \ system32 \ termsrv . dll 4.替换新termsrv.dll 5.启动服务 净开始期限服务 6.远程连接 成功实现多用户登录。 补充1: Win7 x86: 查找:0x3B86200300000F84 替换为:0xC78620030000FFFFFF7F9090 补充2 常用Windows系统的版本号: 系统 版本号 Win7 6.1.7600 Win7sp1 6.1.7601 Win8 6.2.9200 Win8.1 6.3.9600 3、使用工具rdpwrap 工程地址: https://github.com/stascorp/rdpwrap 工具地址: https://github.com/stascorp/rdpwrap/releases Win Vista-Win 10支持 在不修改termsrv.dll的情况下,通过传入不同的参数来实现。 安装: RDPWInst.exe-我是 测试下图 将rdpwrap.ini和rdpwrap.ini释放到System32文件夹中。 Rdpwrap.dll将被加载到与termsrv.dll相同的进程中。 此时,可以使用不同的用户进行远程连接。 卸载: RDPWInst.exe大学 0x05 小结 介绍了三种支持远程桌面多用户登录的方法,适用于不同的情况。对于更换termsrv.dll的方法,应根据系统的具体版本使用不同的更换位置。 留下回复 链接帖子 意见的链接 分享到其他网站 更多分享选项…
推荐的帖子