Windows日志取证

本文为他人文章的学习笔记。

来源:电子取证(Forensics)-Windows日志分析

第三十一期 取证实战篇-Windows日志分析

一款用于可视化分析恶意登录Windows系统的安全日志取证工具

日志简介

Windows系统默认以二进制XML Windows事件日志记录格式(由.evtx扩展名指定)将日志存储在%SystemRoot%\System32\Winevt\logs目录中。日志也可以使用日志订阅远程存储。对于远程日志记录,运行Windows Event Collector服务(eventvwr)的远程系统订阅其他系统生成的日志。

日志类型

安全日志

%SystemRoot%\System32\Winevt\Logs\Security.evtx

记录系统的安全审计事件,包括各种类型的登录日志、对象访问日志、进程追踪日志、特权使用、账号管理、策略变更、系统事件。安全日志是调查取证中最常用到的日志。

系统日志

%SystemRoot%\System32\Winevt\Logs\System.evtx

记录操作系统组件产生的事件,主要包括驱动程序、系统组件和应用软件的崩溃以及数据丢失错误等。

应用程序日志

%SystemRoot%\System32\Winevt\Logs\Application.evtx

包含由应用程序或系统程序记录的事件,主要记录程序运行方面的事件,如数据库程序可以在应用程序日志中记录文件错误,程序开发任意可以自行决定监视哪些事件。

默认设置下,安全性日志是关闭的,管理员可以使用组策略来启动安全性日志,或在注册表中设置审核策略,以便当安全性日志满后使系统停止响应。

事件类型

信息:指应用程序、驱动程序或服务的成功操作的事件。

警告:警告事件不是直接的、主要的,但会导致将来问题发生的问题。如磁盘空间不足或未找到打印机时,都会记录一个警告事件。

错误:错误事件指用户应该知道的重要的问题。错误事件通常指功能和数据的丢失。如果一个服务不能作为系统引导被加载,那么它会产生一个错误事件。

成功审核:成功的审核安全访问尝试,主要是指安全性日志,这里记录着用户登录/注销、对象访问、特权使用、账户管理、策略更改、详细跟踪、目录服务访问、账户登录等事件,例如所有的成功登录系统都会被记录为“成功审核”事件。

失败审核:失败的审核安全登录尝试,例如用户试图访问网络驱动器失败,则该尝试会被作为失败审核事件记录下来。

事件ID字段

Log Name:存储事件的事件日志的名称,在处理从同一系统提取的大量日志时很有用。

Source:生成事件的服务、Microsoft组件或应用程序。

Event ID:分配给每种已审计活动类型的代码。

Level:分配给相关事件的严重性。

User:在记录事件时,触发活动或源正在运行的用户上下文的用户账户。注意,该字段通常表示“系统”而不是记录事件原因的用户。

OpCode:由生成日志的源分配。

Logged:记录事件的本地系统日期和时间。

Task Category:由生成日志的源分配。

keywords:用于对事件进行分组或排序。

Computer:记录事件的计算机。当检查从多个系统收集的日志时,此功能很有用,但不应被视为导致事件的设备。

Description:一个文本块,其中记录了特定于所记录事件的其他信息,对于取证人员来说,这通常是最重要的字段。

查看本地日志

设置开启:

开始->管理工具->本地安全策略->本地策略->审核策略

修改审核策略后打开eventvwr.msc时,日志中的内容会有所增加。

常用事件id见这里

打开事件查看器后可能会发现其中记录了很多错误事件,但在使用计算机的过程中并没有感知到,这是因为一些错误在后来的启动中进行了自我纠正。

事件日志分析工具

事件日志查看器

运行eventvwr.msc

可以根据事件ID、事件级别、事件来源、用户、计算机等属性进行搜索和过滤。

事件日志记录完整性判断

借助EventRecordID等属性进一步验证。

事件日志删除恢复

搜索事件日志的历史备份(如卷影复制VSC中的历史快照)

