CVE-2017-6020 LAquis SCADA目录遍历漏洞

LAquis SCADA工作原理

通信驱动与数据处理

  • 向底层:软件通过工业协议(如 Modbus TCP, OPC, Siemens S7 等)连接到PLC,接收并处理PLC采集到的现场设备传感器数据,向PLC发送控制命令
  • 向上层:
    • 提供HMI供工程师监控与操作设备
    • 将历史数据存入数据库,供企业层管理使用

HMI与Web Server

桌面端:工程师在软件里画图(管道、仪表盘、按钮),并将这些图形与数据标签绑定,达到监控和控制设备的效果

Web端:将这些桌面工程转化为 HTML

漏洞成因

程序对Nome参数过滤不严,攻击者可通过发送带有目录遍历序列的请求,利用该漏洞检索敏感信息或篡改任意文件

实验环境

实验拓扑

Windows 7

使用U盘将安装程序从主机拷贝到虚拟机中,然后一路Next

在LAquis SCADA中,新建一个空模板项目

然后在menu->open中选择一个模板,我的软件直接装在默认位置C:Program Files (x86),那么模板位置位于/LAquis/Apls/Examples/ExamplosCLPs下,我选择ModBUS中的某个模板

等待加载完成:

然后我们开启web服务,在menu->File->WEB Server..

点击Activate WEB server

默认在本地开启1234端口

我们在主机中访问一下,在此之前要先获取虚拟机的ip

cmd中:ipconfig获取虚拟机地址

在主机中访问:虚拟机ip:1234

Web Server部署完成

Kali Linux

首先下载对应的exploit脚本 -> 链接

使用ssh连接到kali虚拟机,将对应的.rb文件传到/usr/share/metasploit-framework/modules/exploits/windows/scada/

脚本部署完毕后,在终端中输入msfconsole启动metasploit

输入reload_all重新加载模块

路径太长不好记,在msf里面直接输入命令search cve_2017_6020

然后直接use 给出的序号

输入命令show options查看模块参数

DEPTH表示路径深度,即向上跳转的次数

我们前面把软件安装在默认位置,选择的模板位于

C:Program Files (x86)/LAquis/Apls/Examples/ExamplosCLPs/ModBUS/...

仅需7层就可以跳到C盘根目录,DEPTH=10足够跳转到C盘根目录

随后在Win7虚拟机的C盘根目录下写一个flag.txt

在msf中set FILE flag.txt

再将rhosts设置为win7的IP地址 set rohosts win7_ip

然后run之后就可以拿到flag

Wireshark抓包

run的同时打开wireshark进行抓包,过滤ip.dst和ip.src就可以找到对应包含NOME参数的GET请求数据包