转载(http://bobao.360.cn/learning/detail/659.html)html
0x00写在前面git
工业4.0,物联网趋势化,工控安全实战化。安全从业保持敏感,本篇以科普角度对工控安全作入门分析,大牛绕过,不喜轻喷。github
0x01专业术语shell
SCADA:数据采集与监视控制系统编程
ICS:工业控制系统安全
DCS:分布式控制系统/集散控制系统bash
PCS:过程控制系统网络
ESD:应急停车系统分布式
PLC:可编程序控制器(Programmable Logic Controller)ide
RTU:远程终端控制系统
IED:智能监测单元
HMI:人机界面(Human Machine Interface)
MIS:管理信息系统(Management Information System)
SIS: 生产过程自动化监控和管理系统(Supervisory Information System)
MES:制造执行管理系统
0x02协议端口及测试脚本
协议科普
Modbus
MODBUS协议定义了一个与基础通讯层无关的简单协议数据单元(PDU)。特定总线或网络上的MODBUS协议映射可以在应用数据单元(ADU)上引入一些附加域。
安全问题:
缺少认证:仅须要使用一个合法的Modbus地址和合法的功能码便可以创建一个Modbus会话
缺少受权:没有基于角色的访问控制机制, 任意用户能够执行任意的功能。
缺少加密:地址和命令明文传输, 能够很容易地捕获和解析
PROFIBUS
一种用于工厂自动化车间级监控和现场设备层数据通讯与控制的现场总线技术,可实现现场设备层到车间级监控的分散式数字控制和现场通讯网络
DNP3
DNP(Distributed Network Protocol,分布式网络协议)是一种应用于自动化组件之间的通信协议,常见于电力、水处理等行业。
简化OSI模型,只包含了物理层,数据层与应用层的体系结构(EPA)。
SCADA可使用DNP协议与主站、RTU、及IED进行通信。
ICCP
电力控制中心通信协议。
OPC
过程控制的OLE (OLE for Process Control)。
OPC包括一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统。
BACnet
楼宇自动控制网络数据通信协议(A Data Communication Protocol for Building Automation and Control Networks)。
BACnet 协议是为计算机控制采暖、制冷、空调HVAC系统和其余建筑物设备系统定义服务和协议
CIP
通用工业协议,被deviceNet、ControINet、EtherNet/IP三种网络所采用。
Siemens S7
属于第7层的协议,用于西门子设备之间进行交换数据,经过TSAP,可加载MPI,DP,以太网等不一样物理结构总线或网络上,PLC通常能够经过封装好的通信功能块实现。
其余工控协议
IEC 60870-5-10四、EtherNet/IP、Tridium Niagara Fox、Crimson V三、OMRON FINS、PCWorx、ProConOs、MELSEC-Q。按需求自行查阅资料。
信息探测
协议测试脚本
PS:简要测试,大量脚本自行测试。
相关搜索引擎
Shodan搜索
PS:Shodan搜索引擎介绍 http://drops.wooyun.org/tips/2469
Zoomeye搜索
PS:敏感信息,你懂得。
Ethernet/IP 44818
1
|
nmap -p 44818 --script enip-enumerate.nse 85.132.179.*
|
Modbus 502
1
|
nmap --script modicon-info.nse -Pn -p 502 -sV 91.83.43.*
|
IEC 61870-5-101/104 2404
1
|
nmap -Pn -n -d --script iec-identify.nse --script-args=iec-identify -p 2404 80.34.253.*
|
Siemens S7 102
1
|
nmap -p 102 --script s7-enumerate -sV 140.207.152.*
|
1
|
nmap -d --script mms-identify.nse --script-args=
'mms-identify.timeout=500'
-p 102 IP
|
Tridium Niagara Fox 1911
1
|
nmap -p 1911 --script fox-info 99.55.238.*
|
意义何在
上述NSE脚本意义:
定位工控系统及协议模块。
收集目标工控的信息,如版本、内网IP、模块、硬件信息等。
结合对应的NSE脚本进一步拓展,例如自定义空间搜素引擎。
脚本资源
Github测试脚本
https://github.com/atimorin/scada-tools
https://github.com/atimorin/PoC2013
https://github.com/drainware/scada-tools
https://github.com/drainware/nmap-scada
Exploit-db测试脚本
https://www.exploit-db.com/exploits/19833/
https://www.exploit-db.com/exploits/19832/
https://www.exploit-db.com/exploits/19831/
https://www.exploit-db.com/search/?action=search&description=scada&e_author=
0x03乌云工控漏洞的分析
工控相关漏洞分析
针对乌云主站的漏洞进行关键字搜索:工控(31)、SCADA(15)、Modbus(9)、PLC并进一步整合获得以下列表。
在以上的漏洞列表中,能够得出以下结论:
乌云工控漏洞的案例中,绝大多原由是弱口令(弱口令最多的是123456,其次是admin)、注入类漏洞。
可以挖出工控的精华漏洞的人也是特定的那几位,且在Kcon2015也有过演讲。
挖掘此类漏洞主要解决两个问题
如何找到工控相关的系统和地址
Getshell后,基于工控知识如何操控系统
根据漏洞中的细节能够进一步的复测和拓展,进而为工控系统的漏洞挖掘提供非线性思路。
结合GHDB关键字的搜素:例如inurl:SCADA……
连接地址含SCADA、Modbus等协议的关键字……
其余KEY:MIS、SIS、DCS、PLC、ICS、监控系统……
相关公司:南京科远、金风科技、天能集团、国电南瑞、华润燃气、积成电子、重庆三峰、东方电子……
至于利用以上四点去作什么,呵呵…
工控精华漏洞分析
乌云工控相关的精华漏洞以下7个,在思路亮点中分析了漏洞的核心,一样也多是得到打雷精华的理由。几乎共同点均是操控了对应的工控系统。
0x04参考资源
工控专题
ZoomEye工控专题: http://ics.zoomeye.org/
Shodan工控专题:https://www.shodan.io/report/l7VjfVKc
牛人分享
Z-0ne专一于工控安全攻防技术研究 :http://plcscan.org/blog/
网络空间工控设备的发现与入侵:https://github.com/evilcos/papers
工控安全攻防演练场景实现分享(轨道交通):http://zone.wooyun.org/content/14428
工业网络渗透,直击工控安全的罩门(zph,暂无资料)
工控系统安全威胁与应对探索(Kimon)
Exploit PLC on the internet(Z-0ne):https://github.com/knownsec/KCon/tree/master/KCon%202015
其余参考
Google & baidu
协议安全分析专业公司——科诺康:http://www.codenomicon.com/cn/
Modbus通信协议学习 - 认识篇:http://www.cnblogs.com/luomingui/archive/2013/06/14/Modbus.html