harsh020100/Modbus-TCP-Security-Testing-Lab

GitHub: harsh020100/Modbus-TCP-Security-Testing-Lab

一个轻量级的 Modbus TCP 工控协议实验环境,通过模拟智能路灯控制系统帮助用户学习 Modbus 协议并进行安全测试研究。

Stars: 0 | Forks: 0

# 🔐 Modbus TCP 安全测试实验环境 一个轻量级的 Modbus TCP 实验环境,专为学习、研究和受控安全测试而构建。 本仓库模拟了一个小型工业控制系统 (ICS) 环境,并提供了通过 Modbus TCP 与其交互的工具。 ## 📂 仓库内容 ### 智能路灯控制器.py 模拟 Modbus TCP 服务器 (PLC),带有 SCADA 风格的 HMI 界面。 ### Mbap_client.py 用于读写线圈和寄存器的命令行 Modbus TCP 客户端。 ### Mbap_轮询工具.py 用于持续监控的基于 GUI 的 Modbus 轮询工具。 ## 🏗 项目概述 本实验环境模拟了: - Modbus TCP 服务器 (端口 502) - 保持寄存器 (HR) - 线圈 - 环境光 强度传感器模拟 - 基于阈值的自动化逻辑 - 手动覆盖 功能 - SCADA 监控界面 设计用于: - Modbus 协议学习 - ICS/OT 实验模拟 - 安全研究 - 受控渗透测试练习 ## ⚙️ 环境要求 - Python - pymodbus - tkinter (通常随 Python 预装) 安装依赖: ``` pip install pymodbus pip install pyserial-asyncio ``` ## 🚀 如何运行 ### 步骤 1:启动 Modbus 服务器 + SCADA ``` python "Smart Street Light Controller.py" ``` 这将: - 在端口 502 上启动 Modbus TCP 服务器 - 启动 SCADA HMI - 模拟环境光传感器 ### 步骤 2:运行 CLI Modbus 客户端 ``` python Mbap_client.py ``` 示例: ``` python Mbap_client.py 127.0.0.1 ``` ### 步骤 3:运行 GUI 轮询工具 ``` python Mbap_Polling_Tool.py ``` 然后输入: - 目标 IP - 端口 (默认: 502) - 轮询频率 - 选择要监控的线圈/寄存器 ### 🧠 内存映射 | 类型 | 地址 | 描述 | |------|---------|------------------------| | 保持寄存器 | 4 | 照度阈值 | | 保持寄存器 | 6 | 环境光传感器 | | 线圈 | 3 | 路灯状态 | | 线圈 | 4 | 手动覆盖 | ### 🎯 学习目标 - 理解 Modbus TCP 通信 - 与线圈和保持寄存器交互 - 观察自动化逻辑 - 练习协议交互 - 分析 Modbus 中潜在的安全弱点 ### ⚠️ 免责声明 本项目严格用于: - 教育目的 - 安全研究 - 在受控实验环境中进行测试 在未获得适当授权的情况下,请**勿**将此代码用于针对系统的操作。 ### 👨‍💻 作者 **Harsh Srivastava** IoT 与 OT 安全研究\ [https://www.harshsecurity.com](https://www.harshsecurity.com/)
标签:HMI, ICS安全, impacket, Modbus TCP, OPA, OT安全, PLC模拟, pymodbus, Python, SCADA仿真, 关键基础设施, 协议分析, 工业互联网, 工业控制安全, 工控协议, 无后门, 智慧路灯控制, 权限提升, 漏洞复现, 网络安全实验环境, 蜜罐, 证书利用, 逆向工具, 靶场