ninedter/pcap-hunter

GitHub: ninedter/pcap-hunter

这是一个集成了Zeek、Tshark与LLM的AI威胁狩猎工作台,能够自动分析PCAP文件、检测C2通信并生成多语言安全报告。

Stars: 109 | Forks: 18

# PCAP Hunter [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/) [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) **PCAP Hunter** 是一个 AI 增强的威胁狩猎工作台,连接了手动数据包分析和自动化安全监控。它赋能 SOC 分析师和威胁猎人快速从原始 PCAP 文件中摄取、分析并提取可操作的情报。 通过结合行业标准网络分析工具(**Zeek**、**Tshark**、**PyShark**)与 **大语言模型** 和 **OSINT** API,PCAP Hunter 自动化了数据包分析中繁琐的部分——解析、关联和丰富——以便分析师能够专注于检测和响应。 📖 **[用户手册 (英文)](docs/en/USER_MANUAL.md)** | **[中文說明 (繁體中文)](docs/zh-TW/README.md)** ## 目录 - [主要功能](#key-features) - [架构](#architecture) - [安装](#installation) - [快速开始](#quick-start) - [使用指南](#usage-guide) - [配置](#configuration) - [Docker](#docker) - [开发](#development) - [文档](#documentation) - [许可证](#license) ## 主要功能 ### AI 驱动的威胁分析 - **自动化报告** — 生成专业的、SOC 就绪的威胁报告,包含经过严重性校准的评估、误报感知和结构化的分析工作流(特征化 → 识别 → 评估 → 建议)。 - **本地与云端 LLM 支持** - **本地隐私**:完全兼容 [LM Studio](https://lmstudio.ai/)(Llama 3, Mistral 等),适用于物理隔离或隐私敏感的环境。 - **云端算力**:支持任何 OpenAI 兼容的 API 端点,以利用更大的模型。 - **多语言报告** — 支持 9 种语言及特定区域术语:英语、繁体中文(台湾)、简体中文、日语、韩语、意大利语、西班牙语、法语、德语。 - **MITRE ATT&CK 映射** — 自动将检测到的行为和 IOC 映射到 ATT&CK 技术和 Kill Chain 阶段。 - **攻击叙事综合** — 将原始事件转化为连贯、可操作的安全故事。 ### IOC 优先级评分 - **分层信号架构** — 使用三层模型动态将指标评为严重、高、中或低: - **第 1 层(确定性)**:OSINT 确认(VirusTotal, GreyNoise 恶意)—— 任何单个第 1 层命中都会设定分数下限。 - **第 2 层(行为性)**:C2 信标、流量不对称、DNS 隧道、DGA 域名。 - **第 3 层(上下文)**:AbuseIPDB、自签名证书、过期证书、YARA 匹配。 - 仅第 3 层信号永远不会超过“中”级;需要来自多层的佐证才能达到“高”或“严重”级。 ### 跨指标关联引擎 - **独立性互补公式** — 使用 `1 − Π(1 − wᵢsᵢ)`(贝叶斯独立性模型)代替线性求和,产生收益递减效应,同时允许多个弱信号有意义地叠加。 - **强信号下限** — 确认的 VirusTotal 检测会自动设定最低分数,无论其他因素如何。 - 聚合所有分析模块(OSINT、信标、DNS、TLS、YARA、流量分析)的信号。 - 为每个指标生成综合威胁分数及判定分类(严重 / 高 / 中 / 低)。 ### 流量分析与数据渗出检测 - **数据渗出检测** — 识别每个源/目标对的可疑出站:入站字节比(默认阈值:10:1,最小 1 MB)。 - **端口异常检测** — 标记非标准端口使用、C2 常见端口(4444, 5555, 6666 等)以及高位端口对。 ### 多 PCAP 批处理 - **多文件上传** — 同时上传并分析多个 PCAP 文件。 - **跨文件关联** — 检测跨文件共享的 IP、域名和 JA3 指纹。 - **合并仪表板** — 聚合结果,包含每个文件的详细卡片和批处理摘要。 - **资源限制** — 可配置限制:每个文件 1 GB,最多 50 个文件,总计 5 GB。 ### 并行流水线执行 - **PyShark + Zeek 并行** — 两个最繁重的阶段通过 ThreadPoolExecutor 并发运行。 - **HTTP 提取并行** 与 DNS/TLS/信标分析一起进行。 - **Tshark `-c` 优化** — 在 tshark 层级强制执行数据包限制,实现零浪费 I/O。 ### 深度包检测与流量分析 - **多引擎流水线**:PyShark 用于细粒度检查,Tshark 用于高速统计。 - **协议解析**:自动提取 HTTP、DNS、TLS/SSL 和 SMB 协议的元数据。 ### Zeek 集成 - 在上传的 PCAP 上自动执行 Zeek —— 无需手动 CLI。 - 解析并关联核心 Zeek 日志:`conn.log`、`dns.log`、`http.log`、`ssl.log`。 ### 高级 DNS 与 TLS 取证 - **DGA 检测** — 基于香农熵的域名生成算法识别。 - **DNS 隧道** — 检测高容量 / 异常 DNS 负载。 - **Fast Flux 检测** — 识别解析到快速变化 IP 地址的域名。 - **JA3/JA3S 指纹识别** — 将 TLS 指纹与 90+ 已知恶意软件签名(Cobalt Strike, Trickbot, Emotet, QakBot 等)进行匹配。 - **证书分析** — 验证证书链;检测自签名和过期证书。 ### C2 信标检测 - 基于以下因素对流进行评分的统计算法: - **周期性** — 通信间隔的规律性(CV + 熵评分)。 - **抖动** — 模态间隔分析,具有 ±20% 容差,用于检测随机化的 C2。 - **容量** — 数据包计数和负载大小一致性。 - **误报减少** — 多层惩罚以防止良性流量触发警报: - 基础设施白名单(DNS 解析器:1.1.1.1, 8.8.8.8 等) - 协议感知(ICMP, NTP, mDNS, SSDP, IGMP 本质上是周期性的) - 服务端口惩罚(HTTPS, IMAPS, Apple Push, MQTT, SIP) - 高容量大负载过滤(流媒体/下载 vs C2) ### 负载提取与 YARA 扫描 - **HTTP 负载提取** 通过 `tshark` 并自动进行 SHA256 哈希。 - **YARA 扫描仪** — 使用自定义/社区 YARA 规则扫描提取的文件。 - **安全存储** — 带有路径遍历和符号链接保护的隔离目录。 ### 交互式仪表板与世界地图 - **威胁摘要面板** — 一目了然的风险级别(严重/高/中/低),具有基于佐证的升级、警报计数、信标候选、YARA 命中和证书问题。 - **世界地图** — 威胁级别着色、基于厚度的连接弧线、可配置的家乡位置。 - **交叉筛选** — 跨地图、协议饼图和流量时间线的统一钻取。 - **持久视图选项** — “排除私有 IP”开关在交互式探索期间保持。 - **TopN 图表** — Top IP、端口、协议、域名,带有聚合条形图、指标和 **反向 DNS 主机名**。 - **仪表板检测** — 信标候选、YARA 匹配和 TLS 证书风险直接显示在仪表板上。 - **网络通信图** — 力导向图,具有威胁着色节点和等纵横比渲染。 ### OSINT 丰富 与领先的威胁情报提供商集成: - **VirusTotal** — 文件哈希和 IP/域名信誉。 - **AbuseIPDB** — 众包 IP 滥用报告。 - **GreyNoise** — 互联网背景噪声和扫描器识别。 - **OTX (AlienVault)** — 开放威胁交换脉冲和指标。 - **Shodan** — 面向互联网的设备详情和开放端口。 - **智能缓存** — 支持可配置 TTL 的 SQLite 后端缓存,以保留 API 配额。 - **批量反向 DNS** — 对所有公共 IP 进行并行 rDNS 解析,具有 7 天 SQLite 缓存。主机名在整个仪表板中显示。 ### 案例管理系统 - 创建、跟踪和关闭调查案例。 - 存储带有严重性和上下文的 IOC(IP、域名、哈希、JA3、URL)。 - 调查笔记、基于标签的组织和搜索。 ### 专业 PDF 导出 - 多页 PDF 报告,包含执行摘要、关键发现、技术分析和建议。 - 通过 WeasyPrint 嵌入图表/可视化。 - 可配置的 TLP 分类。 ### 导出格式 - **CSV / JSON** — 导出任何数据表,具有 CSV 注入保护。 - **STIX 2.0/2.1** — 以标准 STIX 格式导出指标。 - **ATT&CK Navigator** — 导出 MITRE ATT&CK Navigator 的技术映射。 ## 架构 ``` app/ ├── analysis/ # Correlation engine, flow analysis, IOC scorer, narrator ├── database/ # Case management (SQLite) ├── llm/ # LLM client & multi-language report generation ├── pipeline/ # 10-stage analysis pipeline │ ├── beacon.py # C2 beaconing detection │ ├── carve.py # HTTP payload carving │ ├── dns_analysis.py # DGA, tunneling, fast flux │ ├── geoip.py # GeoIP resolution │ ├── ja3.py # JA3/JA3S fingerprinting │ ├── batch.py # Multi-PCAP batch processing & correlation │ ├── osint.py # OSINT provider queries (parallel) │ ├── osint_cache.py # SQLite OSINT caching layer │ ├── rdns_cache.py # SQLite reverse-DNS caching layer │ ├── tls_certs.py # Certificate validation │ └── yara_scan.py # YARA rule scanning ├── reports/ # PDF report generation ├── security/ # OPSEC hardening & data sanitization ├── threat_intel/ # MITRE ATT&CK mapping ├── ui/ # Streamlit interface (8 tabs) ├── utils/ # Export, GeoIP, config, binary discovery, network utils ├── config.py # Application defaults └── main.py # Streamlit entry point ``` ### 分析流水线(10 个阶段) 1. **数据包计数** — 通过 tshark 进行快速初步计数 2. **数据包解析** — 深度检查最多 200,000 个数据包(可配置) 3. **Zeek 处理** — 自动 Zeek 执行和日志解析 4. **DNS 分析** — DGA、隧道、fast flux、NXDOMAIN、查询速度 5. **TLS 证书分析** — 链验证、自签名/过期检测 6. **信标排名** — 用于 C2 检测的时间模式分析 7. **HTTP 提取** — 带有 SHA256 哈希的负载提取 8. **YARA 扫描** — 基于规则的文件扫描 9. **OSINT 丰富** — 多提供商信誉查询 10. **LLM 报告生成** — AI 驱动的威胁综合 ## 安装 ### 前置条件 | 工具 | 安装 | 安装 | |------|-----------------|-----------------| | **Python 3.10+** | `brew install python@3.12` | `sudo apt install python3` | | **Zeek** | `brew install zeek` | [Zeek 软件包](https://software.zeek.org/) | | **Tshark** | `brew install wireshark` | `sudo apt install tshark` | | **Pango** (PDF) | `brew install pango` | `sudo apt install libpango1.0-dev` | | **LM Studio** (可选) | [lmstudio.ai](https://lmstudio.ai/) | [lmstudio.ai](https://lmstudio.ai/) | ### 安装 ``` git clone https://github.com/ninedter/pcap-hunter.git cd pcap-hunter make install ``` ## 快速开始 ``` make run ``` 在浏览器中打开 `http://localhost:8501`。 ## 使用指南 1. **上传** — 在上传选项卡中拖放一个或多个 `.pcap` 文件。多个文件将触发具有跨文件关联的批处理模式。 2. **配置** — 在配置选项卡中设置您的 LLM 端点、家乡位置(大洲 > 国家 > 城市)和 OSINT API 密钥。 3. **分析** — 点击 **Extract & Analyze** 启动流水线。 4. **监控** — 在进度选项卡中观察阶段执行:数据包计数 > 解析 > Zeek > DNS/TLS > 信标 > 提取 > YARA > OSINT > LLM 报告。 5. **审查** — 跨仪表板、LLM 分析、OSINT、原始数据和案例选项卡探索结果。 6. **导出** — 下载 CSV/JSON 数据、PDF 报告、STIX 包或 ATT&CK Navigator 层。 ### 重新运行报告 更改了您的 LLM 模型或语言?点击 **Re-run Report** 仅重新生成 AI 报告,而无需重新处理整个 PCAP。 ### 数据管理 使用配置中的细粒度 **清除** 按钮独立擦除 PCAP 数据、OSINT 缓存或案例数据库。 ## 配置 默认值在 `app/config.py` 中管理,并持久化到 `.pcap_hunter_config.json`。 | 设置 | 默认值 | 描述 | |---------|---------|-------------| | `LM_BASE_URL` | `http://localhost:1234/v1` | LLM API 端 | | `LM_MODEL` | `local` | 模型标识符 | | `LM_LANGUAGE` | `US English` | 报告语言 | | `DEFAULT_PYSHARK_LIMIT` | `200,000` | 深度检查的最大数据包数 | | `OSINT_TOP_IPS_DEFAULT` | `50` | 要丰富的 Top IP 数量(0 = 全部) | | `OSINT_CACHE_ENABLED` | `True` | OSINT 结果的 SQLite 缓存 | | `PARALLEL_PARSE_ENABLED` | `True` | 并行运行 PyShark + Zeek | | `RDNS_CACHE_TTL_HOURS` | `168` (7 天) | 反向 DNS 缓存 TTL | | `BATCH_MAX_FILES` | `50` | 多 PCAP 批处理中的最大文件数 | | `DATA_DIR` | `./data` | 分析产物的存储 | ### OSINT API 密钥 通过配置选项卡或环境变量设置: ``` export OTX_KEY="your-key" export VT_KEY="your-key" export ABUSEIPDB_KEY="your-key" export GREYNOISE_KEY="your-key" export SHODAN_KEY="your-key" ``` ## Docker ``` docker build -t pcap-hunter . docker run -p 8501:8501 pcap-hunter ``` Docker 镜像预装了 Zeek 和 Tshark。挂载卷以持久化数据: ``` docker run -p 8501:8501 -v $(pwd)/data:/app/data pcap-hunter ``` ## 开发 ``` make test # Run tests with coverage make lint # Lint with Ruff make format # Format code with Ruff make clean # Clean caches ``` ### macOS 捕获权限 ``` make fix-permissions ``` ### CI/CD GitHub Actions 在每次推送到 `main` 或 PR 时运行: - Python 3.11 测试套件及覆盖率 - Ruff 代码检查和格式检查 ## 文档 - [用户手册 (英文)](docs/en/USER_MANUAL.md) - [使用手冊 (繁體中文)](docs/zh-TW/USER_MANUAL.md) - [更新日志](CHANGELOG.md) ## 许可证 MIT 许可证。详情请参阅 [LICENSE](LICENSE)。 版权所有 (c) 2025 ninedter
标签:AI安全, C2检测, Chat Copilot, Cloudflare, DLL 劫持, Docker, ESC4, JA3指纹识别, Kubernetes, MITRE ATT&CK, OpenAI兼容, OSINT, PCAP分析, PyShark, Python, Rootkit, Tshark, Zeek, 命令与控制检测, 多语言支持, 大语言模型, 安全报告生成, 安全测试框架, 安全运营中心, 安全防御评估, 无后门, 本地LLM, 网络安全, 网络安全, 网络映射, 自动化分析, 请求拦截, 跨站脚本, 逆向工具, 隐私保护, 隐私保护