batuthzcode/ESP32-Web-Based-Attack-Defense-System
GitHub: batuthzcode/ESP32-Web-Based-Attack-Defense-System
该项目是一个基于双 ESP32 设备与 Web Serial API 的无线安全攻防实验室系统,用于在受控环境中模拟无线攻击并实现防御监控与告警。
Stars: 0 | Forks: 0
# ESP32 基于 Web 的攻击模拟与防御系统
### ESP32 基于 Web 的攻击模拟与防御系统
**由 Batuthz 开发的基于 ESP32 + OLED + Web Serial API 的双设备无线安全实验室。**
[](LICENSE)
[](#硬件--donanım)
[](#web-panel--web-paneli)
[](#中文)
[](#项目状态--proje-durumu)
[🇹🇷 Türkçe](#türkçe) •
[🇬🇧 English](#english) •
[🧩 架构](#system-architecture--sistem-mimarisi) •
[💾 固件](#firmware-files--firmware-dosyaları) •
[🌐 Web 面板](#web-panel--web-paneli) •
[🖼️ 图库](#gallery--galeri) •
[⚖️ License](#license--lisans)
# 中文
## 项目摘要
本项目是一个无线安全实验室系统,它将两个独立的 ESP32 设备与基于 Web 的管理面板结合在一起。
系统将三种不同的固件工作流分离开来:
1. **授权攻击/测试固件**
2. **安全的攻击模拟固件**
3. **防御与监控固件**
通过这种分离,真实的实验室测试、非破坏性的安全模拟以及防御/监控操作可以在同一项目内通过独立的文件进行管理。
## 主要特性
- 双 ESP32 设备的攻击-防御架构
- 基于 OLED 的设备端菜单
- 通过 Web Serial API 从浏览器直接连接 ESP32
- CP2102 USB-UART 串口通信
- 实时串口日志查看
- 类 WIDS 的事件记录
- Honeypot 告警工作流
- SSID 广播与列表管理
- 手动 CLI 界面
- 授权的实验室测试控制
- 安全的非破坏性攻击模拟
- 中文与英文技术文档
## 系统架构
```
┌──────────────────────────────┐
│ Saldırı/Test ESP32 │
│ attack-simulation-device.ino │
└──────────────┬───────────────┘
│
│ Yetkili laboratuvar test akışı
│
┌──────────────▼───────────────┐
│ Güvenli Simülasyon ESP32 │
│ simulation-password.ino │
└──────────────┬───────────────┘
│
│ Zararsız simülasyon olayı
│
┌──────────────▼───────────────┐
│ Savunma ESP32 │
│ defense-monitoring-device.ino│
└──────────────┬───────────────┘
│ USB / CP2102
│
┌──────────────▼───────────────┐
│ Web Serial API │
└──────────────┬───────────────┘
│
┌──────────────▼───────────────┐
│ Web Panel │
│ Log • WIDS • Alarm • CLI │
└──────────────────────────────┘
```
## 固件文件
### `attack-simulation-device.ino`
在受控且明确授权的实验室环境中执行攻击/测试功能。
主要功能:
- 启动和停止授权的测试工作流
- 在 OLED 上显示测试状态
- 接收来自 Web 面板的串口命令
- 通过手动 CLI 进行控制
- 生成测试和证据日志
### `simulation-password.ino`
这是不会产生破坏性攻击流量的安全模拟固件。
工作流程:
1. 扫描无线网络
2. 寻找授权的防御接入点
3. 使用配置的实验室密码进行连接
4. 准备源 MAC 和目标 SSID 信息
5. 向防御设备的模拟端点发送无害事件
6. 防御设备记录该事件并将其转发至 Web 面板
### `defense-monitoring-device.ino`
运行在防御和访问监控设备上。
主要功能:
- 锁定的实验室接入点
- OLED 菜单和状态屏幕
- 类 WIDS 的事件记录
- Honeypot 告警处理
- SSID 广播和列表管理
- 串口日志
- 接收模拟事件
- 源 MAC 和目标 SSID 记录
- 自动防御模式
- 向 Web 面板实时传输数据
## Web 面板
Web 面板利用浏览器的 **Web Serial API** 特性直接连接到 ESP32 设备。
连接流程:
```
ESP32 → CP2102 USB-UART → Web Serial API → Web Panel
```
面板功能:
- ESP32 连接管理
- 实时串口日志
- 防御模式
- Honeypot 启动/停止
- WIDS 事件日志
- 告警界面
- SSID 广播管理
- SSID 列表管理
- 手动 CLI
- 授权的实验室测试按钮
- 状态和证据日志
## 硬件
- ESP32-WROOM-32U 开发板
- 兼容 SH1106 / SSD1106 的 OLED 屏幕
- 外部天线
- 面包板
- 按钮
- 跳线
- CP2102 USB-UART 连接
## 安装摘要
1. 在 Arduino IDE 中安装 ESP32 开发板包。
2. 添加所使用的 OLED 库。
3. 打开相关的 `.ino` 文件。
4. 将示例网络信息替换为您的实验室信息。
5. 将固件烧录到正确的 ESP32 设备中。
6. 通过 USB 将防御端 ESP32 连接到计算机。
7. 在支持 Web Serial 的浏览器中打开 Web 面板。
8. 选择 CP2102 串口设备。
9. 监控日志、告警状态和模拟事件。
# 英语
## 项目概述
本项目是一个无线安全实验室系统,它将两个 ESP32 设备与基于 Web 的管理面板结合在一起。
它将三种不同的固件工作流分离开来:
1. **授权攻击/测试固件**
2. **安全攻击模拟固件**
3. **防御和监控固件**
这种分离使得授权的实验室测试、非破坏性模拟和防御监控可以在同一项目中共存,同时在不同的源文件中保持清晰的隔离。
## 主要特性
- 双 ESP32 攻击/防御架构
- 基于 OLED 的设备端菜单
- 通过 Web Serial API 实现浏览器到 ESP32 的直接连接
- CP2102 USB 转 UART 串口通信
- 实时串口日志记录
- 类 WIDS 风格的事件记录
- Honeypot 告警工作流
- SSID 广播和列表管理
- 手动 CLI 界面
- 授权的实验室测试控制
- 安全的非破坏性模拟
- 双语技术文档
## 固件文件
### `attack-simulation-device.ino`
在受控的实验室环境中运行授权的攻击和安全测试功能。
主要功能:
- 启动和停止授权的测试工作流
- 在 OLED 上显示测试状态
- 接收来自 Web 面板的串口命令
- 手动 CLI 控制
- 生成测试和证据日志
### `simulation-password.ino`
提供安全且非破坏性的攻击模拟工作流。
流程:
1. 扫描无线网络
2. 寻找授权的防御接入点
3. 使用配置的实验室密码进行连接
4. 准备源 MAC 和目标 SSID 信息
5. 向防御设备模拟端点发送无害事件
6. 防御设备记录事件并将其转发至 Web 面板
### `defense-monitoring-device.ino`
在防御和访问监控 ESP32 上运行。
主要功能:
- 锁定的实验室接入点
- OLED 菜单和状态屏幕
- 类 WIDS 风格的事件记录
- Honeypot 告警处理
- SSID 广播和列表管理
- 串口日志记录
- 模拟事件处理
- 源 MAC 和目标 SSID 记录
- 自动防御模式
- 向 Web 面板实时传输数据
## Web 面板
Web 面板使用浏览器的 **Web Serial API** 直接连接到 ESP32。
连接流程:
```
ESP32 → CP2102 USB-UART → Web Serial API → Web Panel
```
面板功能:
- ESP32 连接管理
- 实时串口日志
- 防御模式控制
- Honeypot 启动/停止控制
- WIDS 事件日志
- 告警界面
- SSID 广播管理
- SSID 列表管理
- 手动 CLI
- 授权的实验室测试按钮
- 状态和证据日志
## 硬件
- ESP32-WROOM-32U 开发板
- 兼容 SH1106 / SSD1106 的 OLED 显示屏
- 外部天线
- 面包板
- 按钮
- 跳线
- CP2102 USB 转 UART 接口
## 仓库结构
```
.
├── docs/
│ ├── project-report-bilingual-v2.docx
│ ├── project-report-bilingual-v2.pdf
│ └── images/
├── firmware/
│ ├── attack-simulation-device/
│ │ ├── attack-simulation-device.ino
│ │ └── simulation-password.ino
│ └── defense-monitoring-device/
│ └── defense-monitoring-device.ino
├── images/
├── web-panel/
│ └── admin-panel.html
├── .gitignore
├── CITATION.cff
├── LICENSE
├── NOTICE
├── README.md
└── SECURITY.md
```
## 图库 / Galeri
### ESP32 硬件
### Web 界面
## 项目状态 / Proje Durumu
- [x] ESP32 攻击/测试固件
- [x] 安全模拟固件
- [x] 防御监控固件
- [x] OLED 界面
- [x] Web Serial 集成
- [x] 实时日志视图
- [x] WIDS 事件记录
- [x] 告警工作流
- [x] 双语报告
- [x] 公开仓库净化处理
## 文档 / Dokümantasyon
双语技术报告位于 `docs/` 目录中。
- `docs/project-report-bilingual-v2.docx`
- `docs/project-report-bilingual-v2.pdf`
## License / Lisans
本项目基于 **Apache License 2.0** 授权。
您可以:
- 使用
- 学习
- 修改
- 重新分发
- 开发衍生作品
重新分发或修改的版本必须保留所需的许可证和归属声明。
必需的归属声明:
参见:
- [`LICENSE`](LICENSE)
- [`NOTICE`](NOTICE)
## Batuthz 归属声明
**Batuthz** 标识了原始项目及其来源。
不得使用 Batuthz 名称虚假声称对修改版本的认可、合作关系或官方批准。
## 道德与法律声明
本仓库仅用于:
- 授权的安全测试
- 受控的实验室模拟
- 网络安全教育
- 防御性安全研究
- ESP32 开发
- Web Serial API 实验
未经明确许可,请勿将本项目用于任何网络、系统、账户、服务或设备。
## 免责声明
本项目按“原样”提供,不提供任何保证。
对于因使用本项目而导致的滥用、未经授权的活动、网络中断、数据丢失、硬件损坏、法律后果或其他损害,原作者和贡献者概不负责。
### 以 Batuthz 名称开发
[⬆ 回到顶部](#esp32-web-based-attack-simulation-and-defense-system)
标签:ESP32, OLED, Web Serial, 主机安全, 后端开发, 多模态安全, 密码管理, 插件系统, 攻击模拟, 物联网, 网络安全实验环境, 驱动签名利用