venu-3754/wireshark-network-protocol-analysis
GitHub: venu-3754/wireshark-network-protocol-analysis
该项目是一个基于 Wireshark 的实战网络协议分析教学项目,通过真实数据包捕获演示多种协议的通信过程及明文凭据暴露等安全隐患。
Stars: 1 | Forks: 0
# 🦈 Wireshark 网络协议分析





# 项目概述
本项目演示了如何在一个受控的实验环境中,通过捕获和分析多个网络协议,使用 **Wireshark** 进行实际的**网络流量分析**。
其目的是了解常见网络协议的通信方式,检查数据包级别的通信,识别不安全的传输,并通过实际的数据包捕获记录安全发现。
该项目包括对以下内容的实际分析:
- HTTP
- HTTP 凭据捕获
- DNS
- TCP 三次握手
- ARP
# 架构
### HTTP 响应
服务器响应了 HTTP 状态码,例如 **200 OK** 和 **304 Not Modified**。
### HTTP Stream
HTTP stream 重构了客户端和服务器之间的完整通信。
### HTTP 之前的 TCP 连接
在交换 HTTP 数据之前,TCP 会建立一个可靠的连接。
### 协议层次结构
协议层次结构提供了数据包捕获期间观察到的所有协议的汇总。
### 会话
会话窗口汇总了端点之间的通信。
# HTTP 凭据分析
我们创建了一个存在漏洞的 HTTP 登录页面,以演示在未加密传输时凭据是如何暴露的。
### 登录页面
### POST 请求过滤器
```
http.request.method == "POST"
```
### 捕获的 HTTP POST 请求
提交的登录请求包含通过 HTTP 传输的表单数据。
### 明文凭据
因为 HTTP 不提供加密,所以用户名和密码以明文形式可见。
### 跟踪 HTTP Stream
跟踪 HTTP stream 可以重构完整的通信,这证明了为什么敏感凭据永远不应该通过未加密的 HTTP 传输。
# DNS 数据包分析
DNS 流量是使用 **nslookup** 生成的,并使用 Wireshark 进行了分析。
### 显示过滤器
```
dns
```
### DNS 查询
### DNS 响应
### 域名解析
DNS 响应将域名解析为其相应的 IP 地址。
# TCP 三次握手
在应用层通信开始之前,TCP 会建立一个可靠的连接。
### 显示过滤器
```
tcp.port == 8000
```
### TCP 过滤器
### TCP SYN
### TCP SYN-ACK
### TCP ACK
### 跟踪 TCP 三次握手
# ARP 数据包分析
对 ARP 流量进行了分析,以观察在本地网络上 IP 地址是如何映射到 MAC 地址的。
### 显示过滤器
```
arp
```
### ARP 请求
### ARP 响应
### ARP 数据包详情
### ARP 显示过滤器
# 安全发现
| 发现 | 风险等级 | 描述 |
|---------|------------|-------------|
| HTTP 流量以明文形式传输 | 高 | 任何具有网络可见性的人都可以检查 HTTP 请求和响应。 |
| 通过 HTTP 暴露的凭据 | 严重 | 通过 HTTP POST 请求提交的用户名和密码在数据包捕获中清晰可见。 |
| DNS 查询未加密 | 中 | 域名查询会暴露浏览活动和基础设施信息。 |
| ARP 协议无身份验证 | 中 | 在本地网络上可能会发生 ARP 欺骗攻击。 |
| TCP 提供可靠性但不提供机密性 | 低 | TCP 确保数据交付,但不加密传输的数据。 |
# 建议
- 每当传输凭据或敏感数据时,请使用 HTTPS 替代 HTTP。
- 为 Web 服务启用 TLS 加密。
- 实施安全的身份验证机制。
- 监控网络流量以发现可疑的 ARP 活动。
- 尽可能使用基于 HTTPS 的 DNS (DoH) 或基于 TLS 的 DNS (DoT)。
- 在安全调查期间定期检查数据包捕获。
- 禁用不安全的旧协议,例如 Telnet。
- 使用 SSH 而不是 Telnet 进行远程管理。
# 学习成果
通过这个项目,我获得了以下方面的实践经验:
- 使用 Wireshark 捕获实时网络流量。
- 应用特定于协议的显示过滤器。
- 重构 HTTP 通信。
- 检查明文凭据传输。
- 理解 DNS 域名解析。
- 分析 TCP 连接建立过程。
- 调查 ARP 请求和响应数据包。
- 记录数据包级别的安全观察结果。
# 如何复现
## 克隆仓库
```
git clone https://github.com/venu-3754/wireshark-network-protocol-analysis.git
```
## 启动本地 HTTP 服务器
```
cd http-login-demo
python server.py
```
## 启动 Wireshark
选择:
```
Npcap Loopback Adapter
```
## 捕获流量
生成以下流量:
- 访问本地 HTTP 网站
- 提交登录凭据
- 执行 DNS 查找
- 生成 TCP 流量
- 捕获 ARP 请求
## 应用过滤器
```
http
```
```
http.request.method=="POST"
```
```
dns
```
```
arp
```
```
tcp.port==8000
```
# 参考资料
- Wireshark 官方文档
- Npcap 文档
- RFC 791 (IP)
- RFC 793 (TCP)
- RFC 826 (ARP)
- RFC 1035 (DNS)
- RFC 9110 (HTTP)
# 未来改进
- HTTPS TLS 数据包分析
- SSH 数据包分析
- FTP 协议分析
- DHCP 数据包分析
- ICMP 数据包分析
- IPv6 流量分析
- 网络取证案例研究
- 恶意软件流量调查
# 作者
**SONGA VENUGOPAL**
网络安全专业本科生
专注于:
- 网络安全
- SOC 运营
- 数字取证
- 应急响应
- 威胁检测
GitHub:
https://github.com/venu-3754
## 许可证
本项目基于 MIT 许可证发布。
⭐ 如果您觉得这个项目有用,请考虑为该仓库点赞。
### HTTP 响应
服务器响应了 HTTP 状态码,例如 **200 OK** 和 **304 Not Modified**。
### HTTP Stream
HTTP stream 重构了客户端和服务器之间的完整通信。
### HTTP 之前的 TCP 连接
在交换 HTTP 数据之前,TCP 会建立一个可靠的连接。
### 协议层次结构
协议层次结构提供了数据包捕获期间观察到的所有协议的汇总。
### 会话
会话窗口汇总了端点之间的通信。
# HTTP 凭据分析
我们创建了一个存在漏洞的 HTTP 登录页面,以演示在未加密传输时凭据是如何暴露的。
### 登录页面
### POST 请求过滤器
```
http.request.method == "POST"
```
### 捕获的 HTTP POST 请求
提交的登录请求包含通过 HTTP 传输的表单数据。
### 明文凭据
因为 HTTP 不提供加密,所以用户名和密码以明文形式可见。
### 跟踪 HTTP Stream
跟踪 HTTP stream 可以重构完整的通信,这证明了为什么敏感凭据永远不应该通过未加密的 HTTP 传输。
# DNS 数据包分析
DNS 流量是使用 **nslookup** 生成的,并使用 Wireshark 进行了分析。
### 显示过滤器
```
dns
```
### DNS 查询
### DNS 响应
### 域名解析
DNS 响应将域名解析为其相应的 IP 地址。
# TCP 三次握手
在应用层通信开始之前,TCP 会建立一个可靠的连接。
### 显示过滤器
```
tcp.port == 8000
```
### TCP 过滤器
### TCP SYN
### TCP SYN-ACK
### TCP ACK
### 跟踪 TCP 三次握手
# ARP 数据包分析
对 ARP 流量进行了分析,以观察在本地网络上 IP 地址是如何映射到 MAC 地址的。
### 显示过滤器
```
arp
```
### ARP 请求
### ARP 响应
### ARP 数据包详情
### ARP 显示过滤器
# 安全发现
| 发现 | 风险等级 | 描述 |
|---------|------------|-------------|
| HTTP 流量以明文形式传输 | 高 | 任何具有网络可见性的人都可以检查 HTTP 请求和响应。 |
| 通过 HTTP 暴露的凭据 | 严重 | 通过 HTTP POST 请求提交的用户名和密码在数据包捕获中清晰可见。 |
| DNS 查询未加密 | 中 | 域名查询会暴露浏览活动和基础设施信息。 |
| ARP 协议无身份验证 | 中 | 在本地网络上可能会发生 ARP 欺骗攻击。 |
| TCP 提供可靠性但不提供机密性 | 低 | TCP 确保数据交付,但不加密传输的数据。 |
# 建议
- 每当传输凭据或敏感数据时,请使用 HTTPS 替代 HTTP。
- 为 Web 服务启用 TLS 加密。
- 实施安全的身份验证机制。
- 监控网络流量以发现可疑的 ARP 活动。
- 尽可能使用基于 HTTPS 的 DNS (DoH) 或基于 TLS 的 DNS (DoT)。
- 在安全调查期间定期检查数据包捕获。
- 禁用不安全的旧协议,例如 Telnet。
- 使用 SSH 而不是 Telnet 进行远程管理。
# 学习成果
通过这个项目,我获得了以下方面的实践经验:
- 使用 Wireshark 捕获实时网络流量。
- 应用特定于协议的显示过滤器。
- 重构 HTTP 通信。
- 检查明文凭据传输。
- 理解 DNS 域名解析。
- 分析 TCP 连接建立过程。
- 调查 ARP 请求和响应数据包。
- 记录数据包级别的安全观察结果。
# 如何复现
## 克隆仓库
```
git clone https://github.com/venu-3754/wireshark-network-protocol-analysis.git
```
## 启动本地 HTTP 服务器
```
cd http-login-demo
python server.py
```
## 启动 Wireshark
选择:
```
Npcap Loopback Adapter
```
## 捕获流量
生成以下流量:
- 访问本地 HTTP 网站
- 提交登录凭据
- 执行 DNS 查找
- 生成 TCP 流量
- 捕获 ARP 请求
## 应用过滤器
```
http
```
```
http.request.method=="POST"
```
```
dns
```
```
arp
```
```
tcp.port==8000
```
# 参考资料
- Wireshark 官方文档
- Npcap 文档
- RFC 791 (IP)
- RFC 793 (TCP)
- RFC 826 (ARP)
- RFC 1035 (DNS)
- RFC 9110 (HTTP)
# 未来改进
- HTTPS TLS 数据包分析
- SSH 数据包分析
- FTP 协议分析
- DHCP 数据包分析
- ICMP 数据包分析
- IPv6 流量分析
- 网络取证案例研究
- 恶意软件流量调查
# 作者
**SONGA VENUGOPAL**
网络安全专业本科生
专注于:
- 网络安全
- SOC 运营
- 数字取证
- 应急响应
- 威胁检测
GitHub:
https://github.com/venu-3754
## 许可证
本项目基于 MIT 许可证发布。
⭐ 如果您觉得这个项目有用,请考虑为该仓库点赞。标签:HTTP/DNS/TCP分析, Wildcard支持, Wireshark, 句柄查看, 明文凭证捕获, 网络协议分析, 网络抓包, 逆向工具, 防御绕过