Windows日志分析,揭秘系统安全与性能的奥秘
Windows日志分析是指对Windows操作系统中生成的日志文件进行读取、解析和评估的过程。这些日志文件记录了系统运行过程中的各种事件,包括系统启动、应用程序运行、错误发生等。以下是Windows日志分析的一些基本步骤和注意事项:
### 1. 确定需要分析的日志类型
Windows系统中主要有以下几种日志类型:
- "应用程序日志(Application Log)":记录应用程序和程序组件的事件。
- "安全日志(Security Log)":记录与系统安全相关的事件,如登录、注销、文件访问等。
- "系统日志(System Log)":记录Windows系统操作事件,如服务启动、驱动程序加载等。
- "审核策略日志(Audit Policy Log)":记录策略更改和审核策略配置事件。
### 2. 收集日志文件
根据需要分析的类型,收集相应的日志文件。这些文件通常位于以下路径:
- "应用程序日志":`C:WindowsWindows LogsApplication`
- "安全日志":`C:WindowsWindows LogsSecurity`
- "系统日志":`C:WindowsWindows LogsSystem`
- "审核策略日志":`C:WindowsWindows LogsMicrosoft-Windows-Security-Auditing/Operational`
### 3. 使用工具进行日志分析
以下是一些常用的日志分析工具:
- "LogParser":Microsoft提供的日志分析工具,可以查询和操作日志文件。
- "Event Viewer
相关内容:
1. Windows日志文件简介
1.1Windows日志核心分类
1.系统日志
系统日志包含由Windows系统组件记录的事件,记录系统进程和设备驱动程序的活动。由它审核的系统事件包括启动失败的设备驱动程序、硬件错误、重复的IP地址以及服务启动、暂停和停止。系统日志也记录启动期间要加载的驱动程序或其他系统组件的故障,记录的事件类型也是预先确定的。
2.应用程序日志
应用程序日志包含计算机系统中的用户程序和商业程序在运行时出现的错误活动,它审核的事件包括所有应用程序产生的错误以及其他报告的信息,如性能监视审核的事件或一般程序事件。记录事件的种类大致有:硬盘使用情况、数据库文件的文件错误、设备驱动程序加载失败、用户登录系统失败计数等。
3.安全日志
安全日志记录各种系统审核和安全处理,包括用户权限的变化、文件和目录的访问、打印以及用户系统登陆和注销,如有效或无效的登陆尝试、与资源使用有关的事件。管理员有按需要指定安全日志中要记录的事件类型,安全日志只有系统管理员可以访问。
4.其他常见日志(依赖服务配置)
PowerShell日志:需启用模块/脚本块日志(需组策略或注册表配置)。
WWW/FTP日志:由IIS等服务器生成,记录Web请求或文件传输活动。
DNS日志:记录DNS查询/响应,需在DNS服务器角色中启用。
1.2Windows日志文件存储路径
1. 旧版本系统(Windows 2000/XP/Server 2003)
路径: %SystemRoot%System32Config,文件格式: .evt
典型日志文件:
SysEvent.evt(系统日志)
AppEvent.evt(应用程序日志)
SecEvent.evt(安全日志)
2. 新版本系统(Windows Vista/7/10/Server 2008及更高)
路径: %SystemRoot%System32winevtLogs,文件格式: .evtx(XML格式,兼容性更强)
典型日志文件:
System.evtx(系统日志)
Application.evtx(应用程序日志)
Security.evtx(安全日志)
Setup.evtx(系统安装日志)
ForwardedEvents.evtx(转发事件日志)
1.3日志管理机制
1.服务管理
由EventLog服务(通过services.exe管理)生成日志,路径通常为%SystemRoot%System32winevtLogs。
2.默认设置
单一日志大小上限20MB,满时默认覆盖最旧记录(可调整为存档或手动清除)。
3.覆盖策略选项
覆盖旧事件(默认)| 按日期覆盖(如30天以上)| 手动清除(需管理员干预)。

4.运行eventvwr
通过WIN+R键调出运行界面后,在界面中执行eventvwr,可打开windows日志管理器,选择安全项即可查看windows系统安全日志。

