windows横向移动取证分析(一):RDP

世上只有一种英雄主义,就是在认清生活真相之后,依然热爱生活。by罗曼罗兰

01
简介

在横向移动过程,攻击者可能会利用抓取到的明文密码,或者通过其他途径获取的凭证,使用RDP登录其他主机进行横向移动。此外,攻击者也可能通过暴力破解RDP登录口令的方式,登录目标主机。

下面先对使用RDP登录产生的事件ID进行简单介绍。

  • 4624— 成功登录

  • 4625 —失败的登录

  • 4634/4647 — 成功注销

  • 4648— 使用显式(explicit)凭证登录(RunAs)

  • 4672 — 用户使用超级用户权限的登录 (Administrator)

  • 4720 — 账户创建

我们经常在登录事件里面看到登录类型,不同的登录类型含义如下:

登录类型代码

说明

2

通过控制台(console)登录(键盘,KVM服务,或virtual客户端)

3

网络登录(net   use,powershell等)

4

Batch Logon—通常由计划任务使用

5

Windows Service Logon

7

使用凭证锁屏或者解锁屏幕;RDP会话重连接

8

网络登录时以明文方式发送凭证

9

使用不同于登录用户的凭证— RunAs /netonly

10

远程交互登录(Remote Desktop   Protocol)

11

使用缓存的凭证登录

12

Cached Remote Interactive(类似类型10)

13

Cached unlock(类似类型7)

在使用Windows自带的RDP客户端登录时,在源主机侧和目的主机侧都会产生相关的记录,在对RDP登录事件进行分析时,我们一般需要关注下面3个方面:

1、错误的人: 即登录的用户本来不应该登录这台主机或没有登录需求。

2、错误的时间:即正常的管理员不会在这个时间登录。

3、错误的源IP:即登录的用户正常情况下不应该使用这个源IP登录。

下面分别介绍如何从事件日志,注册表,文件系统3个维度,对源主机侧和目的主机侧的相关取证数据进行分析。

02
RDP横向移动分析 — 源主机
事件日志
  • security.evtx

4648 - 试图使用显式凭据登录。记录信息有:

- 当前登录的用户名

- 使用的凭据

- 目的主机名/IP

- 进程名

如下图:

  • Microsoft-WindowsTerminalServicesRDPClient%4Operational.evtx

1024- 目的主机名

1102- 目的IP地址

注册表
  • NTUSER\Software\Microsoft\Terminal Server Client\Servers

针对每个用户,会记录远程桌面目的地址及登录时使用的用户名:

对NTUSER.dat分析也能获得相同的信息,首先使用kape提取NTUSER.dat文件:

kape.exe --tsource c: --target RegistryHives  --tdest .\RegistryHives

使用Registry Explorer可以看到登录的目标主机,使用的用户名,最后一次登录的时间(注意这个工具的时间需要加8小时):

文件系统
  • Prefetch - C:\Windows\Prefetch\

在文件系统维度,prefetch会记录mstsc.exe的执行。prefetch文件位于c:\windows\Prefetch\mstsc.exe-{hash}.pf,可用PECmd.exe进行分析:

PECmd.exe -f 'c:\windows\prefetch\MSTSC.EXE-2A83B7D7.pf'

在上图中,可以看到rdp客户端总共执行了21次,最近执行的时间,及之前7次执行时间(时间需加8小时)。

03
RDP横向移动分析 — 目的主机
事件日志
  • Security Event Log - secrity.evtx

4624- 登录类型10,账户成功登录,类型7为重连接,记录源IP/登录用户名。

但测试过程发现windows 10有时不会记录登录类型为10的日志,使用RDP登录时,会产生登录类型3的日志,如下图:

4778(A session was reconnected to a Windows Station)/4779(A session was disconnected from a Windows Station) - 记录源IP,源主机名,登录用户名(不是总会存在):

  • Microsoft-Windows-RemoteDesktopServices-RdpCoreTS%4Operational.evtx

131- 连接尝试,记录源IP(登录用户名有时会记录,有时不会):

98 - 成功连接

  • Microsoft-Windows-TerminalServices-RemoteConnectionManager%4Operational.evtx

1149 - User authentication succeeded),记录源IP/登录的用户名,空白的用户名可能表明使用粘贴键。

“An Event ID 1149 DOES NOT indicate successful authentication to a target, simply a successful RDP network connection”.

  • Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx

21(Remote Desktop Services:Session logon succeeded),22(Remote Desktop Services:Shell start notification received),25(Remote Desktop Services:Session reconncetion succeeded),记录源IP/登录的用户名。

21:

22:

25:

41- 记录登录的用户名:

文件系统
  • Prefetch – C:\Windows\Prefetch\

由于注册表里面的信息其实作用不是很大,这里就不做介绍。

当使用rdp连接到目的主机时,目的主机会执行rdpclip.exetstheme.exe这2个程序,通过对这2个程序的prefetch文件进行分析,可以得出用户使用rdp登录主机的时间。

使用PECmd.exe对prefetch文件进行分析:

.\PECmd.exe -d 'c:\windows\prefetch' --csv .

查看结果:

也可用工具WinPrefetchView查看prefetch文件:

04
RDP事件日志分析工具介绍

在实际对window事件日志分析过程,会发现使用eventvwr.exe分析会很慢,而且过滤器也比较简单,无法满足快速对关键事件过滤的需求。下面介绍利用几个第三方的工具对windows事件日志进行处理和分析。

分析事件日志可使用EvtxEcmd.exe这个工具。我们可以直接在目标主机对事件日志进行处理,然后把结果复制出来,也可以将日志文件提取后,离线进行分析。提取可使用kape.exe工具。

提取事件日志:

kape.exe --tsource C: --target EventLogs --tdest . --zip oa_192.168.159.134

将文件复制下来,离线分析:

EvtxECmd.exe -d '2020-12-06T121754_oa_192.168.159.134\C\Windows\system32\winevt\logs' --csv

使用TimelineExplorer.exe对处理结果进行查看和分析,TimelineExplorer.exe有着强大的过滤器,可帮助我们快速过滤出有效事件,关于该程序的更多详细使用方法,大家可以参考程序的帮助文档:

05
总结

上面介绍了通过事件日志,注册表,文件系统3个维度,对RDP登录事件进行取证分析,及介绍了可高效处理分析事件日志的几个工具。在实际应急响应过程,主要还是关注事件日志维度,其他几个方面可作为一个参考。

(0)

相关推荐

  • [win] 远程桌面管理器:Remote Desktop Connection Manager 2.7汉化版

    软件简介 Remote Desktop Connection Manager (RDCMan) 是微软Windows Live体验团队的主要开发者 Julian Burger开发的一个远程桌面管理工具 ...

  • WSLg Architecture | Windows Command Line

    WSLg Architecture Steve April 19th, 2021 If you landed on this blog, you've probably seen our announ ...

  • Windows 取证之EVTX日志

    0x0.概述evtx文件是微软从 Windows NT 6.0(Windows Vista 和 Server 2008) 开始采用的一种全新的日志文件格式.在此之前的格式是 evt .evtx由Win ...

  • 闲聊Windows系统日志

    * 本文作者:TomKing,本文属FreeBuf原创奖励计划,未经许可禁止转载 前言 最近遇到不少应急都提出一个需求,能不能溯源啊?这个事还真不好干,你把证据,犯案时间都确定的时候,要求翻看监控(日 ...

  • 已取证76个通用机场汇总名单及分析,未来规划500个的分布如何?

    截至2017年9月25日,中国民航局颁证的通用机场数量达76个.分析往下看哦. 序 机场名称 省份 颁证年份 1 阳江合山机场 广东 2006 2 徐州杨庙农用机场 江苏 2006 3 建德千岛湖通用 ...

  • Windows 取证之$MFT

    一.什么是MFT MFT,全称Master File Table,即主文件表,它是NTFS文件系统的核心.它是包含了NTFS卷中所有文件信息的数据库,在$MFT 中每个文件(包括MFT本身)至少有一个 ...

  • Windows 取证之注册表

    一.概述 注册表(英语:Registry)是Microsoft Windows操作系统和其应用程序中的一个重要的层次型数据库,用于存储系统和应用程序的配置信息. 早在Windows 3.0推出OLE技 ...

  • C++性能分析工具(Windows)

    C++性能分析工具(Windows)

  • Windows 取证之BMChache

    0x0.概述 BMChache全称RDP Bitmap Chache,即RDP(远程桌面协议)位图缓存.是Windows为了加速RDP连接时的显示,减少数据量的传输,改善RDP连接体验的一种缓存机制. ...

  • 基因家族分析文章之windows环境下两小时基本重现

    我只是有点伤感 昨天看到生信人公众号开始卖某类服务,其实我本来是没什么感觉的,毕竟只是把灰色交易摆出来,其中如何,大家清楚.我个人并不反对也不支持.然而,我居然看到了TBtools出的图,而且还在示例 ...

  • windows 堆分析

    windows和linux堆管理机制虽然呈现给用户的效果是一样的,大体思路也是差不太多,但是底层实现逻辑大相径庭,很多地方和glibc的ptmalloc差别很大.网上资料零零散散,而且都是通过逆向手段 ...

  • Windows应急响应和系统加固(6)——Windows历年高危漏洞介绍和分析

    Windows历年高危漏洞介绍和分析 一.漏洞介绍: 1.漏洞: <1>.漏洞:是影响网络安全的重要因素: <2>.漏洞利用:成为恶意攻击的最常用手段: <3>.漏 ...