从未分配空间恢复已删除日志。

卷影复制(VSC)快照中提取事件日志

Windows启用卷影复制功能后系统的重大变动都将触发系统自动备份注册表、事件日志等重要数据文件,此外还可能存有用户的文件历史备份。

卷影复制快照查看可以通过取证分析软件(如EnCase、X-ways等)、第三方工具(VSC Toolset、ShadowExplorer)或命令行vssadmin进行提取。

vsadmin系统自带命令行

卷影复制快照查看可以通过系统内置的命令行vssadmin和mklink工具进行快照挂载,使用FTK Imager制作逻辑证据文件。

VSC Toolset卷影复制快照辅助取证工具

VSC Toolset是一个适合卷影复制分析的取证辅助工具(可集成多种小工具,如diff,RegRipper、LogParser来提取不同类型数据,或对比不同快照的差异数据)。

未分配空间恢复事件日志

EVT文件头

\x30\x00\x00\x00LfLe

记录头部:LfLe

EVTX文件头

ElfFile

记录头部:ElfChnk

EVTX日志记录格式

EXVT日志记录带有ElfChnk头部特征,每一条记录长度为64KB,因此可以从未分配空间挖掘EVTX的日志记录数据。

Log Parser Lizard

一款好用的日志分析工具,可以把分析结果以图形形式展现出来。可以使用SQL语句进行查询,可以根据状态码筛选结果。

LogonTracer

环境搭建

在kali中启动docker、拉取镜像。

image-20220228190956871

运行镜像

docker run --detach --publish=7474:7474 --publish=7687:7687 --publish=8080:8080 -e LTHOSTNAME=[本地IP] jpcertcc/docker-logontracer

image-20220228200546964

连接Neo4j数据库,使用浏览器访问

http://[本地IP]:7474

默认账户neo4j/neo4j

除去该文章内提及的踩坑以外,我还遇到了其他问题。如docker内没有vi命令,在apt-get时一直下载不了,所以尝试给docker换源,详细可见docker 20.10.3 配置国内源

在输入框内执行

MATCH(n)OPTIONAL MATCH (n)-[r]-()DELETE n,r

image-20220228205102745

在[本地IP]:8080打开LogonTracer,上传日志文件。

我这边可以上传但无法解析,根据这篇文章中的内容,应该是因为日志中只有IP为127.0.0.1的缘故。

账户登录和登录事件

账户登录是Microsoft的身份验证术语。登录是用于指代获得资源访问权限的账户的术语,账户登录和登录事件都记录在安全事件日志中。域账户的身份验证(账户登录)由Windows网络中的域控制器执行。本地账户由它们所在的本地系统进行身份验证。账户登录事件将由执行身份验证的系统记录。组策略可以轻松设置账户登录和登录事件的审核。

登录事件类型代码见这里

通过RDP登录失败的记录可能会记录为Type 3而非Type 10。

可以通过查看状态码等信息了解事件的详细信息。

常见状态码

状态码 描述
0xC0000064 用户名不存在
0xC000006A 用户名正确但是密码错误
0xC0000234 用户被锁定
0xC0000072 账户被禁用
0xC000006F 用户尝试在时间限制外登录
0xC0000070 工作站限制或违法身份验证策略的情况(事件ID 4820)
0xC0000193 账户到期
0xC0000071 密码过期
0xC0000133 DC与其他计算机之间的时钟不太同步
0xC0000224 用户需要在下次登录时更改密码
0xC0000225 Windows发生错误,没有风险
0xc000015b 用户尚未在此计算机上被授予请求的登录类型(也称为登录权限)

远程桌面爆破防护

添加安全策略

管理工具->本地安全策略->账户策略->账户锁定策略

可以配置账户锁定时间、锁定阈值和重置账户锁定计数器。

端口修改

可以修改默认的远程登录端口。

注册表项

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

中Portnumber,把要修改的端口号转为16进制替换即可。