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, 句柄查看, 网络安全, 隐私保护