[玩转系统] 跟踪和分析 Windows 中的远程桌面连接日志
作者:精品下载站 日期:2024-12-14 23:21:23 浏览:15 分类:玩电脑
跟踪和分析 Windows 中的远程桌面连接日志
在本文中,我们将介绍如何在 Windows 中获取和审核 RDP 连接日志。 RDP 连接日志允许 RDS 终端服务器管理员获取有关当特定 RDP 用户登录并结束会话时哪些用户登录到服务器以及用户从哪个设备(DNS 名称或 IP 地址)登录的信息。
Windows 事件查看器中的 RDP 连接事件
当用户连接到启用远程桌面或 RDS 主机时,有关这些事件的信息将存储在事件查看器日志中 (
eventvwr.msc
)。考虑管理员可能感兴趣的事件查看器中 RDP 连接的主要阶段和相关事件
网络连接;
验证;
-
登录;
会话断开/重新连接;
注销。
网络连接 - 从用户的 RDP 客户端建立到服务器的网络连接。这是事件 ID 1149 (
Remote Desktop Services: User authentication succeeded
)。如果发现该事件,并不意味着用户认证成功。此日志位于“应用程序和服务日志 -> Microsoft -> Windows -> Terminal-Services-RemoteConnectionManager > 操作”。为此事件启用日志过滤器(右键单击日志 -> 过滤当前日志 -> EventId 1149)。
您可以使用 PowerShell 列出所有 RDP 连接尝试:
$RDPAuths = Get-WinEvent -LogName 'Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational' -FilterXPath '<QueryList><Query Id="0"><Select>*[System[EventID=1149]]</Select></Query></QueryList>'
[xml[]]$xml=$RDPAuths|Foreach{$_.ToXml()}
$EventData = Foreach ($event in $xml.Event)
{ New-Object PSObject -Property @{
TimeCreated = (Get-Date ($event.System.TimeCreated.SystemTime) -Format 'yyyy-MM-dd hh:mm:ss K')
User = $event.UserData.EventXML.Param1
Domain = $event.UserData.EventXML.Param2
Client = $event.UserData.EventXML.Param3
}
} $EventData | FT
然后您将获得一个事件列表,其中包含与该服务器的所有 RDP 连接的历史记录。日志提供用户名、域(在本例中使用网络级身份验证;如果禁用 NLA,事件描述看起来会有所不同)以及用户计算机的 IP 地址。
身份验证 显示 RDP 用户是否已在服务器上成功通过身份验证。该日志位于 Windows -> 安全下。因此,您可能对 EventID 4624 的事件感兴趣(
An account was successfully logged on
) 或 4625 (
An account failed to log on
)。
请注意事件描述中的LogonType值。
LogonType=10 或 3 — 如果远程桌面服务已用于在登录过程中创建新会话;
LogonType=7,表示用户已重新连接到现有的 RDP 会话;
LogonType=5 - 与服务器控制台的 RDP 连接(在 mstsc.exe /admin 模式下)。
您可以使用 RDP 身份验证失败事件来防止 RDP 暴力攻击。您可以使用简单的 PowerShell 脚本在 Windows Defender 防火墙上自动阻止攻击者 IP。
在这种情况下,用户名包含在事件描述的帐户名称字段中,计算机名称包含在工作站名称字段中,用户IP包含在源网络地址字段中。
请记下 LogonID 字段的值。这是唯一的用户 RDP 会话标识符,有助于跟踪用户的进一步活动。但是,如果 RDP 会话断开并且用户重新连接到该会话,则会为该用户分配一个新的 LogonID(尽管 RDP 会话保持不变)。
您可以使用以下 PowerShell 命令获取成功的 RDP 身份验证事件 (EventID 4624) 的列表:
Get-EventLog security -after (Get-date -hour 0 -minute 0 -second 0) | ?{$_.eventid -eq 4624 -and $_.Message -match 'logon type:\s+(10)\s'} | Out-GridView
登录是指通过 RDP 登录 Windows。 EventID 21 - 此事件在用户成功通过身份验证后出现(
Remote Desktop Services: Session logon succeeded
)。此事件位于“应用程序和服务日志 -> Microsoft -> Windows -> TerminalServices-LocalSessionManager -> 操作”中。如您所见,您可以在此处找到用户 RDP 会话的 ID - 会话 ID。
事件ID - 21(
Remote Desktop Services: Shell start notification received
)表示 Explorer shell 已成功启动(Windows 桌面出现在用户的 RDP 会话中)。
会话断开/重新连接 - 会话断开和重新连接事件具有不同的 ID,具体取决于导致用户断开连接的原因(由于 RDP 会话超时中设置的不活动而断开连接、用户在会话中选择了“断开连接”选项、其他用户或管理员结束了 RDP 会话等)。您可以在事件查看器中的“应用程序和服务日志 -> Microsoft -> Windows -> TerminalServices-LocalSessionManager -> 操作”下找到这些事件。让我们考虑一下可能有用的 RDP 事件 ID:
事件 ID - 24 (
Remote Desktop Services: Session has been disconnected
) - 用户已从 RDP 会话断开连接;
事件 ID - 25 (
Remote Desktop Services: Session reconnection succeeded
) - 用户已重新连接到服务器上现有的 RDP 会话;
事件 ID - 39 (
Session <A> has been disconnected by session <B>
) - 用户通过选择相应的菜单选项(而不是仅关闭 RDP 客户端窗口)从 RDP 会话断开连接。如果会话 ID 不同,则表明某个用户已被另一个用户(或管理员)断开连接;
事件 ID - 40 (
Session <A> has been disconnected, reason code <B>
)。这里必须检查事件描述中的断开原因代码。例如:
原因代码 0 (
No additional information is available
) 表示用户刚刚关闭了 RDP 客户端窗口;
原因代码 5 (
The client’s connection was replaced by another connection
) 表示用户已重新连接到之前的 RDP 会话;
原因代码 11 (
User activity has initiated the disconnect
) 用户单击了开始菜单中的“断开连接”按钮。
Windows -> 安全日志中的事件 ID 4778(会话已重新连接到 Window Station)。用户已重新连接到 RDP 会话(为用户分配了新的 LogonID)。
“Windows -> 安全”日志中的事件 ID 4779 (
A session was disconnected from a Window Station
)。用户已从 RDP 会话断开连接。
注销是指用户会话的结束。它被记录为具有 EventID 23 的事件(
Remote Desktop Services: Session logoff succeeded
)在“应用程序和服务日志 -> Microsoft -> Windows -> TerminalServices-LocalSessionManager -> 操作”下。
同时,EventID 4634(
An account was logged off
)出现在安全日志中。
事件ID 9009(
The Desktop Window Manager has exited with code <X>
)在系统日志中表示用户已从 RDP 会话中发起注销,并且该用户的窗口和图形 shell 均已终止。
EventID 4647 - 用户发起的注销
使用 PowerShell 获取远程桌面登录历史记录
以下是一个简短的 PowerShell 脚本,其中列出了终端 RDS 服务器事件日志中当天所有 RDP 连接的历史记录。生成的表显示连接时间、客户端的 IP 地址(DNS 计算机名)和远程用户名(如有必要,您可以在报告中包含其他 LogonType)。
Get-EventLog -LogName Security -after (Get-date -hour 0 -minute 0 -second 0)| ?{(4624,4778) -contains $_.EventID -and $_.Message -match 'logon type:\s+(10)\s'}| %{
(new-object -Type PSObject -Property @{
TimeGenerated = $_.TimeGenerated
ClientIP = $_.Message -replace '(?smi).*Source Network Address:\s+([^\s]+)\s+.*','$1'
UserName = $_.Message -replace '(?smi).*\s\sAccount Name:\s+([^\s]+)\s+.*','$1'
UserDomain = $_.Message -replace '(?smi).*\s\sAccount Domain:\s+([^\s]+)\s+.*','$1'
LogonType = $_.Message -replace '(?smi).*Logon Type:\s+([^\s]+)\s+.*','$1'
})
} | sort TimeGenerated -Descending | Select TimeGenerated, ClientIP `
, @{N='Username';E={'{0}\{1}' -f $_.UserDomain,$_.UserName}} `
, @{N='LogType';E={
switch ($_.LogonType) {
2 {'Interactive - local logon'}
3 {'Network connection to shared folder)'}
4 {'Batch'}
5 {'Service'}
7 {'Unlock (after screensaver)'}
8 {'NetworkCleartext'}
9 {'NewCredentials (local impersonation process under existing connection)'}
10 {'RDP'}
11 {'CachedInteractive'}
default {"LogType Not Recognised: $($_.LogonType)"}
}
}}
此方法允许您在独立的 RDSH 服务器上收集和解析 RDP 连接日志。如果 RDS 场中有多个服务器,您可以使用此脚本查询每台服务器,或者从具有远程桌面连接代理角色的管理服务器获取日志。
您可以将 RDP 连接日志从事件查看器导出到 CSV 文件(以便在 Excel 电子表格中进一步分析)。您可以从事件查看器 GUI 导出日志(假设事件查看器日志未清除)或通过命令提示符导出:
WEVTUtil query-events Security > c:\ps\rdp_security_log.txt
或者使用 PowerShell:
get-winevent -logname "Microsoft-Windows-TerminalServices-LocalSessionManager/Operational" | Export-Csv c:\ps\rdp_connection_log.txt -Encoding UTF8
如果您的用户通过远程桌面网关连接到企业 RDS 主机,您可以通过 EventID 302 在 Microsoft-Windows-TerminalServices-Gateway 日志中检查用户连接日志。例如,以下 PowerShell 脚本将显示指定用户通过 RD 网关的连接历史记录:
$rdpusername="b.smith"
$properties = @(
@{n='User';e={$_.Properties[0].Value}},
@{n='Source IP Adress';e={$_.Properties[1].Value}},
@{n='TimeStamp';e={$_.TimeCreated}}
@{n='Target RDP host';e={$_.Properties[3].Value}}
)
(Get-WinEvent -FilterHashTable @{LogName='Microsoft-Windows-TerminalServices-Gateway/Operational';ID='302'} | Select-Object $properties) -match $rdpusername
您可以在 Microsoft-Windows-TerminalServices-Gateway 事件日志中检查以下 RD 网关用户连接事件:
300 — 客户端计算机 DEVICE 上的用户 NAME 满足资源授权策略要求,因此被授权连接到资源 RDPHOST;
302 — 客户端计算机 DEVICE 上连接到资源 RDPHOST 的用户名称;
303 — 客户端计算机 DEVICE 上的用户 NAME 与以下网络资源断开连接:RDPHOST。在用户断开连接之前,客户端传输了 X 字节并接收了 X 字节。客户端会话持续时间为 X 秒。
您可以使用以下命令显示 RDS 主机上当前远程会话的列表:
qwinsta
该命令返回会话 ID、用户名和会话状态(活动/断开连接)。当您需要在使用影子远程桌面连接时获取用户的 RDP 会话 ID 时,此命令非常有用。
您可以显示特定 RDP 会话中正在运行的进程列表(指定会话 ID):
qprocess /id:5
Windows 中的传出 RDP 连接日志
您还可以在客户端查看传出 RDP 连接日志。它们可在以下事件日志中找到:应用程序和服务日志 -> Microsoft -> Windows -> TerminalServices-ClientActiveXCore -> Microsoft-Windows-TerminalServices-RDPClient -> 操作。
例如,当用户连接到远程 Windows Server RDS 主机或启用了 RDP 的 Windows 10/11 计算机(桌面 Windows 版本还支持多个同时 RDP 连接)时,会发生 EventID 1102。
The client has initiated a multi-transport connection to the server 192.168.13.201.
以下 RDP 脚本将显示当前计算机上 RDP 客户端连接的历史记录:
$properties = @(
@{n='TimeStamp';e={$_.TimeCreated}}
@{n='LocalUser';e={$_.UserID}}
@{n='Target RDP host';e={$_.Properties[1].Value}}
)
Get-WinEvent -FilterHashTable @{LogName='Microsoft-Windows-TerminalServices-RDPClient/Operational';ID='1102'} | Select-Object $properties
该脚本返回在此计算机上发起 RDP 连接的用户的 SID,以及用户连接到的远程桌面主机的 DNS 名称/IP 地址。您可以将 SID 转换为用户名,如下所示。
此外,您还可以在用户注册表中检查 RDP 连接历史记录。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[短剧合集] 2025年06月2日 精选+付费短剧推荐39部
[软件合集] 25年6月2日 精选软件18个
[软件合集] 25年6月1日 精选软件15个
[短剧合集] 2025年06月1日 精选+付费短剧推荐59部
[短剧] 2025年05月31日 精选+付费短剧推荐58部
[软件合集] 25年5月31日 精选软件66个
[电影] 黄沙漫天(2025) 4K.EDRMAX.杜比全景声 / 4K杜比视界/杜比全景声
[风口福利] 短视频红利新风口!炬焰创作者平台重磅激励来袭
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[美图] 2W美女个美女小姐姐,饱眼福
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag