渗透技巧——Windows系统远程桌面的多用户登录

幸运草
幸运草
幸运草
896
文章
3
评论
2020年3月28日18:37:19 评论 347
0x00 前言

在渗透测试中,经常会接触Windows服务器的远程桌面服务,通过界面对服务器进行管理。而对于普通的Windows系统,在某些条件下也需要进行界面操作。

虽然我们可以通过编写程序来实现界面操作(捕获桌面信息,压缩传输,发送鼠标键盘消息等),但是如果能够使用远程桌面服务,岂不是更加方便高效

那么,对应非服务器版本的Windows系统,在使用远程桌面服务有哪些需要注意的问题呢,本文将会逐个分析介绍。

0x01 简介

本文将要介绍如下内容:

· 开启远程桌面的方法

· 使用mimikatz支持远程桌面多用户的原理

· 改进思路

· 测试工具rdpwrap

0x02 开启远程桌面的方法

1、查询系统是否允许3389远程连接

REG QUERY "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server" /v fDenyTSConnections

1表示关闭,0表示开启

查看远程连接的端口:

REG QUERY "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp" /v PortNumber

端口格式为16进制,如下图

渗透技巧——Windows系统远程桌面的多用户登录

0xd3d转换为十进制为33389

2、本机开启3389远程连接的方法

方法1:通过cmd

REG ADD "HKLMSYSTEMCurrentControlSetControlTerminal Server" /v fDenyTSConnections /t REG_DWORD /d 00000000 /fREG ADD "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp" /v PortNumber /t REG_DWORD /d 0x00000d3d /f

方法2:通过reg文件

内容如下:

Windows Registry Editor Version 5.00HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server]"fDenyTSConnections"=dword:00000000[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp]"PortNumber"=dword:00000d3d

导入注册表:

regedit /s a.reg

注:

如果修改连接端口,系统重启后才能生效

补充

如果系统未配置过远程桌面服务,第一次开启时还需要添加防火墙规则允许3389端口,如下图

渗透技巧——Windows系统远程桌面的多用户登录

修改防火墙配置,允许3389端口的命令如下:

netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow

3、远程连接方法

kali使用3389远程连接:

rdesktop 192.168.1.1:3389

Windows:

mstsc.exe

 0x03 非服务器版本的Windows系统默认只允许一个账户登录

具体表现为:

远程登录时,使用与原系统相同的账户,原系统将被切换到登录界面

如下图

渗透技巧——Windows系统远程桌面的多用户登录

使用不同的账户,登录时提示其他用户已登录到此计算机,如下图

渗透技巧——Windows系统远程桌面的多用户登录

选择继续后,原系统桌面将弹框提示是否断开当前连接(30秒后默认选择同意,退回到登录界面)

如下图

渗透技巧——Windows系统远程桌面的多用户登录

0x04 非服务器版本的Windows系统支持多用户登录的方法

1、使用mimikatz

privilege::debugts::multirdp

执行如下图

渗透技巧——Windows系统远程桌面的多用户登录

开启多用户登录功能,最高支持到Win7

使用与原系统相同的账户,原系统还是会被切换到登录界面

使用与原系统不同的账户,登录成功,如下图

渗透技巧——Windows系统远程桌面的多用户登录

通过查看mimikatz的源码找到修改思路,代码位置如下:

https://github.com/gentilkiwi/mimikatz/blob/master/mimikatz/modules/kuhl_m_ts.c

Windows在开启服务Remote Desktop Services时,会加载termsrv.dll,如下图

渗透技巧——Windows系统远程桌面的多用户登录

通过修改内存中的termsrv.dll实现开启多用户功能,具体操作如下:

Win7 x86:

查找:0x3B86200300000F84

替换为:0xC78620030000FFFFFF7F9090

Win7 x64:

查找:0x39873C0600000F84

替换为:0xC7873C060000FFFFFF7F9090

当然,该方法在系统重启后失效

更近一步,如果我们直接修改文件termsrv.dll,能否实现永久开启多用户登录的功能呢?

继续接下来的测试

2、修改termsrv.dll

推荐工具: CFF Explorer

测试系统: Win7 x64

打开c:windowssystem32下的termsrv.dll

Hex Editor

查看十六进制数据39873C0600000F84

如下图

渗透技巧——Windows系统远程桌面的多用户登录

从0x0001738A处开始,选中12字节,替换为C7873C060000FFFFFF7F9090

保存dll

注:

需要先停止远程桌面服务才能替换termsrv.dll

替换termsrv.dll后,重新开启服务TermService

尝试使用不同用户远程连接,成功,验证该思路正确

完整操作如下:

1.查看Remote Desktop Services服务状态

sc qc TermService

2.如果服务启动,需要先关闭

net stop TermService /y

3.删除原termsrv.dll

del c:windowssystem32termsrv.dll

4.替换新termsrv.dll

5.启动服务

net start TermService

6.远程连接

成功实现多用户登录

补充1:

Win7 x86:

查找:0x3B86200300000F84

替换为:0xC78620030000FFFFFF7F9090

补充2

常见Windows系统的版本号:

渗透技巧——Windows系统远程桌面的多用户登录

3、使用工具rdpwrap

工程地址:

https://github.com/stascorp/rdpwrap

工具地址:

https://github.com/stascorp/rdpwrap/releases

支持Win Vista - Win 10

不修改termsrv.dll,通过传入不同参数实现

安装:

RDPWInst.exe -i is

测试如下图

渗透技巧——Windows系统远程桌面的多用户登录

释放rdpwrap.dll和rdpwrap.ini至System32文件夹

rdpwrap.dll会被加载到同termsrv.dll相同的进程

此时,能够使用不同用户进行远程连接

卸载:

RDPWInst.exe -u

 0x05 小结

本文介绍了三种支持远程桌面多用户登录的方法,适用于不同条件,对于替换termsrv.dll的方法,需要根据系统具体版本,使用不同的替换位置

本文来源于:渗透技巧——Windows系统远程桌面的多用户登录-变化吧博客
特别声明:以上文章内容仅代表作者本人观点,不代表变化吧博客观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与变化吧联系。

转载请注明:{{title}}-变化吧
  • 赞助本站
  • 微信扫一扫
  • weinxin
  • 赞助本站
  • 支付宝扫一扫
  • weinxin
幸运草
当心!你的DNS可能被劫持了! 劫持

当心!你的DNS可能被劫持了!

百度疑遭神马流量劫持 搜索暗战又将爆发?近期,有网友在微博上爆料说,在使用百度搜索的时候,浏览完落地页返回搜索结果页时,会进入到一个虚假的百度移动搜索结果页,一眼看去与百度搜索并无差别,但仔细观察会发...
8种网络黑灰产作案工具 劫持

8种网络黑灰产作案工具

个人信息安全、黑灰产业链... 这些词语近年来高频出现 除了网络安全相关的专业人士 现在普通的网络用户 对网络安全的重视程度也越来越高 9月17日,2018国家网络安全宣传周——网络安全博览会揭幕。本...
网络诈骗就在我们身边,时刻提高警惕 劫持

网络诈骗就在我们身边,时刻提高警惕

为什么DNS监测能够让你的网络更加安全但由于极少有公司会出于安全目的监测DNS状态,DNS如今已成为攻击者理想的攻击手段。 在DNS层实施安全防御,可以有效检测和控制此类恶意软件感染。在恶意连接建立之...