工控安全入门之攻与防
字数 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系统 | 工控系统 |
|---|---|---|
| 最高 | 机密性 | 可用性 |
| 次高 | 完整性 | 完整性 |
| 最低 | 可用性 | 机密性 |
防病毒软件限制
- 通常不允许连接互联网,无法更新病毒库
- 生产运行期间禁止系统升级
- 病毒误杀可能产生致命后果
传统防护设备问题
- 运行期间禁止系统升级
- 无法及时更新攻击库
- IDS高误报率
- 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)
框架结构
-
工控协议客户端
- 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
安装与使用
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 工控安全防护建议
-
网络边界防护
- 部署访问控制设备
- 实施白名单策略
- 关闭不必要端口(Telnet等)
-
漏洞管理
- 定期漏洞扫描
- 制定关键漏洞修补计划
-
设备管理
- 禁止未授权U盘接入
- 应用程序白名单
- 可信任设备接入控制网络
-
专用防护设备
- 工业防火墙代替IT防火墙
- 工控网络异常检测代替IDS
- 部署工业协议DPI功能的防火墙
-
数据备份
- 定时备份关键数据
- 建立应急响应流程
- 灾难恢复演练
0X06 参考资源
- 工控工具包获取: 关注"TideSec安全团队"公众号回复"工控工具包"
- 协议数据包分析工具: Wireshark
- 蜜罐系统: Conpot
- 漏洞利用框架: ISF