【工业控制系统网络安全系列课程】第2课-工业控制系统的网络安全风险-过程控制漏洞利用(二)典型漏洞利用路径

admin 2026-03-03 04:49:30 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详述工业控制系统(ICS)过程控制层的网络安全风险,系统分解网络攻击路径(侦查、初始访问、横向移动、持久化)并阐述其对物理过程的具体攻击手段,包括传感器欺骗、执行器攻击、逻辑篡改与拒绝服务,结合震网、乌克兰电网等经典案例,揭示了工控协议缺乏认证、信任关系滥用等核心弱点及严重物理后果。 综合评分: 85 文章分类: 漏洞分析,渗透测试,威胁情报,IoT安全,实战经验


cover_image

【工业控制系统网络安全系列课程】第2课-工业控制系统的网络安全风险-过程控制漏洞利用(二)典型漏洞利用路径

原创

老付话安全 老付话安全

老付话安全

2026年2月26日 20:37 山东

点击蓝字

关注我们

关注我,带给你不一样的精彩

世界因你的沉淀而出彩

始于理论,源于实践,终于实战

老付话安全,每天一点点

激情永无限,进步看得见

严正声明

本号所写文章方法和工具只用于学习和交流,严禁使用文章所述内容中的方法未经许可的情况下对生产系统进行方法验证实施,发生一切问题由相关个人承担法律责任,其与本号无关。

特此声明!!!

本文字数:

6274字

阅读时间:

16分钟

本课重点讲解ICS环境中过程控制层的漏洞类型、利用方式及实际影响

目标

  • 理解ICS过程控制层常见漏洞原理
  • 掌握漏洞利用的基本路径与方法
  • 能够识别漏洞可能引发的物理过程影响
  • 了解典型攻击案例与防御思路

#

2.3 网络攻击路径

  • 侦查:工控资产识别(Shodan, Censys)
  • 初始访问:VPN/远程维护漏洞、USB摆渡、钓鱼攻击
  • 横向移动:利用工控协议在控制网内移动
  • 持久化:修改PLC逻辑、添加后门账户

工控系统的网络攻击通常不是一蹴而就的,而是遵循一个多阶段的攻击生命周期。攻击者从最初的信息收集,到最终控制物理过程,每一步都利用工控系统的特定弱点。以下是详细分解:

1. 侦察(Reconnaissance)

目标:识别目标组织的工控系统资产、网络拓扑、设备型号、软件版本以及暴露的入口点。这是攻击的“踩点”阶段。

详细描述

  • 工控资产识别(Shodan / Censys)

  • 攻击者使用互联网搜索引擎(如Shodan、Censys、ZoomEye)扫描全网,寻找暴露在公网的工控设备。这些搜索引擎会抓取特定端口(如Modbus TCP 502、S7comm 102、DNP3 20000、EtherNet/IP 44818)的响应,识别设备类型、厂商、固件版本甚至地理位置。

  • 例如,Shodan上可以搜索“port:502”找到全球暴露的Modbus设备,搜索“Siemens S7”找到西门子PLC。攻击者可以筛选出目标国家或行业(如电力、水务)的设备,直接获得潜在的攻击目标列表。

  • 实例:2014年Havex恶意软件利用搜索引擎收集工控系统信息,它包含一个模块专门扫描互联网上的OPC服务器,获取其IP地址和服务器名称,为后续攻击建立目标清单。

  • 公开信息收集

  • 通过公司官网、招聘信息、技术论坛、产品手册等获取工控系统使用的设备型号、软件品牌、网络架构线索。例如,招聘信息中可能提到“熟悉西门子S7-300 PLC编程”,这直接暴露了控制层使用的设备。

  • 使用搜索引擎语法(Google Dorking)搜索暴露的工程文件、配置文件(如.cdf.ap_.prj)或远程桌面服务。

  • 社会工程学与物理侦察

  • 伪装成供应商、维修人员进入厂区,观察现场设备型号、网络布线,甚至拍照获取信息。

  • 通过电话或邮件联系现场人员,套取网络配置或设备密码。

关键点:侦察阶段为后续攻击提供了靶标地图。工控系统的长生命周期和缺乏隐蔽性(协议指纹明显)使其极易被识别。


2. 初始访问(Initial Access)

目标:突破企业边界,进入工业网络(或直接进入工控主机)。攻击者寻找能够植入恶意软件或直接控制设备的入口。