1.4 Windows日志类型与事件ID及登录类型
1.事件ID
事件ID是Windows日志的基本属性之一,通过事件ID可以分析事件类型,以下是常见的几种事件ID事件ID | 说明 | 事件ID | 说明 |
1102 | 清理审计日志 | 4720 | 创建用户 |
4624 | 账号成功登录 | 4726 | 删除用户 |
4625 | 账户登录失败 | 4728 | 一个成员被添加到启用安全的全局组中。 |
4768 | 已请求 Kerberos 身份验证票证 (TGT) | 4729 | 成员已从启用安全的全局组中删除。 |
4771 | Kerberos 预身份验证失败。 | 4732 | 一个成员被添加到启用安全的本地组。 |
4772 | Kerberos 身份验证票证请求失败。 | 4733 | 成员已从启用安全的本地组中删除。 |
4769 | 已请求 Kerberos 服务票证。 | 4634 | 帐户已注销。 |
4776 | 域控制器尝试验证帐户的凭据。 | 4756 | 一个成员被添加到启用安全的通用组。 |
4770 | 更新了 Kerberos 服务票证。 | 4672 | 分配给新登录的特殊权限。 |
4672 | 分配给新登录的特殊权限。 | 4757 | 成员已从启用安全的通用组中删除。 |
5156 | 出站连接记录 | 4719 | 系统审核策略已更改。 |
4698 | 已创建计划任务。 | 5158 | 入站连接记录 |
4699 | 计划任务被删除。 | 4702 | 已更新计划任务。 |
4700 | 已启用计划任务。 | 4688 | 已创建新进程。 |
4701 | 计划任务被禁用。 | 4689 | 一个进程已经退出。 |
登录类型 | 描述 | 说明 |
2 | 交互式登录(Interactive) | 用户在本地进行登录。 |
3 | 网络(Network) | 最常见的情况就是连接到共享文件夹或共享打印机时。 |
4 | 批处理(Batch) | 通常表明某计划任务启动。 |
5 | 服务(Service) | 每种服务都被配置在某个特定的用户账号下运行。 |
7 | 解锁(Unlock) | 屏保解锁。 |
8 | 网络明文 | 登录的密码在网络上是通过明文传输的,如FTP。 |
9 | 新凭证 | 使用带/Netonly参数的RUNAS命令运行一个程序。 |
10 | 远程交互 | 通过终端服务、远程桌面或远程协助访问计算机。 |
11 | 缓存交互 | 以一个域用户登录而又没有域控制器可用。 |
3.子状态码
4625登录失败日志会存在子状态码的属性,通过改属性,我们可以对登录失败原因进行分析地位和子状态码 | 描述(针对失败的原因的检查) |
0xc0000064 | 用户名不存在 |
0xc000006a | 用户名是正确的,但密码是错误的 |
0xc0000234 | 用户当前锁定 |
0xc0000072 | 帐户目前禁用 |
0xc000006f | 用户试图登录天的外周或时间限制 |
0xc0000070 | 工作站的限制 |
0xc0000193 | 帐号过期 |
0xc0000071 | 过期的密码 |
0xc0000133 | 时钟之间的直流和其他电脑太不同步 |
0xc0000224 | 在下次登录用户需要更改密码 |
0xc0000225 | 显然一个缺陷在Windows和不是一个风险 |
0xc000015b | 没有被授予该用户请求登录类型(又名登录正确的)在这台机器 |
0xc000006d | 似乎是由于系统问题和不安全 |
1.5 实战案例:攻击行为与异常检测
1.远程桌面登录检查
(1)筛选事件ID4624

(2)按照时间顺序查看筛选事件ID记录
需要重点查看4624事件ID中非本人登录审核成功的时间及记录

(3)查看详细登录信息
在记录中,可以对详细信息进行查看,可以是友好视图和XML视图查看。

2.暴力破解攻击检测
(1)查看安全日志(事件ID 4625)。
(2)统计高频失败登录的源IP与目标账户。
(3)结合时间分布判断是否为自动化攻击。

状态码0xc000006a表示用户名是正确的,但密码是错误的,意味着密码暴力破解。
PowerShell命令:
- Get-WinEvent -LogName Security | Where-Object {$_.ID -eq 4625} | Group-Object -Property {$_.Properties.Value} | Sort-Object -Descending Count
3.检查新帐号创建及删除
在安全日志4720中可以查看攻击者创建的用户,即使是隐藏用户都可以查看到。4726则是可以查看到被删除的用户。该事件日志中还可以查看该任务的发起者。
(1)查看用户添加情况(4720)

ps代码:
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4720; StartTime=(Get-Date).AddHours(-24)} |
Format-List TimeCreated, Message

(2)查看用户删除情况(4726)

1.6Windows日志分析工具
https://github.com/Fheidt12/Windows_Log


RDP登录

1.7 日志管理最佳实践
- 日志保留策略
- 设置日志大小上限与存档策略(避免日志被覆盖)。
- 安全加固
- 限制日志访问权限(仅允许管理员和审计角色访问)。
- 启用日志加密与完整性保护(如Windows Event Forwarding签名)。
- 合规性要求
- 符合GDPR、PCI-DSS等法规的日志保留周期(如6个月以上)。
参考文章:
https://mp.weixin.qq.com/s/eCv-rp2Ohxa3ACd3RvMZ_Q
https://mp.weixin.qq.com/s/36R3KGYNSDy6