跳转至

ICS_CTF 利用

ICS CTF竞赛内容来自于作者自身打比赛经验,如有不对之处,请各位多多谅解

Exploit是针对某种漏洞提供的多种利用方法,针对某一种漏洞可以有很多利用方法。 针对工控领域,其实目前多见的利用方式:组态利用、通信劫持、Web渗透。

组态利用

组态是工控场景的核心,是工控编程与实现功能的核心内容,如果你不太懂组态,请自行学习自动化领域工业控制系统组态的相关书籍。 最好的学习方式是拿到相关的产品说明书,针对说明书上的内容一点一点学习。

组态的利用方法:

  1. 强制IO(最管用的一种调试方法)
  2. 工程加密与解密(工程加密是PLC一种保护措施,但仍存在被破解的可能)
  3. 上载下载(基础概念请自行恶补)
  4. PLC等目标设备的内存分布(基础概念请自行恶补)
  5. 其他附加功能(例如ftp、ntp等)

通信劫持

通信劫持是工控场景中最经典利用方式,例如ARP劫持、PLC/HMI通信劫持、PLC会话劫持、PLC命令执行等内容。 通信劫持的方法:

  1. ARP劫持,ARP劫持可以阻断PLC与其他设备的通信,鉴于工程会存在写死IP等交互地址,未必管用,但是值得一试
  2. PLC/HMI通信劫持,采用旁路设备接入或控制PLC设备,对IO进行强制重写或输出
  3. PLC命令执行,针对工控设备最敏感的部分是设备宕机(无法恢复的)、设备启停、设备强制更新参数,等等这些对普通工艺能够产生较大的影响。

Web渗透

目标企业往往存在Web类工控应用,例如发布工艺发布页面,用户数据库等页面,这些内容基本与平日Web题目无异。

  1. 弱口令(工控里比较常见,工控设备中厂商默认密码)
  2. 命令注入(比较普遍,需要审计Web工程源码)
  3. 目录遍历(手测简单,利用难,需要结合上传等功能实现)
  4. 预置后门(比较难以发现,需要逆向和Web渗透相结合)
  5. SQL类注入(比较简单)
  6. XSS在这里基本无用(基本没怎么遇到过)
  7. 工程文件泄露(.git/.idea/.project等工程文件泄露)