工控安全入门之攻与防
字数 1853 2025-08-18 11:39:15

工控安全攻防入门教学文档

0X00 工控安全案例

1. 震网(Stuxnet)事件 (2010年6月)

  • 攻击目标: 伊朗铀浓缩设施
  • 攻击方式: 通过U盘传播,修改PLC控制软件代码
  • 影响: 控制30%纳坦兹设施计算机,摧毁1/5离心机,全球20万台电脑感染

2. 土耳其原油输送管道爆炸 (2014年12月)

  • 攻击方式: 黑客关闭警报、切断通信并大幅增压管道
  • 特点: 1099英里管道监控失效,未触发任何遇险信号

3. 乌克兰电网BlackEnergy攻击 (2015年12月23日)

  • 影响: 70万户家庭停电
  • 攻击链:
    • 邮件发送恶意代码载荷
    • 远程控制SCADA节点下达指令
    • 摧毁SCADA系统
    • DDoS干扰

4. WannaCry病毒事件 (2017年)

  • 影响: 全球30多万台计算机感染
  • 工控影响: 中石油2万多座加油站断网36小时

5. 熔断(Meltdown)和幽灵(Spectre)漏洞 (2018年1月)

  • 影响设备: AMD、ARM、Intel系统和处理器
  • 工控影响: 思科、西门子多款工业交换机受影响

6. 台积电WannaCry感染 (2018年8月3日)

  • 原因:
    • 新机台接入未隔离检查
    • 取消厂区间防火墙
    • 设备陈旧未升级
  • 损失: 26亿

0X01 工控系统安全特点

安全优先级差异

优先级 传统IT系统 工控系统
最高 机密性 可用性
次高 完整性 完整性
最低 可用性 机密性

防病毒软件限制

  1. 通常不允许连接互联网,无法更新病毒库
  2. 生产运行期间禁止系统升级
  3. 病毒误杀可能产生致命后果

传统防护设备问题

  1. 运行期间禁止系统升级
  2. 无法及时更新攻击库
  3. IDS高误报率
  4. IPS牺牲检出率降低误报

0X02 工控蜜罐CONPOT搭建

Conpot介绍

  • 开源ICS/SCADA蜜罐系统
  • 支持协议:
    • bacnet(智能建筑通信)
    • enip(通用工业协议)
    • modbus(串行通信)
    • s7comm(西门子S7)
    • snmp(网络管理)

三种安装方式

1. Pre-Build镜像

docker pull honeynet/conpot
docker run -it -p 80:80 -p 102:102 -p 502:502 -p 161:161/udp --network=bridge honeynet/conpot:latest /bin/sh
conpot --template default

2. 从源代码构建

git clone https://github.com/mushorg/conpot.git
cd conpot
docker build -t conpot .
docker run -it -p 80:80 -p 102:102 -p 502:502 -p 161:161/udp --network=bridge conpot

3. docker-compose方式

git clone https://github.com/mushorg/conpot.git
cd conpot/docker
docker-compose build
docker-compose up

0X03 工控漏洞利用框架(ISF)

框架结构

  1. 工控协议客户端

    • modbus_tcp_client
    • s7_client
    • wdb2_client
  2. 漏洞利用模块

    • s7_300_400_plc_control (西门子PLC启停)
    • vxworks_rpc_dos (Vxworks RPC拒绝服务)
    • quantum_140_plc_control (施耐德PLC控制)
  3. 扫描模块

    • profinet-dcp-scan
    • s7comm_scan
    • enip_scan

安装与使用

git clone https://github.com/dark-lbp/isf/
cd isf
python isf.py

攻击示例

use exploits/plcs/siemens/s7_300_400_plc_control
set target 192.168.0.105
run

0X04 工控资产识别

1. 网络空间搜索引擎

  • FOFA: port="102" && protocol=="s7"
  • ZoomEye: port:102 +app:"Siemens S7 PLC"
  • Shodan: module: s7 port:102

2. Nmap扫描

  • S7协议扫描:
nmap -v --script s7-info 172.16.111.162 -p 102
  • 常见工控协议Nmap模块:
    协议 端口 模块
    Modbus 502 modbus
    S7 102 s7
    DNP3 20000 dnp3
    BACnet 47808 bacnet

3. Wireshark分析

  • 抓取并分析S7、Modbus等工控协议数据包

