文章前言
本篇文章我们主要介绍在拿下目标域内主机的情况下,如何多开RDP链接且使得正常登录目标主机的用户不会被强制下线或者发现
具体实现
测试环境
- 域内主机:Windows 7
- 主机地址:192.168.174.170
正常情况
Step 1:普通用户(Al1ex)正常登录域内主机
Step 2:攻击者在拿下目标主机的情况下,开启远程桌面,之后使用同一账户进行远程连接
之后发现攻击者远程登录后,正常登录的用户会被强制下线:
攻击者使用不同的账户(Al2ex)进行远程连接
之后会提示"其他用户当前已登录到此计算机,如果继续,则该用户必须断开与此计算机的链接,是否继续?"
之后我们继续链接,发现正常登录的用户会被提示"Al2ex要链接到该计算机",当然这并非我们所期望的:
如果30秒内未断开连接,则原账户会被直接断开,攻击者Al2ex成功登录:
总结如下:
- 同一账户:同时只能有一个用户登录
- 不同账户:同时只能有一个账号登录
多开实现1
Step 1:在目标主机上以管理员权限执行mimikatz的命令
代码语言:javascript复制privilege::Debug
ts::multirdp
Step 2:之后同一账户远程登录
之后发现正常的登录的用户Al1ex被强制下线,攻击者成功使用Al1ex登录:
Step 3:使用不同的账户(Al2ex)登录
之后发现Al2ex成功登录,且不会引发正常登录的用户Al1ex的警觉
简单小结:
- 相同账户:mimikatz并不能解决同一账户多端登录问题,同样会导致一方被强制下线
- 不同账户:mimikatz能够较好的解决多端登录问题,同时可以规避警示信息,降低用户的警觉
多开实现2
这里提供另外一种多开方式——rdpwrap,项目地址如下:
https://github.com/stascorp/rdpwrap
下面来看具体操作:
Step 1:执行install.bat进行安装
Step 2:之后去除"Sigle Session per user"选项
Step 3:使用同样的账户进行远程登录
发现可以同时登录:
注意:这种在拿到目标主机的一个shell权限之后,想要多开登录同一账户时多少有一些不太现实,略显鸡肋,因为要涉及到图形化交互,但是如果当前未有其他用户登录或者使用不同的用户登录后,可以通过多开的方式来进行团队协作进行渗透测试
Step 4:使用不同的账户进行远程登录
发现可以同时登录
简单小结:
- 相同账户:需要设计到图形化操作,在前期渗透过程中略显鸡肋,后期团队协作中可以有较好的辅助作用
- 不同账户:可以实现多用户同时登录对目标进行渗透测试
扩展补充
a、查看是否开启远程桌面:
代码语言:javascript复制REG QUERY "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server" /v fDenyTSConnections
# 状态解释
0x1表示关闭
0x0表示开启
b、查看远程桌面的端口号
代码语言:javascript复制REG QUERY "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp" /v PortNumber
c、开启远程桌面
代码语言:javascript复制meterpreter > run post/windows/manage/enable_rdp
d、关闭远程桌面
代码语言:javascript复制meterpreter > run multi_console_command -r /root/.msf4/loot/20191203031341_default_192.168.80.132_host.windows.cle_476697.txt
e、修改防火墙允许3389端口通过
代码语言:javascript复制netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow