nickthelegend/evtx_new
GitHub: nickthelegend/evtx_new
运行在 Windows 主机上的 Python 安全代理,自动采集事件日志并通过 Chainsaw + Sigma 规则进行威胁狩猎,将检测结果上传至后端 API。
Stars: 0 | Forks: 0
# evtx_new — Windows 日志收集器与 Sigma 威胁狩猎工具
## 概述
`evtx_new` 是一个运行在 Windows 主机上的 Python 代理,用于自动化安全日志的收集和检测。在固定周期内,它从原生 Windows 事件日志(安全 / 系统 / 应用程序)中提取记录,将其导出为 JSON、XML 和 `.evtx` 格式,然后使用一套 Sigma 规则库对捕获的 `.evtx` 文件运行内置的 [Chainsaw](https://github.com/WithSecureLabs/chainsaw) 二进制程序,以标记可疑活动。收集的事件和所有检测结果都会上传到后端 API(并可选择发送邮件),这使其成为轻量级日志管理 / SIEM 风格流水线的端点部分。
该仓库包含了该收集器的多个迭代版本,以及将其打包成单个独立 Windows 可执行文件所需的资源。
## 功能
- **Windows 事件日志收集**:通过 `pywin32` (`win32evtlog`) 实现 — 读取安全、系统和应用程序日志,并对每个事件进行标准化处理(EventID、时间戳、来源、类型、类别、格式化消息)。
- **多格式导出** — 将事件写入 JSON 和 XML,并使用 `wevtutil epl` 将原始通道快照保存为 `.evtx` 格式。
- **基于 Sigma 的威胁狩猎** — 使用内置的 Sigma 规则集(`needed/` 目录下的 127 条 `win_security_*` 规则)以及 `mappings/` 目录下的 Chainsaw 事件日志映射,对捕获的 `.evtx` 文件调用 `chainsaw.exe hunt`。
- **后端集成** — 将收集的日志和 Chainsaw 检测结果 POST 到 API endpoint,并附带访问密钥、主机本地 IP 和主机名标记;还可以触发检测结果的邮件报告。
- **持续运行** — 按照固定的时间间隔在循环中运行,从而实现对主机的持续监控。
- **单文件分发** — PyInstaller 规范文件 (`evtx.spec`) 将脚本、`chainsaw.exe`、Sigma 规则和映射打包成一个 `evtx.exe`,该程序会请求 UAC 提权(读取安全日志时必需)。
## 技术栈
- **语言:** Python 3
- **Windows API:** `pywin32` (`win32evtlog`, `win32evtlogutil`, `win32security`), `wevtutil`
- **HTTP:** `requests`
- **威胁检测:** [Chainsaw](https://github.com/WithSecureLabs/chainsaw)
(内置 `chainsaw.exe`) + Sigma 规则
- **打包:** PyInstaller (`evtx.spec` → `evtx.exe`)
## 入门指南
### 前置条件
- 具备管理员权限的 Windows
- Python 3.x
### 安装依赖
```
pip install pywin32 requests
```
### 运行收集器
主要入口点是 `evtx.py`,它负责收集安全日志、运行 Chainsaw 并上传结果。它需要一个 API 访问密钥和一个报告邮箱:
```
python evtx.py --access-key --email you@example.com
```
`main.py` 是一个独立的变体,它仅收集系统 / 安全 / 应用程序日志,并将其写入本地的 `json/`、`xml/` 和 `evtx/` 文件夹(不上传到 API):
```
python main.py
```
### 构建独立可执行文件
```
pip install pyinstaller
pyinstaller evtx.spec
# 生成 dist/evtx.exe(包含 chainsaw.exe、Sigma rules 和 mappings)
```
API endpoint 配置在脚本的顶部(例如 `API_ENDPOINT`, `CHAINSAW_ENDPOINT`),默认指向 `http://localhost:3001` 上的本地后端。
## 项目结构
```
evtx_new/
├── evtx.py # Main agent: collect Security logs → Chainsaw → upload + email
├── final.py # Earlier full-pipeline variant (collect → Chainsaw → upload)
├── main.py # Standalone multi-channel collector (JSON/XML/EVTX, no upload)
├── evtx.spec # PyInstaller build spec (bundles binary + rules → evtx.exe)
├── chainsaw.exe # Bundled Chainsaw threat-hunting binary
├── needed/ # Sigma rule set (win_security_* .yml rules)
├── mappings/ # Chainsaw event-log field mappings
├── output/ # Chainsaw detection results (JSON)
└── dist/ # PyInstaller build output
```
由 [nickthelegend](https://github.com/nickthelegend) 开发 · [nickthelegend.tech](https://nickthelegend.tech)
标签:AMSI绕过, Python, Sigma规则, 威胁检测, 子域名变形, 安全运营, 扫描框架, 无后门, 日志收集, 漏洞挖掘, 目标导入