sahik67/esp8266-c2-pro
GitHub: sahik67/esp8266-c2-pro
面向 ESP8266/NodeMCU 的 C2 框架,通过 Web Dashboard 与 Python listener 实现远程命令执行、系统监控与安全管理。
Stars: 0 | Forks: 0
# ESP8266 C2 Professional 框架
用于 ESP8266/NodeMCU 的高级 C2 (Command & Control) 框架,配备用于远程系统管理的 Python listener。
## 功能特性
- **Web Dashboard**:用于执行命令的现代响应式 UI
- **安全性**:API key 身份验证、速率限制、命令净化
- **健壮性**:看门狗定时器、内存保护、自动恢复
- **监控**:实时状态跟踪、健康检查
- **跨平台**:支持 Windows/Linux,包含 50 多种系统命令
## 架构
### 组件
1. **ESP8266 固件** (`nodemcu_c2_pro.ino`)
- 80 端口上的 Web 服务器
- 命令队列管理
- 安全功能
- 内存保护
2. **Python Listener** (`pc_listener_pro.py`)
- 命令执行引擎
- 系统监控
- 自动恢复机制
- 全面的日志记录
## 设置
### 前置条件
- ESP8266/NodeMCU 开发板
- 支持 ESP8266 开发板的 Arduino IDE
- Python 3.7+
- 必需的 Python 包:`requests`
### Arduino IDE 设置
**选项 1:使用自定义开发板管理器(推荐)**
1. 添加自定义 ESP8266 开发板管理器 URL:
https://raw.githubusercontent.com/sahik67/esp8266-c2-pro/main/package_esp8266_c2_index.json
- 文件 → 首选项 → 附加开发板管理器网址
2. 安装 ESP8266 开发板:
- 工具 → 开发板 → 开发板管理器 → "esp8266"
3. 选择开发板:
- 工具 → 开发板 → ESP8266 Boards → NodeMCU C2 Professional
**选项 2:使用官方开发板管理器**
1. 添加 ESP8266 开发板管理器 URL:
https://arduino.esp8266.com/stable/package_esp8266com_index.json
- 文件 → 首选项 → 附加开发板管理器网址
2. 安装 ESP8266 开发板:
- 工具 → 开发板 → 开发板管理器 → "esp8266"
3. 选择开发板:
- 工具 → 开发板 → ESP8266 Boards → NodeMCU 1.0 (ESP-12E Module)
### ESP8266 配置
1. 在 Arduino IDE 中打开 `nodemcu_c2_pro.ino`
2. 更新 WiFi 凭据(第 22-23 行):
const char* ssid = "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";
3. 上传到 ESP8266
4. 从串口监视器中记录 IP 地址
### Python 配置
1. 安装依赖项:
pip install requests
2. 更新 `config.json`:
{
"server": {
"host": "YOUR_ESP8266_IP",
"port": 80
},
"security": {
"api_key": "YOUR_GENERATED_API_KEY"
}
}
3. 运行 listener:
python pc_listener_pro.py
### 生成 API Key
```
python pc_listener_pro.py --generate-key
```
## 使用说明
### Web Dashboard
通过浏览器访问:`http://YOUR_ESP8266_IP`
### 可用命令
**系统诊断:**
- `SYS_INFO` - 系统信息
- `NET_STAT` - 网络配置
- `PROCESS_LIST` - 进程审计
- `PORT_SCAN` - 端口扫描器
**高级分析:**
- `DNS_CACHE` - DNS 缓存分析
- `ROUTE_PRINT` - 路由表
- `ENV_VARS` - 环境变量
- `DISK_CHECK` - 磁盘健康检查
**性能测试:**
- `CPU_STRESS` - CPU 压力测试
- `MEM_CHECK` - 内存分析
- `PING_TEST` - 网络延迟测试
**系统管理:**
- `SERVICE_LIST` - 服务状态
- `EVENT_LOG` - 事件日志
- `FIREWALL_STATUS` - 防火墙状态
- `STARTUP` - 启动程序
**管理工具:**
- `REGEDIT` - 注册表编辑器
- `TASKMGR` - 任务管理器
- `SERVICES` - 服务管理器
- `DEVMGMT` - 设备管理器
## 安全特性
- **API Key 身份验证**:安全通信
- **速率限制**:60 次请求/分钟
- **命令净化**:输入验证
- **身份验证锁定**:5 次失败尝试 = 锁定 5 分钟
- **IP 白名单**:可选的客户端过滤
## 健壮性特性
- **看门狗定时器**:30 秒卡死检测
- **内存保护**:低内存时自动清理
- **连接重试**:3 次尝试,采用指数退避算法
- **边界检查**:防止数组溢出
- **优雅降级**:在出错时继续运行
## 配置
### 服务器设置
- 连接超时:10 秒
- 最大重试次数:3
- 重试延迟:2 秒
### 安全设置
- 最大身份验证尝试次数:5
- 锁定持续时间:5 分钟
- 会话超时:1 小时
### 监控设置
- 心跳间隔:10 秒
- 状态更新:30 秒
- 健康检查:60 秒
## 故障排除
### ESP8266 无法连接
- 检查 WiFi 凭据
- 验证网络范围 (192.168.x.x)
- 检查串口监视器是否有错误
### Python 连接超时
- 验证 ESP8266 IP 地址
- 检查防火墙设置
- 确保 ESP8266 已通电
### 命令未执行
- 检查 API key 是否匹配
- 验证命令白名单
- 检查审计日志
## 许可证
仅用于授权安全测试的教育性概念验证。
## 免责声明
本框架仅用于教育目的和授权的安全测试。未经授权的使用是非法的。
## 作者
Your Name - ESP8266 C2 Professional 框架
标签:ESP8266, Python, 命令与控制(C2), 无后门, 物联网, 网络信息收集, 远程系统管理, 逆向工具