Zalay21/Network-Security-Logger
GitHub: Zalay21/Network-Security-Logger
基于 PyShark 开发的轻量级网络监控脚本,用于实时捕获流量、识别 HTTP 明文敏感数据并导出结构化 JSON 日志。
Stars: 0 | Forks: 0
# 📡 网络安全日志记录器
一个基于 Python 的网络监控工具,用于捕获实时流量,检测 HTTP payload 中的可疑模式,并导出结构化日志以进行安全分析。该工具基于 **PyShark** (Wireshark/tshark) 构建以实现真实数据包捕获。



## 功能
- **实时数据包捕获** — 使用 PyShark 的 `LiveCapture` 实时监控网络接口
- **可疑模式检测** — 扫描 HTTP payload 中的敏感数据模式:`password`、`credit card`、`ssn`
- **结构化日志记录** — 将所有事件及其时间戳和严重级别记录到 `.log` 文件中
- **JSON 导出** — 将捕获的日志转换为结构化 JSON,以便与 SIEM 工具集成或进行手动分析
- **系统信息记录** — 在启动时记录主机名、本地 IP、操作系统和时间戳,用于取证上下文
## 项目结构
```
Network-Security-Logger/
├── network_monitor.py # Main monitoring script
├── network_security_logger.log # Generated at runtime — raw log output
├── LICENSE # MIT License
└── README.md
```
## 安装
**前置条件:**
- Python 3.8+
- 已安装 Wireshark / tshark 并可在 PATH 中访问
- Root 或 sudo 权限(数据包捕获所需)
```
# Clone 仓库
git clone https://github.com/Zalay21/Network-Security-Logger.git
cd Network-Security-Logger
# 安装 Python 依赖
pip install pyshark
# 验证 tshark 是否可用
tshark --version
```
## 使用
```
# 以提升的权限运行(packet capture 需要)
sudo python network_monitor.py
```
### 交互式提示
```
Enter network interface to monitor (e.g., 'eth0', 'wlan0'): eth0
```
该工具最多捕获 **100 个数据包**(可在源码中配置),分析 HTTP 流量中的可疑模式,并记录所有内容。
```
Enter filename to export logs as JSON (e.g., 'output.json'): capture_log.json
Network monitoring completed and logs exported.
```
### 日志输出示例
**原始日志** (`network_security_logger.log`):
```
2025-03-14 22:15:03,421 - INFO - System Info: {"hostname": "kali", "local_ip": "192.168.1.105", "date": "2025-03-14T22:15:03", "os": "posix"}
2025-03-14 22:15:04,892 - INFO - Starting packet capture on interface eth0
2025-03-14 22:15:05,210 - INFO - HTTP Packet captured: GET /api/users HTTP/1.1
2025-03-14 22:15:06,334 - WARNING - Suspicious pattern detected: password in packet: login_form&password=hunter2
```
**导出的 JSON** (`capture_log.json`):
```
[
{
"timestamp": "2025-03-14 22:15:03,421",
"level": "INFO",
"message": "System Info: {\"hostname\": \"kali\", \"local_ip\": \"192.168.1.105\"...}"
},
{
"timestamp": "2025-03-14 22:15:06,334",
"level": "WARNING",
"message": "Suspicious pattern detected: password in packet: login_form&password=hunter2"
}
]
```
## 工作原理
```
┌──────────────────┐
│ Network Traffic │
│ (eth0/wlan0) │
└────────┬─────────┘
│
┌────▼────┐
│ PyShark │ ← tshark backend
│ Capture │
└────┬────┘
│
┌────▼─────────────┐
│ Packet Analysis │
│ - HTTP inspection │
│ - Pattern match │
│ (password, ssn, │
│ credit card) │
└────┬─────────────┘
│
┌────▼──────────┐ ┌──────────────┐
│ Python Logger │────►│ .log file │
│ (INFO/WARN) │ └──────┬───────┘
└────────────────┘ │
┌─────▼──────┐
│ JSON Export │
│ (SIEM-ready)│
└────────────┘
```
## 技术栈
| 组件 | 技术 |
|-----------|-----------|
| 语言 | Python 3 |
| 数据包捕获 | PyShark (tshark/Wireshark 的 Python 封装) |
| 日志记录 | Python `logging` 模块 |
| 导出格式 | JSON |
| 网络分析 | 使用模式匹配进行 HTTP payload 检查 |
## 使用场景
- **实验室培训** — 在家庭实验室中练习网络监控和流量分析
- **安全审计** — 检测通过 HTTP 传输的明文凭据
- **事件响应** — 在安全调查期间捕获并导出流量日志
- **学习工具** — 深入了解数据包捕获和网络分析工具的底层工作原理
## 未来增强
- [ ] 支持更多协议 (FTP, DNS, SMTP, SSH)
- [ ] 通过电子邮件或 webhook 通知实现实时警报
- [ ] 通过外部配置文件配置模式列表
- [ ] 数据库存储以实现长期日志保留
- [ ] 用于可视化的交互式仪表板
- [ ] 按源/目标 IP 进行数据包过滤
## 作者
**Za Lay** — [GitHub](https://github.com/Zalay21) · [LinkedIn](https://linkedin.com/in/zalay0021) · [zalay0021@gmail.com](mailto:zalay0021@gmail.com)
标签:ETW劫持, Homebrew安装, HTTP分析, IP 地址批量处理, LLM应用, meg, PyShark, Python, Tshark, Wireshark, 信息安全, 句柄查看, 对抗攻击, 敏感信息检测, 无后门, 日志记录, 流量可视化, 网络嗅探, 网络安全, 自动化安全工具, 逆向工具, 防御绕过, 隐私保护