详细描述

  • VPN/远程维护漏洞

  • 许多工控系统供应商或运维团队会开通VPN或远程桌面服务,以便远程维护。如果这些远程接入点使用了弱口令、默认凭证(如admin/123456)、过时的VPN软件(存在已知漏洞),攻击者可以轻松突破。

  • 攻击者可通过密码喷洒、漏洞利用(如CVE-2019-11510 Pulse Secure VPN任意文件读取)获取合法访问权限,直接进入企业内网,进而横向渗透工控网。

  • 实例:2021年美国佛罗里达州水厂攻击事件中,攻击者就是通过暴露的TeamViewer软件(使用共享密码)进入了水处理系统的HMI,并尝试将氢氧化钠浓度改为危险值。

  • USB摆渡攻击

  • 攻击者将恶意U盘遗弃在工厂停车场或办公区,诱使员工捡起并插入内部计算机。U盘可自动运行恶意软件(如利用Autorun.inf或Windows漏洞),或伪装成文档诱使用户打开。

  • 震网病毒(Stuxnet) 正是通过U盘从外部感染了伊朗纳坦兹核设施的计算机,这些U盘很可能由内部人员无意间带入,从而跨越了物理隔离(气隙)。

  • 工控环境中,工程师经常使用U盘传输程序或数据,这为摆渡攻击提供了便利。

  • 钓鱼攻击

  • 攻击者向工程师、操作员、运维人员发送精心设计的钓鱼邮件,内容可能与工作相关(如“设备维护通知”、“软件更新”),附件或链接中包含恶意文档或可执行文件。

  • 一旦收件人打开附件,恶意软件便落地执行,建立反向Shell或C2连接,使攻击者获得内网一个立足点(通常是操作员站或工程师站)。

  • 实例:2015年乌克兰电网攻击中,攻击者向电力公司员工发送了包含恶意宏的Excel附件(伪装成“停电清单”),成功入侵了办公网络,并以此为跳板进入SCADA网络。

  • 供应链攻击

  • 在工控设备、软件或服务中预置后门。例如,在PLC编程软件安装包中植入恶意代码,或在远程维护服务中预留隐藏账户。一旦目标单位部署了这些产品,攻击者即可远程控制。

关键点:初始访问往往利用人的因素(钓鱼、摆渡)或边缘系统(VPN)的脆弱性,而不是直接攻击核心控制器。一旦进入内部,攻击者便获得了宝贵的立足点。


3. 横向移动(Lateral Movement)

目标:从初始入侵点(通常是办公网或操作员站)逐步渗透,最终到达关键控制器(PLC、RTU)。这需要穿越网络分段,并利用工控环境的信任关系。

详细描述

  • 网络扫描与发现

  • 攻击者在内网中进行扫描,发现存活主机和开放端口。他们会特别关注工控常用端口(如502、102、20000、44818、135等),识别出PLC、HMI、工程站、历史数据库等资产。

  • 使用工具(如Nmap、Masscan)或Metasploit辅助模块(如auxiliary/scanner/scada/modbus_findunitid)来枚举工控设备。

  • 利用工控协议漏洞横向移动

  • 一旦发现PLC,攻击者可以直接通过工控协议与其通信,而无需认证(因为协议本身缺乏认证)。例如,攻击者可以从已攻陷的工程站向目标PLC发送Modbus或S7comm指令,读取或写入数据,甚至上传/下载程序。

  • 信任关系:工控网络内部往往高度信任,HMI与PLC之间、PLC与PLC之间默认相互信任。攻击者可以冒充HMI向PLC下发恶意指令。

  • 实例:震网病毒在感染了工程站后,利用S7comm协议向S7-300 PLC写入恶意代码块,并修改逻辑。它通过记录正常的PLC通信并重放,成功欺骗了操作员。

  • 凭据窃取与重用

  • 攻击者从已攻陷的主机上使用Mimikatz等工具抓取Windows凭据、哈希,或读取工控软件(如Wonderware、WinCC)的配置文件,获取PLC访问密码、数据库密码。

  • 这些凭据往往在多台设备间重用(如工程师使用同一密码登录所有PLC),使得攻击者可以轻松跳转。

  • 跳板攻击

  • 如果工控网络与办公网之间有防火墙隔离,但允许特定流量(如特定IP的RDP、SQL连接),攻击者可以控制符合规则的主机作为跳板,穿越防火墙。

  • 利用双网卡主机(如工程师站同时连接办公网和控制网)作为桥头堡,直接进入控制层。

关键点:横向移动充分利用了工控网络内部“无认证、无加密”的通信特点,以及糟糕的密码管理。攻击者一旦进入控制网,就如同拥有了“万能钥匙”。


4. 持久化(Persistence)

目标:在目标系统中长期潜伏,确保即使被发现或被清除后仍能重新获得控制,同时可能掩盖攻击痕迹。

