0xPersist/zeek-quick

GitHub: 0xPersist/zeek-quick

一款基于 Python 的 Zeek 日志快速 triage 工具,帮助安全人员在终端即时洞察关键威胁指标。

Stars: 0 | Forks: 0

# zeek-quick 用于 Zeek 日志的 CLI 快速分流工具。输入一个日志文件即可立即获取主要通信者、beacon、可疑域名、恶意 user agent 以及坏证书的摘要,无需加载完整的 SIEM。 支持 TSV 和 JSON 格式的 `conn.log`、`dns.log`、`http.log` 和 `ssl.log`。 ## 功能 - 根据文件名或字段头自动检测日志类型 - **conn.log**:按字节统计的主要通信者、长连接、beacon 检测 - **dns.log**:高频查询、可疑 TLD、罕见域名 - **http.log**:可疑 user agent、可疑 URI、主要目标 - **ssl.log**:自签名证书、过期证书、罕见的 JA3 哈希 - 双重 beacon 检测:频率阈值 + 间隔方差(变异系数) - 彩色终端输出 - 导出 JSON 以便集成到 pipeline - 内置测试用的样本日志 ## 安装 ``` git clone https://github.com/0xPersist/zeek-quick.git cd zeek-quick pip install -r requirements.txt ``` ## 用法 ``` usage: zeek-quick [-h] [--type TYPE] [--top N] [--long-duration SECS] [--beacon-min COUNT] [--beacon-jitter FLOAT] [--high-freq COUNT] [--rare-threshold COUNT] [--json] [--out FILE] [--no-banner] log positional arguments: log Path to Zeek log file options: --type TYPE Force log type: conn, dns, http, ssl --top N Number of top results to show (default: 10) --long-duration SECS Flag connections longer than N seconds (default: 300) --beacon-min COUNT Min connections to flag as beacon (default: 20) --beacon-jitter FLOAT Max interval CV for beacon detection (default: 0.3) --high-freq COUNT DNS query count threshold for high-frequency (default: 100) --rare-threshold COUNT Query/UA count considered rare (default: 2) --json Output results as JSON --out FILE Write JSON output to file --no-banner Suppress banner ``` ## 示例 **分流 conn.log:** ``` zeek-quick conn.log ``` **降低 beacon 阈值以提高灵敏度:** ``` zeek-quick conn.log --beacon-min 10 --beacon-jitter 0.2 ``` **带有自定义高频阈值的 DNS 日志:** ``` zeek-quick dns.log --high-freq 50 ``` **HTTP 日志,输出 JSON:** ``` zeek-quick http.log --json --out http_results.json ``` **SSL 日志,对管道友好:** ``` zeek-quick ssl.log --no-banner --json | jq '.self_signed' ``` **使用内置样本日志进行测试:** ``` zeek-quick samples/conn.log zeek-quick samples/dns.log zeek-quick samples/http.log zeek-quick samples/ssl.log ``` ## Beacon 检测 同时运行两种方法。如果满足以下任一条件,通信对将被标记。 **频率阈值**:标记连接次数超过 `--beacon-min` 的源/目标对。默认为 20 次连接。降低此值可捕获慢速 beacon。 **间隔方差**:计算连接间隔的变异系数(CV)。低 CV 意味着时间高度规律,这是一个强烈的 beacon 指标。默认阈值为 0.3(30% 的方差)。这可以捕获为了逃避简单频率检查而添加轻微抖动的 beacon。 两种方法独立报告,因此你可以查看触发了哪个条件。 ## 日志格式支持 支持 Zeek TSV(默认)和 JSON 日志格式。TSV 格式需要 `#fields` 头部行。JSON 格式预期每行一个 JSON 对象(NDJSON)。 轮转或压缩的日志在使用前应先解压: ``` zcat conn.log.gz | zeek-quick /dev/stdin --type conn ``` ## 样本日志 `samples/` 目录包含每种支持类型的脱敏示例日志。所有 IP 均使用 RFC 5737 文档范围(`192.0.2.x`、`198.51.100.x`、`203.0.113.x`),不包含任何真实的基础设施数据。 ## 环境要求 - Python 3.8+ - `colorama`(可选,用于彩色输出) - 除 stdlib 外无其他依赖 ## 许可证 MIT。详见 [LICENSE](LICENSE)。 *作者 [0xPersist](https://github.com/0xPersist)*
标签:AMSI绕过, IP 地址批量处理, Python, Rootkit, Zeek, 命令行工具, 威胁检测, 安全运营, 扫描框架, 无后门, 日志分析