工控CTF仿真环境

 

剑思庭分享一个用于工控CTF的仿真环境,该环境为用户提供了完整的虚拟工业控制系统(ICS)网络,工控CTF仿真环境为化工行业反应釜为工厂背景,采用为3个VM(流程模拟,PLC和HMI)在仅主机的虚拟网络上相互通信。

此工控CTF仿真环境以进行常见的攻击,包括命令注入,中间人和缓冲区溢出,并在可视化中直观地查看其攻击的影响。 用户还可以通过使用强大的防火墙规则对网络进行适当的分段或编写入侵检测规则来练习其防御技能。

 

三个虚拟机的描述:

1、流程模拟VM对化学过程反应进行现实的模拟,由模拟的远程IO设备通过简单的JSON API对其进行控制和监视。 然后,这些远程IO设备由PLC VM使用Modbus协议进行监视和控制。

流程模拟VM含带Modbus子站,其IP分配和Modbus地址
192.168.95.10 – feed 1
holding register 1 – valve position set point 0-65535, where 0 is closed and 65535 is open
input regiser 1 – valve position reading
input register 2 – flow rate through valve

192.168.95.11 – feed 2
holding register 1 – valve position set point
input regiser 1 – valve position reading
input register 2 – flow rate through valve

192.168.95.12 – purge valve
holding register 1 – valve position set point
input regiser 1 – valve position reading
input register 2 – flow rate through valve

192.168.95.13 – product valve
holding register 1 – valve position set point
input regiser 1 – valve position reading
input register 2 – flow rate through valve

192.168.95.14 – tank
input register 1 – pressure
input register 2 – level

192.168.95.15 – analyzer
input registers 1-3 composition of gases in reactor

2、可编程逻辑控制器PLC VM是OpenPLC的修改版,它使用具有已知缓冲区溢出漏洞的旧版libmodbus库。PLC轮询所有远程IO,将测量结果用于其控制算法,并将比例值报告回HMI(192.168.95.3)进行显示

PLC VM的IP地址192.168.95.2 内置Modbus TCP地址
holding registers being polled by HMI
1044 – reactor pressure
1045 – reactor liquid level
1046 – feed 1 valve position
1047 – feed 1 flow rate
1048 – feed 2 valve position
1049 – feed 2 flow rate
1050 – purge valve position
1051 – purge flow rate
1052 – product valve position
1053 – product flow rate

3、人机接口HMI VM主要包含使用AdvancedHMI软件创建的操作员HMI。 该HMI用于监视PLC收集的过程测量值并将命令发送到PLC。除了HMI,此VM还包含用于对OpenPLC进行重新编程的PLC OpenEditor软件。IP地址:192.168.95.3

 

使用说明:

1、推荐硬件(不能低于):
Intel 2.0G 4 Core
8GB RAM
25GB可用硬盘空间

2、环境搭建:
1)虚拟机下载:
百度云盘:https://pan.baidu.com/s/1n8zZHwC834HxFriv7OSiQQ
提取码:zomi
2)在vbox中添加IP地址为192.168.95.1和255.255.255.0子网掩码的仅主机适配器
3)导入ova虚拟机
4)每台虚拟机登陆用户名为:user,密码:password
5)登录到流程模拟VM并打开2个终端。 在其中之一,cd进入“ HMI_Simulation_Ubuntu1604_15_x86_64”目录并运行“ sudo ./HMI_Simulation_Ubuntu1604_15_x86_64.x86_64”。 输入“ / home / user / simulation / simulation”作为仿真代码的路径,单击“运行服务器”,然后单击“启动”。 在第二个终端中,cd进入Simulation / remote_io目录,然后运行“ sudo bash run_all.sh”
6)登录到plc VM,通过cd进入OpenPLC_v2目录,然后运行“ sudo nodejs server.js”
7)登录到hmi VM,cd进入HMI目录,然后运行“ wine AdvancedHMI.exe”

IRTeam(工业安全红队)
剑思庭 工控安全团队负责人

(完)