详细描述

  • 修改PLC逻辑(植入恶意逻辑)

  • 攻击者向PLC上传修改后的控制程序(梯形图、功能块、ST语言),在其中植入恶意代码。这些代码可能仅在特定条件下触发(如时间、计数器到达某值),平时则执行正常功能,难以被发现。

  • 例如,在离心机控制程序中增加一段逻辑:当频率达到特定值时,短暂加速导致离心机振动损坏,同时向HMI报告正常值(欺骗逻辑)。

  • 震网病毒 修改了S7-300 PLC的功能块(FB),使离心机转速在正常和异常间切换,同时通过拦截和修改返回给HMI的测量值来掩盖异常。

  • 添加后门账户

  • 在操作员站、工程师站、SCADA服务器上创建隐藏的本地用户(如利用$符号结尾的账户),或启用默认禁用的Guest账户并赋予高权限。

  • 在工控软件(如HMI)中添加新的用户账号,赋予远程控制权限,或修改现有账号密码。

  • 在路由器、防火墙等网络设备上添加VPN用户或修改访问控制列表,留出隐蔽通道。

  • 替换固件(植入恶意固件)

  • 对于PLC、RTU等嵌入式设备,攻击者可以提取原厂固件,逆向分析后植入恶意代码(如后门、数据窃听模块),然后刷回设备。这种攻击非常隐蔽,即使重新上电也不会清除。

  • 由于许多老旧设备不支持固件签名验证,攻击者很容易伪造固件更新包。

  • 实例:安全研究人员曾演示向施耐德Modicon PLC植入恶意固件,使其能够远程开关I/O,且设备重启后依然存在。

  • 建立C2通道

  • 在工控主机上安装木马,通过HTTP/DNS隧道、Modbus/TCP隧道等方式与外部C2服务器通信,定期接收指令或回传数据。由于工控网络通常允许出站连接(如SCADA服务器需要更新病毒库),这类通道可能不被注意。

  • 清除痕迹

  • 删除事件日志、工程软件的审计记录,修改文件时间戳,使管理员难以追踪入侵来源。

关键点:持久化意味着攻击者已做好长期准备,随时可以发动物理破坏或窃取情报。PLC逻辑和固件的篡改是工控领域特有的持久化手段,恢复起来非常困难。

2.4 物理过程影响攻击

  • 传感器欺骗:虚假读数注入
  • 执行器攻击:阀门、电机、断路器的恶意控制
  • 逻辑篡改:修改PLC阶梯逻辑或功能块
  • 拒绝服务:使关键控制器失效

当攻击者完全控制了工控系统后,他们的目标通常是影响物理过程,造成设备损坏、生产中断、安全事故,甚至人员伤亡。以下是从逻辑层面到物理层面的攻击手法。


1. 传感器欺骗(False Data Injection)

定义:攻击者篡改传感器(如压力、温度、流量、液位变送器)传输给控制器或HMI的读数,使控制系统基于错误的数据做出决策,或使操作员看到虚假的现场状态。

详细描述

  • 如何实现

  • 如果攻击者可以访问传感器与PLC之间的通信网络(如4-20mA模拟量可能被物理干扰,但数字通信更易被篡改),他们可以拦截并修改传感器报文。

  • 对于模拟量,如果攻击者能物理接触传感器线路,可以注入干扰信号;但更常见的是在PLC输入映像区修改数值,或欺骗HMI读取错误的寄存器。

  • 通过攻陷PLC,直接修改存储传感器数据的寄存器值,使HMI显示虚假读数。

  • 攻击效果

  • 掩盖异常:让操作员以为设备运行正常,而实际已处于危险状态。例如,篡改反应釜压力传感器读数为正常值,同时实际压力已超限,导致安全阀无法及时开启。

  • 触发误操作:使控制系统误以为达到了设定条件,从而执行错误动作。例如,注入虚假的高液位信号,导致排水泵自动开启,造成下游溢出。

  • 诱导人工干预:操作员看到虚假的报警(如“温度过高”),可能会手动关闭某个阀门,而实际上温度正常,这一操作反而破坏了工艺流程。

  • 实例

  • 震网病毒:它拦截了离心机压力传感器发送给PLC的数据,并将正常值回传给HMI,同时修改PLC逻辑使离心机超速。操作员在HMI上看到一切正常,而实际物理过程已被破坏。

  • 水处理攻击:攻击者篡改pH传感器读数,使加药系统错误地投加过量酸或碱,导致出水水质超标。


2. 执行器攻击(Actuator Manipulation)

定义:直接控制执行机构(如阀门、电机、泵、断路器、风机)的启停或开度,造成物理后果。

