⚠️ 重要说明本框架最初于 2022年 开始开发,目前已进行全面重构和优化。
- 📦 本仓库仅包含部分公开模块,大量原创 0day 漏洞利用、数控机床相关 CVE 及其他敏感模块未公开
- ⚙️ 由于设备固件版本差异和网络环境复杂性,不保证所有模块100%可用
- 🐛 如遇到 Bug 或有新功能需求,欢迎提交 Issue 反馈
- 💡 本项目持续维护中,更多模块将在合适时机逐步开放
工控指纹识别项目移步至https://github.com/Fupo-series/ICS-Tools
ICSEF 是一个专业的工业控制系统漏洞利用框架,采用类似 Metasploit 的模块化架构设计,专注于工控安全渗透测试和漏洞研究。
- 模块化架构 - 统一的 Exploit 基类,易于扩展和维护
- 交互式控制台 - MSF 风格的命令行界面,支持 Tab 补全
- 动态加载 - 自动发现和加载 exploit 模块
- 参数验证 - 自动检查必需参数,减少错误
- 多厂商支持 - 覆盖主流工控设备品牌
pip install -r requirements.txtpython3 icsef.py# 列出所有可用模块
ICSEF > list
# 搜索特定模块
ICSEF > search S7_300
# 选择要使用的模块
ICSEF > use exploits/siemens/S7_300_Crash
# 查看模块配置选项
ICSEF(exploits/siemens/S7_300_Crash) > show options
# 设置目标参数
ICSEF(exploits/siemens/S7_300_Crash) > set ip 192.168.1.10
ICSEF(exploits/siemens/S7_300_Crash) > set port 102
# 检查目标是否可达
ICSEF(exploits/siemens/S7_300_Crash) > check
# 执行漏洞利用
ICSEF(exploits/siemens/S7_300_Crash) > run
# 返回主菜单
ICSEF(exploits/siemens/S7_300_Crash) > backS7-200 系列
S7_200_Upload- 程序上传S7_200_deleteblock- 程序块删除S7_200_startORstop- 运行状态控制
S7-300 系列
S7_300_Crash- PLC 拒绝服务攻击S7_300_DeleteBlock- 程序块批量删除S7_300_Latching- 未授权加密勒索攻击S7_300_OutputPointTampering- I/O 点位篡改S7_300_StopOrStart- 运行状态控制S7_300_TamperingWithProgram- 程序上传/下载篡改S7_300_MitmAttack- 中间人攻击(ARP欺骗+数据包篡改)
CJ2M 系列
Fins_ClearProgram- PLC 程序清除Fins_TamperingWithProgram- PLC 程序篡改Fins_stoporstart- PLC 运行状态控制
AS228T 系列
Modbus_func66_Latching- PLC 加密勒索Modbus_func66_OutputPointTampering- I/O 点位篡改Modbus_func66_StopOrStart- PLC 运行状态控制modbus_func66_Delete_program- PLC 程序删除
总计:17个 Exploit 模块
-
Schneider(施耐德)系列支持
- Modicon M340/M580 系列 PLC
- Unity Pro 协议漏洞利用
-
Rockwell(罗克韦尔)系列支持
- ControlLogix/CompactLogix 系列
- EtherNet/IP 协议攻击
-
Mitsubishi(三菱)系列支持
- FX/Q 系列 PLC
- MC 协议漏洞利用
- 批量扫描模式 - 支持 IP 段批量检测
- 结果导出 - JSON/HTML 格式报告生成
- 日志系统 - 完整的操作审计日志
- 插件系统 - 支持第三方模块扩展
- Web界面 - 图形化操作界面
暂无计划
ICSEF/
├── core/ # 核心框架
│ ├── exploit.py # Exploit 基类
│ ├── framework.py # 框架管理器
│ └── console.py # 交互式控制台
├── exploits/ # Exploit 模块
│ ├── siemens/ # 西门子系列
│ ├── omron/ # 欧姆龙系列
│ └── delta/ # 台达系列
├── icsef.py # 主程序入口
├── requirements.txt # 依赖库
└── README.md # 本文件
本框架仅供安全研究和授权测试使用!
- ❌ 严禁用于非法攻击和未授权测试
- ❌ 严禁用于破坏生产环境系统
- ❌ 使用者需自行承担所有法律责任
进行工控安全测试前必须:
- 获得明确的书面授权
- 在隔离的测试环境中进行
- 提前制定应急预案
- 遵守相关法律法规
本项目仅用于安全研究和教育目的。
特别感谢我的好朋友兼前同事对exp的开发给予了极大的帮助和建议。再次感谢!
感谢所有为工控安全研究做出贡献的研究者们。
本框架在开发过程中参考了大量公开资料和社区贡献,特此致谢。