dineshcoder0841/Network-Traffic-Analysis

GitHub: dineshcoder0841/Network-Traffic-Analysis

该项目演示了在 Kali Linux 上使用 Wireshark 与 Zeek 进行网络流量捕获、协议分析及异常检测的双层分析方法。

Stars: 0 | Forks: 0

# 网络流量分析 这是一个实用的网络安全项目,在 Kali Linux 上使用 tcpdump/Wireshark 捕获实时流量,并使用 Zeek 进行分析。项目包括协议检查、DNS/HTTP 日志分析、连接跟踪,以及使用 Zeek 的 conn.log、dns.log、http.log 和 notice.log 输出进行异常检测。 该项目演示了现实世界 SOC 分析师所使用的实用网络安全监控 (NSM) 技术。 ## 概述 现代网络会产生海量的流量,手动检查每一个数据包是不现实的。本项目展示了一种双层流量分析方法: - **Wireshark** — 手动的、逐个数据包的 GUI 分析,适用于对特定会话进行深入挖掘 - **Zeek** — 自动化的流量分析,将原始数据包转换为结构化、易读的日志(连接、DNS 查询、HTTP 请求、警报) 它们结合在一起,反映了真实网络安防监控的工作方式:Zeek 在大规模下标记出值得关注的流量,而 Wireshark 允许您深入查看实际的数据包内容。 ## 使用的工具与技术 | 工具 | 用途 | |---|---| | Kali Linux (VMware) | 基础操作系统 | | Wireshark | 基于 GUI 的数据包捕获与协议分析 | | Zeek | 自动化的流量分析与日志生成 | | tcpdump | 基于 CLI 的数据包捕获 | | Nmap | 用于异常检测测试的流量/扫描模拟 | | zeek-cut | 解析和过滤 Zeek 日志文件 | ## 项目工作流 ``` ┌───────────────────┐ │ 1. Setup Network │ Configure VM adapter (Bridged), verify interface └─────────┬──────────┘ ▼ ┌───────────────────┐ │ 2. Capture Traffic│ tcpdump / Wireshark → capture.pcap └─────────┬──────────┘ ▼ ┌───────────────────┐ │ 3. Analyze in │ Protocol hierarchy, filters, Follow TCP Stream, │ Wireshark │ Conversations, I/O Graph └─────────┬──────────┘ ▼ ┌───────────────────┐ │ 4. Analyze in Zeek │ Run pcap through Zeek → generates .log files └─────────┬──────────┘ ▼ ┌───────────────────┐ │ 5. Correlate │ Cross-reference Zeek log findings back into │ Findings │ Wireshark for packet-level confirmation └─────────┬──────────┘ ▼ ┌───────────────────┐ │ 6. Anomaly Test │ Simulate a port scan (Nmap) → detect via │ │ Zeek's weird.log / notice.log └───────────────────┘ ``` ## 操作步骤 1.设置 – 将 Kali 虚拟机网络适配器配置为桥接模式;验证活动接口 (ip a) 2.安装 Zeek – 添加 Zeek 官方仓库,安装 zeek-8.0,并将其添加到 PATH 中 3.捕获流量 – 在生成流量(浏览、ping、DNS 查询)的同时运行 tcpdump -i eth0 -w capture.pcap 4.在 Wireshark 中分析 – 打开 pcap 文件,检查协议层次结构,应用过滤器 (http, dns),使用追踪 TCP 流和会话进行深入检查 5.在 Zeek 中分析 – 运行 zeek -C -r capture.pcap 生成 conn.log、dns.log、http.log、notice.log 等 6.阅读日志 – 使用 zeek-cut 提取易读的字段(源/目标 IP、端口、查询、主要通信者) 7.关联发现 – 从 Zeek 日志中选取一个感兴趣的条目,在 Wireshark 中对其进行过滤,以查看完整的数据包级细节 8.异常检测测试 – 在捕获流量的同时运行 nmap -sS 127.0.0.1,然后检查 weird.log/notice.log 以确认 Zeek 是否标记了该扫描 ## Wireshark 分析重点 - **协议层次结构** — `Statistics → Protocol Hierarchy` - **追踪 TCP 流** — 右键点击数据包 → Follow → TCP Stream - **会话** — `Statistics → Conversations`(主要通信者、数据量) - **I/O Graph** — `Statistics → I/O Graph`(随时间可视化流量峰值) - **常用过滤器:** http dns tcp.port == 80 ip.addr == 192.168.1.1 tcp.flags.syn == 1 && tcp.flags.ack == 0 ## 关键学习点 - 如何在受控的实验室环境中捕获实时网络流量 - 手动 (Wireshark) 和自动化 (Zeek) 流量分析之间的区别 - 阅读和解释 Zeek 日志(`conn.log`、`dns.log`、`http.log`、`notice.log`) - 交叉关联两种不同安全工具之间的发现 - 使用 Zeek 内置分析器进行基本的异常/扫描检测 ## 免责声明 本项目完全在**受控、隔离的实验室环境**(个人 VMware 虚拟机)中进行,仅使用自生成的流量以及对 `localhost`/自身系统的扫描。未经授权,未扫描或针对任何外部系统。 ## 作者 本项目作为网络安全培训计划的一部分完成。
标签:CTI, Rootkit, Wireshark, Zeek, 句柄查看, 网络安全, 隐私保护