详细描述

  • 如何实现

  • 通过工控协议(如Modbus写线圈、写寄存器)向PLC或直接向智能执行器发送控制指令。

  • 如果攻击者控制了PLC,可以修改输出映像区,强制输出点状态。

  • 对于支持直连的执行器(如Modbus RTU阀门),攻击者可直接与执行器通信,绕过PLC。

  • 攻击效果

  • 破坏设备:突然启停大功率电机可能造成机械冲击、电网波动;反复快速开关阀门可能导致水锤效应,损坏管道。

  • 中断生产:关闭关键输送泵、切断原料供应,导致生产线停摆。

  • 造成安全事故:打开泄压阀释放有毒气体;闭合断路器导致停电;关闭冷却水循环导致反应堆过热。

  • 实例

  • 2015年乌克兰电网:攻击者通过HMI向变电站RTU发送恶意DNP3指令,直接断开了7座110kV和23座35kV变电站的断路器,导致80,000用户断电。

  • 德国钢铁厂攻击(2014年报告):攻击者通过钓鱼邮件进入钢厂办公网,然后渗透到控制网,操控PLC使高炉无法正常关闭,造成严重设备损坏。


3. 逻辑篡改(Logic Modification)

定义:修改PLC、DCS或RTU中的控制逻辑(梯形图、功能块、结构化文本),从根本上改变控制程序的行为,使设备在特定条件下执行危险操作。

详细描述

  • 如何实现

  • 攻击者使用工程软件(如Step 7、RSLogix、TIA Portal)连接PLC,在线修改程序并下载。

  • 如果攻击者无法在线修改,可以尝试替换引导项目或利用固件漏洞。

  • 修改可以很隐蔽:增加一个不显眼的梯级,当某个内部计数器达到特定值时,触发一个平时不用的输出。

  • 攻击效果

  • 逻辑炸弹:植入一段代码,平时不影响运行,当特定条件满足(如时间、设备运行次数、特定按钮组合)时触发破坏动作。例如,当反应釜累计运行1000小时后,自动打开排空阀。

  • 破坏安全联锁:修改逻辑,使安全联锁失效。例如,在紧急停止按钮被按下时,本应切断电源,但修改后的逻辑却忽略该信号。

  • 篡改设定值:改变PID控制器的设定点,使系统在非设计工况下运行,加速磨损或导致失控。

  • 实例

  • 震网病毒:最典型的逻辑篡改。它修改了S7-300中两个功能块(FB),一个用于控制离心机转速(使其在1420Hz和840Hz之间振荡),另一个用于向HMI报告虚假的正常转速(1064Hz),同时拦截安全系统的报警。

  • 研究人员演示:修改PLC梯形图,使一个搅拌器在温度超过阈值时不启动冷却,反而启动加热,模拟了恶意逻辑导致爆炸的过程。


4. 拒绝服务(Denial of Service, DoS)

定义:使关键控制器、HMI或通信网络不可用,导致操作员失去对过程的监视和控制能力,或使控制器停止响应,生产过程被迫中断。

详细描述

  • 如何实现

  • 网络层DoS:向PLC或RTU发送大量垃圾数据包(如TCP SYN洪水、畸形报文),消耗其处理资源,导致其无法响应正常请求。

  • 协议漏洞DoS:利用某些工控协议的漏洞,发送单个特殊构造的报文即可使设备崩溃或重启(例如,CVE-2021-22681针对EtherNet/IP的DoS漏洞)。

  • 应用层DoS:通过多次读写操作耗尽PLC的存储器或CPU时间。例如,不断向PLC写入大量数据,导致其扫描周期变长,影响实时性。

  • 物理攻击:切断电源或破坏通信线路(但在网络攻击中较少见)。

  • 攻击效果

  • 失去监控:HMI无法获取现场数据,操作员变成“瞎子”,无法做出正确判断。

  • 失去控制:无法下发控制指令,设备可能保持在当前状态(如果安全设计为失电安全,则可能停机;否则可能失控)。

  • 安全系统失效:如果安全PLC被DoS,那么紧急停车系统可能无法动作,一旦发生事故无法及时响应。

  • 实例

  • 2016年未知攻击:有报告称攻击者利用Mirai变种感染暴露的PLC,发起DoS攻击,导致生产线停工。

  • 安全研究:研究人员使用工具向施耐德Modicon M340 PLC发送大量Modbus请求,使其CPU使用率升至100%,无法处理正常通信,造成过程失控。

end

往期内容回顾****

| | | — | | 内网对抗穿透之隧道转发及突破系统防火墙限制 | | 内网渗透测试之Responder工具 | | 内网渗透之内网信息收集 | | 内网渗透工具mimikatz |

@请赐予我力量,关注和转发是最大的支持@

+VX:TCMAFNS119  欢迎进群交流


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:老付话安全 老付话安全 老付话安全《【工业控制系统网络安全系列课程】第2课-工业控制系统的网络安全风险-过程控制漏洞利用(二)典型漏洞利用路径》

评论:0   参与:  0