Crazycharlie04/ETW-Windows-telemetry-collector
GitHub: Crazycharlie04/ETW-Windows-telemetry-collector
该系统利用 ETW 遥测采集 Windows 内核级行为数据,并通过 Python 引擎检测恶意软件、勒索软件及 LolBins 攻击行为。
Stars: 0 | Forks: 0
# Windows 遥测恶意软件与勒索软件检测工具
## 概述
本项目是一个行为恶意软件与勒索软件检测系统,作为桑德兰大学网络安全与数字取证理学学士(荣誉)学位毕业设计的一部分而开发。
该系统使用 Event Tracing for Windows 收集 Windows 进程、文件系统、注册表和网络遥测数据。基于 Python 的分析引擎会检查捕获的事件,寻找与恶意软件、勒索软件以及 Living-off-the-Land 活动相关的行为指标。
本项目使用受控的模拟器来生成可疑行为,而不会执行真实的恶意软件。
## 主要功能
* 使用 C# ETW 收集器收集 Windows 遥测数据
* 记录进程、文件系统、注册表和网络活动
* 以 JSON Lines 格式存储捕获的事件
* 检测编码或混淆的 PowerShell 执行
* 检测 Office 应用程序启动命令解释器的行为
* 检测 Run 和 RunOnce 注册表持久化
* 检测高频文件写入活动
* 检测快速的文件重命名和删除行为
* 将进程和注册表事件关联为多阶段序列
* 包含用于测试检测规则的安全模拟器
## 检测架构
1. C# 收集器捕获 Windows 内核遥测数据。
2. 事件被规范化并写入 `C:\Telemetry\telemetry.json`。
3. Python 分析引擎读取捕获的遥测数据。
4. 基于行为和序列的检测规则在控制台中生成警报。
5. 模拟器提供受控的真实基准活动以供评估。
## 项目文件
* `Program.cs` — 应用程序菜单与组件编排
* `ETWCollector.cs` — ETW 遥测数据收集
* `TelemetryProcessor.cs` — 事件处理与规范化
* `analyze_telemetry.py` — 行为检测与警报生成
* `ETWCollector.csproj` — .NET 项目配置
# 前置条件
在运行系统之前,必须安装以下组件:
* **.NET SDK** — 从 [https://dotnet.microsoft.com/en-us/download](https://dotnet.microsoft.com/en-us/download) 下载并安装。安装时请确保选择最新版本。打开命令提示符并运行以下命令进行验证:
```
dotnet --version
```
* **Python** — 从 [https://www.python.org/downloads/](https://www.python.org/downloads/) 下载并安装。安装时请确保勾选 Add Python to PATH。打开命令提示符并运行以下命令进行验证:
```
python --version
```
# 下载项目
下载项目文件夹并将其解压到您选择的位置,例如:
```
C:\ETWTelemetry
```
项目文件夹应包含以下文件:
```
Program.cs
ETWCollector.cs
TelemetryProcessor.cs
analyze_telemetry.py
ETWCollector.csproj
```
# 安装说明
以管理员身份打开命令提示符,并导航至项目文件夹:
```
cd C:\ETWTelemetry
```
安装所需的 NuGet 包:
```
dotnet add package Microsoft.Diagnostics.Tracing.TraceEvent
```
创建遥测输出文件夹:
```
mkdir C:\Telemetry
```
构建项目以确认一切正常:
```
dotnet build
```
您应该会看到:
```
Build succeeded with 1 warning(s)
```
如果构建失败,请检查 .NET SDK 是否安装正确,以及文件夹中是否包含所有项目文件。
# 运行系统
以管理员身份打开命令提示符 — 这是 ETW 内核访问所必需的,否则系统将静默失败。
导航至项目文件夹:
```
cd C:\ETWTelemetry
```
运行应用程序:
```
dotnet run
```
您应该会看到菜单:
```
=== ETW Telemetry Project Menu ===
1) Run ETW Collector
2) Run Python Analysis
3) Start File Write Simulator (powershell.exe) [loops]
4) Start Encoded LOLBin Simulator (powershell.exe) [once]
5) Start Multi-Stage Sequence Simulator (cmd.exe) [once]
6) Start File Rename Simulator (wscript.exe) [loops]
7) Start File Delete Simulator (certutil.exe) [once]
8) Start Office Spawn Simulator (winword.exe -> cmd.exe) [once]
9) Exit
```
# 推荐运行顺序
选择选项 1 以启动 ETW 收集器 — 这将在后台开始捕获真实的 Windows 遥测数据,并且必须在运行任何模拟器之前启动。
选择任意模拟器选项 3 到 8,以生成模拟的 Living-off-the-Land 攻击行为。
选择选项 2 以对收集的遥测数据运行 Python 分析,并在控制台输出中查看检测警报。
# 遥测日志
所有遥测数据均写入:
```
C:\Telemetry\telemetry.json
```
您可以随时打开此文件以检查捕获的原始事件。请注意,在 ETW 收集器运行期间,此文件会持续增长。要开始新的收集,请在再次启动收集器之前删除或重命名现有文件。
# 重要提示
系统必须以管理员身份运行,否则 ETW 内核会话将无法启动。
该系统仅在 Windows 11 上进行了测试。
标签:DNS 反向解析, ETW, Python, 勒索软件检测, 多人体追踪, 无后门, 逆向工具