码迷,mamicode.com
首页 > 其他好文 > 详细

工控安全-PLC指纹提取的几种方法

时间:2019-10-24 13:07:54      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:开始   安全   bsp   团队   硬件   详细   型号   ret   更新   

前言:PLC为可编程逻辑控制器,采用S7协议。其硬件本身存在许多漏洞,可以利用kali里面的漏洞模块或者modbus工具对其进行攻击,甚至直接可以进行未授权访问,只要其开启对外网的端口服务,那么我们就可以利用其私有协议进行指纹提取、模糊测试、漏洞利用来最终达到控制PLC。指纹提取占据比较重要的位置,因为我们只要把指纹提取的工作做好,那么我门就可以针对什么版本的PLC进行1day的打击。因为工控硬件的更新换代始终很慢。

这里采用的是一个西门子PLC的仿真软件来进行实验的。

0x01 nmap指纹识别

在虚拟机中开启西门子S7 PLC仿真软件,ip不用改,如果nmap扫不出,再改成本地ip

技术图片

 

 

nmap扫描整个网段中开放102端口的存活ip

nmap -p102 -n 192.168.163.1/24 --open

先看看启动了PLC的虚拟机的ip

技术图片

 

 

 然后在物理机上扫描

技术图片

 

 

 发现整个内网中开放102端口的ip

接下来就可以用nmap的s7-info.nse脚本探测其指纹信息

nmap -p102 -n 192.168.1.116 --open --script=s7-info.nse

技术图片

 

 

 0x02 PLC连接信息采集工具

 

 

 下载PLC连接测试工具对PLC的信息进行采集,获取到详细的指纹,ip地址填plc所在的ip,即存在plc仿真软件的虚拟机

技术图片

 

 

 

然后连接,即可获取很详细的指纹信息

技术图片

 

 

 0x03 wireshark抓包进行流量分析获取PLC指纹信息

打开wireshark,开始抓包,筛选cotp

技术图片

 

 

 然后打开PLC连接工具进行连接

技术图片

 

 

 然后就捕获到了s7协议的包

747号的包是物理机向PLC请求通讯;749号数据包是物理机向plc请求配置通讯;等750号plc同意之后;752号物理机开始发送数据进行通讯;

下面从plc的ip192.168.1.116发送到物理机192.168.1.100的数据包就是plc的指纹信息,比如说755号的数据包。

技术图片

 

 

 可以看到PLC的CPU型号、序列号等指纹信息。

 

当然还有几种方法可以获取到PLC的指纹信息,比如说可以利用python模拟抓包来获取。但以上三种是最为常用方便的。

附上TideSec安全团队总结(更全面):

http://mp.weixin.qq.com/s?__biz=Mzg2NTA4OTI5NA==&mid=2247484526&idx=1&sn=92b6b46bd6471ba2bc7b51cad1c86fe1&chksm=ce5e260ff929af19db8a74f7c0309049c4eabc4b972d9ac03810bc3a4a791b6384864942294f&mpshare=1&scene=23&srcid=1024zQya2YBwrCEztoHnVbyn&sharer_sharetime=1571891653504&sharer_shareid=45176a46e594e1ff053abe513bfce4be#rd

 

工控安全-PLC指纹提取的几种方法

标签:开始   安全   bsp   团队   硬件   详细   型号   ret   更新   

原文地址:https://www.cnblogs.com/-chenxs/p/11731530.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!