作者 | 绿盟科技格物实验室 陈杰
前言
近年来网络安全形势日渐严峻,国内外都开始对工控安全越来越重视,而工控领域由于常年来对安全的忽视,导致暴露出数量惊人的严重安全漏洞,更为严重的是,相当一部分厂商即使在漏洞披露出来后也没有能力去修复。从实战出发,以一个国产的SCADA软件作为例子,介绍对工控软件的漏洞挖掘方法,希望通过这篇文章能够让越来越多的安全研究员重视工控领域的安全。漏洞挖掘
先简单画一个界面,快速组态一个工程并且运行后,可以发现该软件提供web接口去访问该操作界面。![ed310386d4cc9f4b29b90a1e6f097465.png](https://img-blog.csdnimg.cn/img_convert/ed310386d4cc9f4b29b90a1e6f097465.png)
漏洞利用
通过上面的分析可以知道,该漏洞是非常经典的栈缓冲区溢出漏洞。在利用这个漏洞之前,先要分析该二进制程序开启的缓解措施,幸运的是,该二进制文件都关闭所有的漏洞缓解措施了,这就非常方便我们对漏洞进行利用。msfvenom -a x86 --platform windows -p windows/messagebox TEXT="hello world" -e x86/alpha_mixed -b '\x5c\x22\x27\x08\x0c\x09\x0d\x0a\x00' BufferRegister=esp |
![d54b124952b2f5efc4664f347d3375e3.png](https://img-blog.csdnimg.cn/img_convert/d54b124952b2f5efc4664f347d3375e3.png)
总结
由于现在的上位机SCADA软件的基础组件还是主要由C/C++进行开发,所以不可避免还是存在一些内存破坏类漏洞。这类漏洞轻则造成拒绝服务,重则造成远程代码执行。尤其是关键工业生产行业中,就算无法成功利用也可以导致拒绝服务,会造成重大损失。用户需要有安全意识,及时更新工控软件安全补丁,工控厂商也要培养开发者的安全开发能力,并对提交漏洞快速进行响应,提出修复和缓解措施。 转载请注明来自:关键基础设施安全应急响应中心