记一次工控比赛漏洞挖掘
字数 1411 2025-08-09 13:33:42
工业控制系统(ICS)漏洞挖掘实战教学文档
1. 工业控制系统安全背景
随着"中国制造2025"战略推进,工业控制系统(ICS)从封闭独立走向开放互联,安全风险显著增加。工业控制系统包括SCADA、DCS、PCS、PLC、RTU、IED等关键设备,其安全直接关系到国家关键基础设施安全。
2. 目标系统分析
本次实战目标为AGV小车控制系统,通过WiFi连接,Web控制地址为http://192.168.8.143/
3. 漏洞挖掘方法论
3.1 初始访问测试
- 弱口令测试:
- 使用常见工控设备默认凭证尝试登录
- 示例:admin/admin组合成功登录后台系统
- 这是典型的中危漏洞(CWE-798:使用硬编码凭证)
3.2 信息泄露漏洞挖掘
-
API接口分析:
- 使用浏览器开发者工具(F12)抓取网络请求
- 发现关键API端点:
/api/v0/2/missions/api/v0/map/Map202105061426new/data
-
未授权访问验证:
- 使用无痕浏览器直接访问上述API
- 确认接口未实施身份验证(CWE-284:不恰当的访问控制)
- 泄露内容包括:
- 用户对地图的操作记录
- 地图信息坐标数据
-
地图文件导出功能:
- 发现导出接口:
/api/v0/map/Map202105061426new/export?type=FMS/api/v0/map/Map202105061426new/export?type=OM
- 导出功能同样存在未授权访问
- 文件名规律分析:
Map202105061426new格式表明可能存在时间戳命名规律- 可构造字典进行爆破获取其他地图文件
- 发现导出接口:
3.3 高危漏洞挖掘
-
用户凭证泄露:
- 发现账户管理接口:
/api/v0/accounts - 直接返回所有用户账号及密码(CWE-200:信息暴露)
- 无痕浏览器验证存在未授权访问
- 发现账户管理接口:
-
未授权用户创建:
- 分析用户创建请求:
- 方法:POST
/api/v0/account/2 - 请求示例:
{ "id":0, "username":"test", "passwd":"123456", "permission":"20", "pincode":"", "mission_ids":[] }
- 方法:POST
- 关键发现:
- 无会话/cookie验证
- 可直接指定权限级别(如管理员权限)
- 成功创建高权限账户验证漏洞存在
- 分析用户创建请求:
4. 漏洞利用链构建
-
完整攻击路径:
- 无需认证获取系统敏感信息(地图数据、操作记录)
- 获取所有用户凭证
- 直接创建管理员账户实现完全控制
-
潜在风险:
- 地图数据泄露可能导致物理路径规划被篡改
- 用户凭证泄露可能横向渗透至其他系统
- 未授权账户创建可建立持久化后门
5. 修复建议
-
访问控制加固:
- 实施基于角色的访问控制(RBAC)
- 对所有API接口实施身份验证
- 敏感操作应进行二次验证
-
会话管理:
- 实施CSRF防护机制
- 使用安全的会话管理策略
-
敏感数据处理:
- 密码应加密存储(建议使用bcrypt/PBKDF2等算法)
- 敏感API响应应进行过滤
-
输入验证:
- 实施严格的输入验证
- 对权限参数进行白名单校验
6. 工控安全测试要点总结
-
测试重点:
- 未授权访问是工控系统最常见漏洞
- 弱口令问题普遍存在
- API接口安全常被忽视
-
测试方法论:
- 全面枚举系统功能点
- 使用代理工具(Burp/Fiddler)分析所有请求
- 验证每个功能的权限控制
- 检查敏感数据是否过度暴露
-
工控系统特性:
- 更新周期长,漏洞修复慢
- 默认配置风险高
- 物理安全影响大
本案例展示了如何通过系统化方法发现工控系统中的关键漏洞,强调了未授权访问和弱认证机制带来的重大风险。