z4y-d3n/modbus-tcp-auditor-tool
GitHub: z4y-d3n/modbus-tcp-auditor-tool
一款运行于M5StickC Plus2便携硬件上的Modbus TCP工控网络安全审计与漏洞评估工具,支持隐蔽侦察、协议指纹识别和主动内存审计。
Stars: 1 | Forks: 1
# Modbus TCP 审计工具




## 概述
Modbus TCP Auditor Tool 是一款专为运营技术 (OT) 和工业控制系统 (ICS) 环境设计的专用硬件评估工具。该工具仅在支持 W5500 以太网的 M5StickC Plus2 生态系统上运行,为安全研究人员和工程师提供了一个用于协议分析、网络发现和漏洞评估的便携式平台。
## 法律免责声明及使用条款
本软件和硬件配置仅供经授权的安全审计、学术研究和防御性工程使用。作者对任何滥用、未经授权的访问、设备损坏或生产停机不承担任何责任。在未获得明确、书面授权的情况下与可编程逻辑控制器 (PLC) 和 OT 网络进行交互是非法的,并会带来严重的安全和运营风险。
## 预期使用场景
* 验证配备 IDS/IPS 功能的安全工业网关的弹性和规则配置。
* 为自动化与控制专业的大学生提供工业协议漏洞的实际、安全演示。
* 在预定的 OT 维护窗口期间执行常规的、经授权的安全评估。
* 模拟物理入侵场景,用于侧重于 IT/OT 融合和网络隔离测试的红队演练。
## 核心功能
* **二层 / 三层发现:**
* **隐蔽侦察 (Layer 2):** 利用 MACRAW 引擎静默嗅探流量,并在不发送任何广播数据包的情况下通过数学推断得出子网规模。
* **低噪网络集成 (Layer 3):** 一旦完成网络映射,它将利用延迟 GARP (免费 ARP) 冲突检查进行隐蔽的 IP 自动分配,从而避免嘈杂的 DHCP 请求。
* **协议指纹识别与 MAC 欺骗:** 通过 Modbus 封装接口 (MEI) 从目标中提取供应商、型号和固件版本数据。支持硬件级 MAC 欺骗,以伪装成合法的工程工作站(例如 Siemens、Schneider Electric、Rockwell Automation)。
* **主动内存审计:** 提供对 Modbus 数据结构的直接读写访问,包括线圈、离散输入、保持寄存器和输入寄存器。
* **目标压力测试:** 注入异常和格式错误的 Modbus TCP 负载,以评估目标 PLC 内部 TCP 协议栈和应用层解析器的健壮性。*(注意:此主动压力测试模块仅适用于隔离的测试台或数字孪生,因为它可能导致旧版 PLC TCP 协议栈发生拒绝服务)*
## 硬件要求
* **主控制器:** M5Stack M5StickC Plus2。
* **网络接口:** M5Stack LAN 模块 (W5500 芯片组)。虽然集成的 Wi-Fi 可用于基本连接,但 W5500 模块是二层 MACRAW 推断和硬件级数据包构建所必需的。
## 硬件接线 (W5500 SPI 引脚)
要使用以太网功能(包括被动 L2 MACRAW 引擎),您必须通过 SPI 接口将 W5500 模块连接到 M5StickC Plus2。

**底部接口 (8-pin):**
* `SCLK` -> `G0`
* `MOSI` -> `G26`
* `MISO` -> `G36` *(注意:物理焊盘 G25/G36 共用)*
* `5V` -> `5V`
* `GND` -> `GND`
**顶部接口 (4-pin Grove 端口):**
* `SCS / CS` -> `G32`
## 界面与导航控制
该工具专为现场单手操作而设计,利用设备的物理按钮和内部 IMU (惯性测量单元)。
* **按钮 A (正面按钮):**
* **短按:** 向前导航、增加值或更改当前选择。
* **长按 (A(L)):** 按住超过 800 毫秒以切换页面、大幅跳过(例如 +/- 100)或跳转到下一个内存地址范围。
* **按钮 B (侧面按钮):**
* **短按:** 确认选择、执行主动扫描/攻击或进入特定菜单。
* **长按 (B(L)):** 按住超过 800 毫秒以停止活动进程、返回上一级菜单或安全断开与目标的连接。
* **IMU (加速度计) 手势:** 向前或向后倾斜设备可修改导航方向(例如,在增加或减少内存地址之间动态切换)。
## 安装与部署
### 即插即用 (推荐)
对于希望无需管理编译环境或库依赖即可轻松部署的用户:
1. 从项目的 Releases 部分下载最新的 `modbus_tcp_auditor.bin`。
2. 在您的工作站上启动官方 M5Burner 软件。
3. 通过 USB 连接 M5StickC Plus2。
4. 选择相应的 COM 端口,加载 `.bin` 文件并执行烧录过程。
### 从源代码编译
适用于代码审计、创建分支 或实施自定义修改:
1. 为 M5StickC Plus2 开发板配置 Arduino IDE。
2. 通过库管理器安装以下库:
* `M5StickCPlus2` (最新版)
* `Ethernet` by Various (v2.0.2)
3. 编译并将源代码上传到设备。
## 许可证
本项目根据 GNU General Public License v3.0 授权。有关完整详细信息,请参阅 `LICENSE` 文件。
## 作者
**z4y_d3n**
* GitHub:
标签:AES-256, ICS安全, M5StickC Plus2, Maven构建, Modbus TCP, osquery, OT安全, PKINIT, PLC安全, SCADA安全, UML, W5500, 二层发现, 便携式审计, 关键基础设施, 协议分析, 嵌入式安全, 工业物联网, 工控安全, 报告生成, 权限提升, 漏洞评估, 硬件安全工具, 网络发现, 网络审计, 运维安全, 防御绕过