通过“震网三代”和Siemens PLC 0day漏洞,实现对工控系统的入侵实验
作者:CQITer小编 时间:2018-03-08 21:40
OS:Kali Linux 2017.3
工程师站:OS:Windows 7 sp1 x64
IP:192.168.0.152
仿真平台(仿真伊朗核设施的铀浓缩的离心机):PLC:Siemens S7-300
IP:192.168.0.234

Windows:CVE-2017-8464
PLC:0 day漏洞
0×00 前言2006年,伊朗重启核设施,为了阻止伊朗此举,美国派出间谍买通伊朗核工厂技术人员,将含有漏洞利用工具的U盘插入了工厂控制系统电脑。紧接着,核工厂大量离心机无缘无故损坏,科学家束手无策,工厂被迫关闭,延迟核计划。这就是2010年曝光的“震网事件(Stuxnet)”。
图2 “震网”事件

图2 “震网”事件
而攻击伊朗核工厂的漏洞利用工具就是“震网一代”,它因此被公认为世界上首个网络“超级破坏性武器”。
2011年,“震网二代”出现,因为它会在临时目录下生成名为~DQ 的随机文件,也被称作Duqu。
2017年6月14日,微软发布安全公告,修复了可能被黑客利用的Windows快捷方式高危漏洞(CVE-2017-8464),由于其与攻击伊朗核工厂的震网一代利用漏洞相似,被业界普遍称为“震网三代”。
为此,本文结合 “震网三代”漏洞和西门子0 day漏洞两个漏洞组合攻击控制系统的仿真演示,其中“震网三代”漏洞用于触发含有西门子0 day漏洞的poc程序。
其思路:先把西门子0 day漏洞的poc程序编译成exe文件,然后exploit出含CVE-2017-8464漏洞的快捷方式,最后把exe程序和快捷方式装载到U盘。
图3 攻击U盘

图3 攻击U盘 0×01 漏洞 1 CVE-2017-8464
2017年6月14日,微软发布编号为CVE-2017-8464的漏洞公告,官方介绍Windows系统在解析快捷方式时存在远程执行任意代码的高危漏洞。
当存在漏洞的电脑被插上存在病毒木马的U盘时,不需要任何额外操作,漏洞攻击程序就可以借此完全控制用户的电脑系统。 该漏洞也可能籍由用户访问网络共享、从互联网下载、拷贝文件等操作被触发和利用攻击。
特别是能源、交通、金融等行业的基础设施隔离网,由于需要使用U盘、移动硬盘等存储设备进行数据交换,一旦连接含有漏洞( CVE-2017-8464)利用工具的U盘、移动硬盘连接隔离网内的一台电脑,不需要任何操作,电脑就会被病毒控制。
该漏洞的原理同2010年美国和以色列入侵并破坏伊朗核设施的震网行动中所使用的穿透核设施隔离网络的漏洞(CVE-2010-2568)非常类似,它可以很容易的被黑客利用来攻击基础设施、存放关键资料的核心隔离系统等。
详细介绍参考:。
其影响版本:
Windows 7
Windows 8.1
Windows RT 8.1
Windows 10
Windows Server 2008
Windows Server 2008 R2
Windows Server 2012
Windows Server 2012 R2
Windows Server 2016
2 西门子PLC 0 day漏洞该0 day漏洞是一个能使离心机的转动异常的漏洞。
通过VS2008编译成名为attacker.exe的文件,该文件运行时,先连接上PLC, 然后发送攻击包,最后导致离心机的转动异常。
图4 攻击程序attacker.exe,配置文件init.txt

图4 攻击程序attacker.exe,配置文件init.txt
为了演示效果,attacker.exe不会静默运行。为了攻击更加完美,你可以使其静默运行。
0×02 制作攻击U盘目前CVE-2017-8464漏洞可供测试利用的脚本有如下两个:
msf利用脚本:https://github.com/rapid7/metasploit-framework/pull/8767
Python利用脚本:https://github.com/nixawk/labs/blob/master/CVE-2017-8464/exploit_CVE-2017-8464.py



