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), 无后门, 物联网, 网络信息收集, 远程系统管理, 逆向工具