公众号好久没更新了,嘻嘻。
From:http://rcoil.me/2018/05/%E5%85%B3%E4%BA%8Ewindows%E7%9A%84RDP%E8%BF%9E%E6%8E%A5%E8%AE%B0%E5%BD%95/
关于windows的RDP连接历史记录处理,此处仅作为笔记记录,并非原创。
0x00 前言
每次成功连接到远程主机时,RDP客户端都会保存远程主机的名称(或IP地址)以及用于登陆的用户名。再次启动mstsc.exe
时,可以直接从列表中选择远程RDP服务器的名称,并且客户端已自动填写用于登陆的用户名。
从安全角度来讲,这是极不安全的。
0x01 获取RDP连接历史记录
至于获得历史记录的思路及细节实现思路,请转至三好学生师傅的博客,此处仅作为记录。
<#
.SYNOPSIS
This script will list the logged-in users' RDP Connections History.
Author: 3gstudent@3gstudent
License: BSD 3-Clause
#>
$AllUser = Get-WmiObject -Class Win32_UserAccount
foreach($User in $AllUser)
{
$RegPath = "Registry::HKEY_USERS"+$User.SID+"SoftwareMicrosoftTerminal Server ClientServers"
Write-Host "User:"$User.Name
Write-Host "SID:"$User.SID
Write-Host "Status:"$User.Status
Try
{
$QueryPath = dir $RegPath -Name -ErrorAction Stop
}
Catch
{
Write-Host "No RDP Connections History"
Write-Host "----------------------------------"
continue
}
foreach($Name in $QueryPath)
{
Try
{
$User = (Get-ItemProperty -Path $RegPath$Name -ErrorAction Stop).UsernameHint
Write-Host "User:"$User
Write-Host "Server:"$Name
}
Catch
{
Write-Host "No RDP Connections History"
}
}
Write-Host "----------------------------------"
}
0x02 破解RDP连接凭证
破解RDP连接凭证的前提是用户在连接远程主机时勾选了保存保存凭证。
1、查找本地的Credentials
|
|
2、使用mimikatz进行操作
|
|
得到的内容为:
|
|
接下来需要使用的就是guidMasterKey
、pbData
数据。pbData是凭据的加密数据,guidMasterKey是凭据的GUID
3、使用sekurlsa::dpapi
根据目标凭据GUID: {ffc994a1-de8d-4304-9416-31e587f7a8ca}
找到其关联的MasterKey
,这个MasterKey
就是加密凭据的密钥,即解密pbData
所必须的东西。
4、解密
命令为:
|
0x03 清除RDP连接历史记录
清除就相对简单一些。
|
|
针对上述的Default
、Server
,对其表项进行删除
tips:由于在删除Server表项
的时候无法一次选择所有表项,因为可以直接删除整个Server
再新建。
除了删除注册表之外,要需要删除默认的RDP连接文件
|
|
注意:在某些情况(比如系统盘空间不足)下,Document
文件夹会从%userprofile%documents
移动,所以特殊情况下,需要手动查找Default.rdp
0x04参考
获得Windows系统的远程桌面连接历史记录
mimikatz获取本地Credentials
破解远程终端凭据,获取服务器密码
How to Clear RDP Connections History in Windows
-
本文作者: RcoIl
-
本文链接: http://rcoil.me/2018/05/关于windows的RDP连接记录/
-
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!
本文始发于微信公众号(关注安全技术):windows的RDP连接记录
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论