satyaupendrasamana/soc-windows-event-log-analysis
GitHub: satyaupendrasamana/soc-windows-event-log-analysis
一个 SOC L1 级别的 Windows 安全事件日志分析实战案例,通过模拟完整攻击链生成真实日志并展示从事件检测到调查报告的端到端分析流程。
Stars: 0 | Forks: 0
# Windows 事件日志分析 — SOC L1 调查项目
**案例研究:CASE-002**
**分析师:** Satya Upendra Samana
**日期:** 2026 年 7 月
**环境:** 个人 Windows 笔记本电脑(ANNAYA_THAMMUDU,Workgroup,非域环境)
## 项目简介
这是一个从零开始构建的 SOC L1 实战调查项目 —— 既不是使用预制日志文件的模拟,也不是理论练习。本仓库中的每一条日志条目都是在真实的 Windows 机器上通过刻意模拟完整的攻击链而生成的,随后像 SOC L1 分析师调查真实事件那样,对这些日志进行了同等深度的调查。
模拟的攻击链如下:
- 针对测试账户的暴力破解登录尝试
- 多次失败后的成功首次访问
- 使用伪装名称创建后门账户
- 通过将后门账户添加到 Administrators 组来实现权限提升
- 通过安装伪装的 Windows 服务来实现持久化
所有五个阶段都生成了真实的 Windows 安全事件日志条目。随后,这些条目被关联到一个时间轴中,按攻击模式进行分类,并记录在完整的调查报告中。
## 项目展示的能力
**日志分析技能**
在字段级别阅读和解读原始的 Windows 安全事件日志条目 —— 不仅仅是知道 Event ID 数字代表什么,而是理解条目内的每个字段传达了什么信息以及如何利用它。
**核心 Event ID 知识**
熟练掌握涵盖大多数真实 SOC L1 调查的七个 Event ID:4625、4624、4634、4647、4720、4732、4688 和 4697。
**关联与时间轴构建**
通过账户名、登录 ID (Logon ID)、源地址和时间窗口将多个日志条目联系起来,从零散的证据中重建完整的攻击序列。
**攻击模式识别**
直接从日志证据中识别暴力破解、权限提升和持久化模式 —— 而非依赖预先标记好的数据集。
**审计策略诊断**
在调查过程中发现了两个默认的 Windows 审计缺陷。Security System Extension 子类别默认设置为 No Auditing,这最初完全抑制了 Event ID 4697 的产生。账户锁定阈值是 10 次尝试,而不是假设的 5 次,这影响了模拟计划。这两个缺陷均被识别、更正,并作为真实发现记录在案。
**专业调查文档**
完整的报告遵循与真实 SOC L1 事件报告相同的结构 —— 包括执行摘要、范围与方法、每个事件的详细证据、攻击分类、关键发现、建议和结论。
## 仓库结构
```
windows-event-log-analysis/
README.md
docs/
Case-002-SOC-Windows-Event-Log.pdf
evidence/
01_event_4625_failed_logons.txt
02_event_4624_successful_logon.txt
03_event_4720_account_created.txt
04_event_4732_privilege_escalation.txt
05_event_4697_service_installed.txt
screenshots/
01_failed_logons_4625.png
02_successful_logons_4624.png
03_New_Service_Installed_4697.png
04_New_User-Account_Created_4720.png
05_user-Added-to-Admin_Group_4732.png
Documentation/
Investigation-Methodology.md
Event-ID-Reference.md
Timeline.md
Tools-Used.md
SOC-Analyst-Notebook.pdf
```
**docs/** 包含 Word 格式的完整正式调查报告。
**evidence/** 每个事件包含一个纯文本文件,内含原始日志条目和分析师批注。
**screenshots/** 包含调查期间拍摄的真实 Event Viewer 捕获截图。
**Documentation/** 包含方法论、Event ID 参考、按时间顺序排列的时间轴和工具参考。
## 攻击时间轴
| 步骤 | 时间 | Event ID | 发生了什么 |
|------|------|----------|---------------|
| 1 | 14:39:36 至 14:42:11 | 4625 x9 | 在大约 2.5 分钟内,针对 testuser1 进行了九次失败的登录尝试 |
| 2 | 14:42:32 | 4624 | 成功登录 testuser1 —— 在最后一次失败后 21 秒实现了初始访问 |
| 3 | 15:30:45 | 4720 | 创建了名为 backdoor_svc 的新本地账户,其名称旨在模仿合法的服务账户 |
| 4 | 15:34:18 | 4732 | 将 backdoor_svc 添加到内置的 Administrators 组 —— 权限提升 |
| 5 | 15:49:21 | 4697 | 安装了以 LocalSystem 身份运行的服务 WinUpdateHelper —— 建立了持久化 |
## 关键发现
此攻击链中最重要的事件是第 4 步,Event ID 4732。在创建后门账户时(第 3 步),它是一个标准的非特权账户,没有任何实质性的访问权限。只有当它被添加到 Administrators 组后,它才获得了对主机的完全控制权 —— 包括安装服务、禁用安全工具、访问所有文件以及创建更多账户的能力。
在真实的调查中,及时发现并撤消这一事件,就能在安装持久化机制之前彻底消除后门账户的威胁。该账户可能依然存在,但它将失去所有破坏力。
## 发现的审计策略缺陷
在本次调查中,发现了两个默认的审计配置缺陷,它们在真实事件中本会隐藏关键证据。
**Security System Extension —— 默认不审计 (No Auditing)**
在这台机器上,Event ID 4697 开箱即用时被完全抑制。WinUpdateHelper 服务已成功创建(已由 PowerShell 输出确认),但在通过 auditpol 手动启用该子类别之前,Security 日志中没有留下任何条目。这个缺陷不易察觉 —— 没有错误,没有警告,只有一片死寂。
**账户锁定阈值 —— 10 次尝试,而非 5 次**
模拟最初是基于 5 次尝试的锁定阈值设计的,这是一种常见的假设。然而通过 net accounts 确认,实际配置的阈值是 10 次。这意味着在模拟期间账户锁定事件 (4740) 从未被触发,暴力破解在任何锁定策略生效之前就已经成功了。
这两项发现均记录在证据文件和调查报告中。
## 使用的工具
本次调查中使用的所有工具均为 Windows 原生工具。无需任何第三方软件。
| 工具 | 用途 |
|------|---------|
| Windows Event Viewer | 读取和筛选 Security 日志条目 |
| PowerShell — net user | 创建和删除测试账户 |
| PowerShell — net localgroup | 管理组成员身份以进行权限提升模拟 |
| PowerShell — sc.exe | 创建和删除测试 Windows 服务 |
| PowerShell — auditpol | 检查和纠正审计策略配置 |
| PowerShell — net accounts | 在模拟前验证锁定阈值 |
| MITRE ATT&CK 框架 | 将观察到的行为映射到标准化的技术 ID |
## MITRE ATT&CK 映射
| 技术 ID | 描述 |
|-------------|-------------|
| T1110 — 暴力破解 (Brute Force) | 针对单个账户不断进行失败的登录尝试,直到一次成功 |
| T1136.001 — 本地账户创建 (Local Account Creation) | 创建新的本地账户 backdoor_svc,以在首次突破后维持访问权限 |
| T1098 — 账户操纵 (Account Manipulation) | 将后门账户添加到 Administrators 组以获取提升的权限 |
| T1543.003 — Windows 服务 (Windows Service) | 安装服务 WinUpdateHelper 以在重启后维持持久化 |
| T1036 — 伪装 (Masquerading) | 精心挑选的服务和账户名称,使其类似于合法的系统组件 |
## 背景与声明
本次调查完全在一台处于 Workgroup 配置的个人独立 Windows 笔记本电脑上进行。所有活动均源自本地 —— 源网络地址始终为 127.0.0.1。这里没有真实的攻击者,没有外部网络参与,也没有发生任何实质性的入侵。调查完成并获取证据后,测试账户(testuser1 和 backdoor_svc)以及虚拟服务(WinUpdateHelper)均已被删除。
报告及所有支持性文件的结构均与真实的 SOC L1 事件报告格式保持一致。其目的是展示在 L1 级别预期的调查工作流、日志分析技能和文档标准 —— 并非声称这是一次真实的生产环境事件。
## 背景
本项目是自学 SOC L1 学习路径的最后阶段,涵盖 Windows 操作系统基础、Windows 安全概念(Active Directory、域与 Workgroup、SID、身份验证与授权)、Windows 事件日志记录、核心 Event ID、登录类型和身份验证细节、日志关联与时间轴构建,以及常见攻击模式识别。该学习路径从零基础开始,经历了九个结构化阶段,最终才到达这个调查项目。
CASE-002 与 CASE-001(SOC 网络钓鱼邮件调查)属于同一个系列作品,遵循相同的调查结构和文档标准。
## 作者
Satya Upendra Samana
初级 SOC 分析师
Google Cybersecurity 认证
2026 年 7 月
GitHub: https://github.com/satyaupendrasamana
标签:AI合规, Cloudflare, MITRE ATT&CK, Windows事件日志, 安全运营, 库, 应急响应, 扫描框架, 红队行动