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

[ 复制链接 ]
小仙子 | 2020-2-29 18:43:46 | 显示全部楼层 | 阅读模式 打印 上一主题 下一主题

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

        0x00 前言

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

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

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

        0x01 简介

        本文将要介绍如下内容:

       
                开启远程桌面的方法
       
       
                使用mimikatz支持远程桌面多用户的原理
       
       
                改进思路
       
       
                测试工具rdpwrap
       

        0x02 开启远程桌面的方法

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

       
REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections
       

        1表示关闭,0表示开启

        查看远程连接的端口:

       
REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber
       

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

       

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

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


        0xd3d转换为十进制为33389

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

        方法1:通过cmd

       
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 0x00000d3d /f
       

        方法2:通过reg文件

        内容如下:

       
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
"fDenyTSConnections"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"PortNumber"=dword:00000d3d
       

        导入注册表:

       
regedit /s a.reg
       

       注:

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

       补充

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

       

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

渗透技巧——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系统远程桌面的多用户登录


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

       

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

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


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

        如下图

       

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

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


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

        1、使用mimikatz

       
privilege::debug
ts::multirdp
       

        执行如下图

       

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

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


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

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

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

       

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

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


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

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

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

       

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

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


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

        Win7 x86:

        查找:0x3B86200300000F84

        替换为:0xC78620030000FFFFFF7F9090

        Win7 x64:

        查找:0x39873C0600000F84

        替换为:0xC7873C060000FFFFFF7F9090

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

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

        继续接下来的测试

        2、修改termsrv.dll

        推荐工具:CFF Explorer

        测试系统: Win7 x64

        打开c:\windows\system32下的termsrv.dll

        Hex Editor

        查看十六进制数据39873C0600000F84

        如下图

       

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

渗透技巧——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:\windows\system32\termsrv.dll
       

        4.替换新termsrv.dll

        5.启动服务

       
net start TermService
       

        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 -i is
       

        测试如下图

       

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

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


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

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

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

        卸载:

       
RDPWInst.exe -u
       

        0x05 小结

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

        作者:3gstudent
温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
回复 推荐到N格

使用道具 举报

大神点评(2)

您需要登录后才可以回帖 登录 | 立即注册
    云凌阁
    额,虽然看不懂在说神马,不过还是支持云凌阁~@_@
    回复 支持 反对

    使用道具 举报

    云凌阁
    ↑自旋↓ | 2020-6-16 09:27:53 | 显示全部楼层
    啥也不说了,感谢云凌阁分享哇!
    回复 支持 反对

    使用道具 举报

    相关推荐
    云凌阁

    关注0

    粉丝0

    帖子35

    发布主题