0X05 工控安全防护建议

  1. 网络边界防护

    • 部署访问控制设备
    • 实施白名单策略
    • 关闭不必要端口(Telnet等)
  2. 漏洞管理

    • 定期漏洞扫描
    • 制定关键漏洞修补计划
  3. 设备管理

    • 禁止未授权U盘接入
    • 应用程序白名单
    • 可信任设备接入控制网络
  4. 专用防护设备

    • 工业防火墙代替IT防火墙
    • 工控网络异常检测代替IDS
    • 部署工业协议DPI功能的防火墙
  5. 数据备份

    • 定时备份关键数据
    • 建立应急响应流程
    • 灾难恢复演练

0X06 参考资源

  • 工控工具包获取: 关注"TideSec安全团队"公众号回复"工控工具包"
  • 协议数据包分析工具: Wireshark
  • 蜜罐系统: Conpot
  • 漏洞利用框架: ISF
工控安全攻防入门教学文档 0X00 工控安全案例 1. 震网(Stuxnet)事件 (2010年6月) 攻击目标 : 伊朗铀浓缩设施 攻击方式 : 通过U盘传播,修改PLC控制软件代码 影响 : 控制30%纳坦兹设施计算机,摧毁1/5离心机,全球20万台电脑感染 2. 土耳其原油输送管道爆炸 (2014年12月) 攻击方式 : 黑客关闭警报、切断通信并大幅增压管道 特点 : 1099英里管道监控失效,未触发任何遇险信号 3. 乌克兰电网BlackEnergy攻击 (2015年12月23日) 影响 : 70万户家庭停电 攻击链 : 邮件发送恶意代码载荷 远程控制SCADA节点下达指令 摧毁SCADA系统 DDoS干扰 4. WannaCry病毒事件 (2017年) 影响 : 全球30多万台计算机感染 工控影响 : 中石油2万多座加油站断网36小时 5. 熔断(Meltdown)和幽灵(Spectre)漏洞 (2018年1月) 影响设备 : AMD、ARM、Intel系统和处理器 工控影响 : 思科、西门子多款工业交换机受影响 6. 台积电WannaCry感染 (2018年8月3日) 原因 : 新机台接入未隔离检查 取消厂区间防火墙 设备陈旧未升级 损失 : 26亿 0X01 工控系统安全特点 安全优先级差异 | 优先级 | 传统IT系统 | 工控系统 | |--------|------------|----------| | 最高 | 机密性 | 可用性 | | 次高 | 完整性 | 完整性 | | 最低 | 可用性 | 机密性 | 防病毒软件限制 通常不允许连接互联网,无法更新病毒库 生产运行期间禁止系统升级 病毒误杀可能产生致命后果 传统防护设备问题 运行期间禁止系统升级 无法及时更新攻击库 IDS高误报率 IPS牺牲检出率降低误报 0X02 工控蜜罐CONPOT搭建 Conpot介绍 开源ICS/SCADA蜜罐系统 支持协议: bacnet(智能建筑通信) enip(通用工业协议) modbus(串行通信) s7comm(西门子S7) snmp(网络管理) 三种安装方式 1. Pre-Build镜像 2. 从源代码构建 3. docker-compose方式 0X03 工控漏洞利用框架(ISF) 框架结构 工控协议客户端 modbus_ tcp_ client s7_ client wdb2_ client 漏洞利用模块 s7_ 300_ 400_ plc_ control (西门子PLC启停) vxworks_ rpc_ dos (Vxworks RPC拒绝服务) quantum_ 140_ plc_ control (施耐德PLC控制) 扫描模块 profinet-dcp-scan s7comm_ scan enip_ scan 安装与使用 攻击示例 0X04 工控资产识别 1. 网络空间搜索引擎 FOFA : port="102" && protocol=="s7" ZoomEye : port:102 +app:"Siemens S7 PLC" Shodan : module: s7 port:102 2. Nmap扫描 S7协议扫描 : 常见工控协议Nmap模块 : | 协议 | 端口 | 模块 | |------|------|------| | Modbus | 502 | modbus | | S7 | 102 | s7 | | DNP3 | 20000 | dnp3 | | BACnet | 47808 | bacnet | 3. Wireshark分析 抓取并分析S7、Modbus等工控协议数据包 0X05 工控安全防护建议 网络边界防护 部署访问控制设备 实施白名单策略 关闭不必要端口(Telnet等) 漏洞管理 定期漏洞扫描 制定关键漏洞修补计划 设备管理 禁止未授权U盘接入 应用程序白名单 可信任设备接入控制网络 专用防护设备 工业防火墙代替IT防火墙 工控网络异常检测代替IDS 部署工业协议DPI功能的防火墙 数据备份 定时备份关键数据 建立应急响应流程 灾难恢复演练 0X06 参考资源 工控工具包获取: 关注"TideSec安全团队"公众号回复"工控工具包" 协议数据包分析工具: Wireshark 蜜罐系统: Conpot 漏洞利用框架: ISF