RDP 痕迹有哪些
RDP(Remote Desktop Protocol)默认使用 TCP 3389,在 Windows 上留下的痕迹分散在主机侧与客户端侧两类位置。主机侧看安全日志的登录类型 10(RemoteInteractive)与 TerminalServices 系列事件,能回答谁在什么时候从哪个 IP 登录了这台机器;客户端侧看 Default.rdp 与终端服务客户端的位图缓存,能回答这台机器主动连过哪台远程主机。取证时必须先分方向:入站登录与出站连接是两件事,混在一起会得出错误结论。
基本信息
| 适用平台 | Windows 7/10/11 与 Windows Server 2008 R2 及以上 |
|---|---|
| 主机侧来源 | Security 日志 4624(类型10)/4625/4778/4779;Microsoft-Windows-TerminalServices-LocalSessionManager/Operational 21/22/23/24/25;RemoteConnectionManager/Operational |
| 客户端侧来源 | %USERPROFILE%\AppData\Local\Microsoft\Terminal Server Client 下的 Default.rdp、Cache 目录与 Servers 子键 |
| 关键字段 | TargetUserName、LogonType、IpAddress、LogonProcessName、会话 ID |
| 前置条件 | 安全日志需开启登录审核;终端服务 Operational 日志默认可能是关闭状态 |
典型使用场景
- 确认某台服务器在事件窗口内是否被远程登录,登录来源是哪台主机或哪个公网地址
- 区分管理员正常运维与攻击者利用被盗凭据的远程登录:看时段、来源 IP、会话时长
- 发现内网横向:一台已失陷主机是否用 RDP 连过其他服务器
- 还原客户端侧的连接目标:员工或攻击者在这台机器上手工连过哪些地址
- 为处置动作提供依据:确认哪些会话要断开,哪些账号需要改密
主机侧查询
主机侧查询
# 安全日志里筛出远程交互式登录成功记录
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624; StartTime=(Get-Date).AddDays(-7)} |
Where-Object { $_.Message -match 'Logon Type:\s+10' } |
Select-Object TimeCreated, Message | Format-List
# 终端服务会话日志:21 登录成功、23 注销、24 断连、25 重连
wevtutil qe Microsoft-Windows-TerminalServices-LocalSessionManager/Operational /c:20 /rd:true /f:text
# 失败登录按来源 IP 聚合,看是否存在口令喷洒
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 200 |
Where-Object { $_.Message -match 'Logon Type:\s+10' } | Select-Object TimeCreated, Message客户端侧清单
客户端侧清单
# 位图缓存与每台目标主机的连接配置
Get-ChildItem "$env:LOCALAPPDATA\Microsoft\Terminal Server Client" -Recurse |
Select-Object FullName, LastWriteTime, Length | Sort-Object LastWriteTime -Descending
# 列出历史连接目标所在子目录(每条对应一台远程主机)
Get-ChildItem "$env:LOCALAPPDATA\Microsoft\Terminal Server Client\Servers" -Recurse -File |
Select-Object FullName, LastWriteTime痕迹位置对照
| 位置 | 含义 | 读法要点 |
|---|---|---|
| 4624 类型 10 | 远程交互式登录成功 | 看 IpAddress 与 TargetUserName;同一账号短时间多来源登录即异常 |
| 4625 类型 10 | 远程登录失败 | 按来源 IP 聚合,连续尝试是爆破特征 |
| LocalSessionManager 21/22/24/25 | 会话登录、Shell 启动、断连、重连 | 事件正文含源地址与用户名,能看到会话生命周期 |
| Default.rdp | 客户端上次连接设置 | 字段随 Windows 版本变化,作为辅助佐证 |
| Cache 目录文件 | 屏幕位图缓存 | 可还原部分画面碎片,只能作为操作佐证 |
| Servers 子目录 | 按目标主机存放的连接配置 | 目录名与文件内容可推出连接过的地址 |
LocalSessionManager/Operational 日志在部分系统上默认未启用,采集前提早检查;若为关闭状态,只能用安全日志与网络侧记录替代,并在报告中写明证据盲区。
远程桌面网关(RD Gateway)与堡垒机场景下,主机侧看到的来源 IP 是网关地址而非终端真实地址;此时要到网关或堡垒机日志里找真实来源,两侧时间线对齐后再下结论。