PythonPig's Blog 移动通信 TCP/IP Hacker 后渗透 伪码农

远程桌面知识汇总

2016-12-21
PythonPig

#0x00 写在前面

在渗透测试过程中经常会用到远程桌面连接,这里做一个知识汇总,持续更新……

remote desktop

图片来源于:https://cdn.ttgtmedia.com/rms/onlineImages/enterprise_desktop-remote_desktop_desktop.jpg

#0x01 命令行查看远程桌面的状态

查询远程桌面服务是否开启

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

如下图,端口号十六进制表示,0xd3d转换成十进制后为3389。
查询远程桌面端口

#0x02 命令行开启远程桌面

1、cmd 通过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、导入注册表信息 将如下内容写入test.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 test.reg

若修改端口信息后重启后生效
防火墙默认阻断了3389的连接,需要手动开启,执行如下命令

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

#0x03 多用户同时登陆

渗透测试过程中可能会遇到用户长期处于登陆状态的情况,对于某些不支持多个用户登录的系统来说就比较麻烦。
windows server 2003 默认支持两个用户同时登陆,其他系统需要手动配置。
其他系统如果是同一个账号多点登陆时,已登陆账号会直接退出到登陆界面,不同用户登录时用户会出现如下提示。
已登录用户提示
已登录用户提示
未登录用户提示
未登录用户提示

配置多用户同时登陆的方法比较多,可以参考【参考】里的文章。
1、rdpwrap 这个工具适用的系统包括windows vista/7/8/10/server2008
项目地址:https://github.com/stascorp/rdpwrap
比较悲剧的是这个工具需要免杀。
rdpwarp help

安装

RDPWInst.exe -i

安装完成后会在program files目录下生成一个RDP Wrapper的文件夹,所以,安全起见,使用完成后,卸载rdpwrap。

RDPWInst.exe -u -k 

注意-k参数,它的作用是保持系统原来的配置不变,如果不加-k参数,卸载后原来打开的远程桌面服务会被关闭。

#0x04 赋予非administrator组用户远程桌面登录权限

如果用户既不在Administrator组也不在Remote Desktop Users组的话则不能使用远程桌面进行登录,如下图:
no permission 查看本地所有工作组

net localgroup

查看Administrator组内的用户

net localgroup Administrators

查看Remote Desktop Users组内的用户

net localgroup "Remote Desktop Users"

赋予非administrator组用户远程桌面登录权限,也即把目标用户加入Remote Desktop Users组

net localgroup "Remote Desktop Users" username /add 

此后username具有远程登录的权限,登录完成后将username在Remote Desktop Users组中删除

net localgroup "Remote Desktop Users" username /del

#0x05 普通域用户登录域内机器(非域控)

将域用户加入目标机器Administrators组或Remote Desktop Users组

net localgroup "Administrators" username /add 
net localgroup "Remote Desktop Users" username /add 

#0x06 组策略配置

windows组策略:gpedit.msc
Computer Config > Windows Settings > Security Settings > Local Policies > User Rights Assignments
windows组策略可以配置用户或组的远程桌面相关权限,主要有以下两条策略:

Allow log on through Remote Desktop Services
Deny log on through Remote Desktop Services

说明:
1、Allow log on through Remote Desktop Services默认值为:On workstation and servers: Administrators, Remote Desktop Users. On domain controllers: Administrators.
Deny log on through Remote Desktop Services默认值为:None
所以,默认的组策略是:Administrators和Remote Desktop Users组中的用户可以登录远程桌面
2、Deny log on through Remote Desktop Services策略的优先级高于Allow log on through Remote Desktop Services
3、当用户或者组在Allow log on through Remote Desktop中且不在Deny log on through Remote Desktop Services时,用户或者组中的用户可以登录远程桌面
4、当用户或者组在Deny log on through Remote Desktop Services中时,无论用户或者组是否在Allow log on through Remote Desktop中都不能登录远程桌面

总结:用户要登录远程桌面必须在Allow log on through Remote Desktop Services且不在Deny log on through Remote Desktop Services中。

参考


Similar Posts

Comments