# 工控安全入门分析

Author: 乌云历史资料库 (@wooyun_archive)
Published: 2015-09-14T02:09:00Z
Canonical: https://wepostx.com/topics/1036

> 乌云历史资料归档
>
> **原始作者：** 路人甲
> **原始编号：** superkieran-wooyundrops:761
> **原始发布时间：** 2015-09-14 10:09
> **声明：内容仅用于技术研究和个人使用，版权归 wooyun.org。**

---

# 0x00写在前面

工业4.0，物联网趋势化，工控安全实战化。安全从业保持敏感，本篇以科普角度对工控安全做入门分析，大牛绕过，不喜轻喷。

![原文图片](/media/2016/06/3b075e752444edacde9ffe0bf3a6cd7b)

# 0x01专业术语

SCADA：数据采集与监视控制系统
ICS：工业控制系统
DCS：分布式控制系统/集散控制系统
PCS：过程控制系统
ESD：应急停车系统
PLC：可编程序控制器(Programmable Logic Controller)
RTU：远程终端控制系统
IED：智能监测单元
HMI：人机界面(Human Machine Interface)
MIS：管理信息系统(Management Information System)
SIS： 生产过程自动化监控和管理系统（Supervisory Information System）
MES：制造执行管理系统

# 0x02协议端口及测试脚本

- 协议科普

- Modbus
MODBUS协议定义了一个与基础通信层无关的简单协议数据单元（PDU）。特定总线或网络上的MODBUS协议映射能够在应用数据单元（ADU）上引入一些附加域。

![原文图片](/media/2016/06/b6a8623d4f1e2f5778f876721440fcda)

安全问题：

- 缺乏认证：仅需要使用一个合法的Modbus地址和合法的功能码即可以建立一个Modbus会话

- 缺乏授权：没有基于角色的访问控制机制， 任意用户可以执行任意的功能。

- 缺乏加密：地址和命令明文传输， 可以很容易地捕获和解析

- PROFIBUS
一种用于工厂自动化车间级监控和现场设备层数据通信与控制的现场总线技术，可实现现场设备层到车间级监控的分散式数字控制和现场通信网络

- DNP3
DNP(Distributed Network Protocol,分布式网络协议)是一种应用于自动化组件之间的通讯协议，常见于电力、水处理等行业。
简化OSI模型，只包含了物理层，数据层与应用层的体系结构（EPA）。
SCADA可以使用DNP协议与主站、RTU、及IED进行通讯。

- ICCP
[电力控制中心](http://www.doc88.com/p-0127254402976.html)通讯协议。

- 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-104、EtherNet/IP、Tridium Niagara Fox、Crimson V3、OMRON FINS、PCWorx、ProConOs、MELSEC-Q。按需求自行查阅资料。

- 信息探测

- 协议测试脚本

![原文图片](/media/2016/06/e8c414d8d93c228bb4692120097f31bc)

PS：简要测试，大量脚本自行测试。

- 相关搜索引擎
Shodan搜索

![原文图片](/media/2016/06/8f2d4142da996fb30f66ac1e2a0a6ccf)

PS：Shodan搜索引擎介绍 http://drops.wooyun.org/tips/2469
Zoomeye搜索

![原文图片](/media/2016/06/d27600de5b4a3050948412a6c3875fe9)

PS：敏感信息，你懂得。

- Ethernet/IP 44818
nmap -p 44818 --script enip-enumerate.nse 85.132.179.*

![原文图片](/media/2016/06/fbef282f3491bc6e0ae2030539013307)

- Modbus 502
nmap --script modicon-info.nse -Pn -p 502 -sV 91.83.43.*

![原文图片](/media/2016/06/74634666fbcd7e6f450fd13730796033)

- IEC 61870-5-101/104 2404
nmap -Pn -n -d --script iec-identify.nse --script-args=iec-identify -p 2404 80.34.253.*

![原文图片](/media/2016/06/ffac6660a39e73434418c6d56517ac76)

- Siemens S7 102
nmap -p 102 --script s7-enumerate -sV 140.207.152.*

![原文图片](/media/2016/06/b006e12451c5987d978b403bbb1ae85a)

nmap -d --script mms-identify.nse --script-args='mms-identify.timeout=500' -p 102 IP

![原文图片](/media/2016/06/37f7b3dae4911e05c9bbc9f53d368891)

- Tridium Niagara Fox 1911
nmap -p 1911 --script fox-info 99.55.238.*

![原文图片](/media/2016/06/d9a1bb8c21dcb9214a4573c7dd4b3023)

- 意义何在
上述NSE脚本意义：

- 定位工控系统及协议模块。

- 收集目标工控的信息，如版本、内网IP、模块、硬件信息等。

- 结合对应的NSE脚本进一步拓展，例如自定义空间搜素引擎。

- 脚本资源

- Github测试脚本
[https://github.com/atimorin/scada-tools](https://github.com/atimorin/scada-tools) [https://github.com/atimorin/PoC2013](https://github.com/atimorin/PoC2013) [https://github.com/drainware/scada-tools](https://github.com/drainware/scada-tools) [https://github.com/drainware/nmap-scada](https://github.com/drainware/nmap-scada)

- Exploit-db测试脚本
[https://www.exploit-db.com/exploits/19833/](https://www.exploit-db.com/exploits/19833/) [https://www.exploit-db.com/exploits/19832/](https://www.exploit-db.com/exploits/19832/) [https://www.exploit-db.com/exploits/19831/](https://www.exploit-db.com/exploits/19831/) [https://www.exploit-db.com/search/?action=search&description=scada&e_author=](https://www.exploit-db.com/search/?action=search&description=scada&e_author=)

# 0x03乌云工控漏洞的分析

- 工控相关漏洞分析
针对乌云主站的漏洞进行关键字搜索：工控(31)、SCADA(15)、Modbus(9)、PLC并进一步整合得到如下列表。

![原文图片](/media/2016/06/07698ae19e5d1761a950900df9364dbf)

![原文图片](/media/2016/06/f4ca2d0440e5e11b690f2b0d5e801c5e)

在以上的漏洞列表中，可以得出如下结论：

- 乌云工控漏洞的案例中，绝大多起因是弱口令(弱口令最多的是123456，其次是admin)、注入类漏洞。

- 能够挖出工控的精华漏洞的人也是特定的那几位，且在Kcon2015也有过演讲。

- 挖掘此类漏洞主要解决两个问题
- 如何找到工控相关的系统和地址

- Getshell后，基于工控知识如何操控系统

- 根据漏洞中的细节可以进一步的复测和拓展，进而为工控系统的漏洞挖掘提供非线性思路。
- 结合GHDB关键字的搜素：例如inurl:SCADA……

- 链接地址含SCADA、Modbus等协议的关键字……

- 其他KEY：MIS、SIS、DCS、PLC、ICS、监控系统……

- 相关公司：南京科远、金风科技、天能集团、国电南瑞、华润燃气、积成电子、重庆三峰、东方电子……

- 至于利用以上四点去做什么，呵呵…

- 工控精华漏洞分析
乌云工控相关的精华漏洞如下7个，在思路亮点中分析了漏洞的核心，同样也可能是获得打雷精华的理由。几乎共同点均是操控了对应的工控系统。

![原文图片](/media/2016/06/4fabe42cb2c726df4a0fa464499fe7d7)

# 0x04参考资源

- 工控专题

- ZoomEye工控专题： [http://ics.zoomeye.org/](http://ics.zoomeye.org/)

- Shodan工控专题：[https://www.shodan.io/report/l7VjfVKc](https://www.shodan.io/report/l7VjfVKc)

- 牛人分享

- Z-0ne专注于工控安全攻防技术研究 ：[http://plcscan.org/blog/](http://plcscan.org/blog/)

- 网络空间工控设备的发现与入侵：[https://github.com/evilcos/papers](https://github.com/evilcos/papers)

- 工控安全攻防演练场景实现分享（轨道交通）：[http://zone.wooyun.org/content/14428](http://zone.wooyun.org/content/14428)

- 工业网络渗透，直击工控安全的罩门(zph，暂无资料)

- 工控系统安全威胁与应对探索(Kimon)

- Exploit PLC on the internet（Z-0ne）：[https://github.com/knownsec/KCon/tree/master/KCon%202015](https://github.com/knownsec/KCon/tree/master/KCon%202015)

- 其他参考

- Google & baidu

- 协议安全分析专业公司——科诺康：[http://www.codenomicon.com/cn/](http://www.codenomicon.com/cn/)

- Modbus通讯协议学习 - 认识篇：[http://www.cnblogs.com/luomingui/archive/2013/06/14/Modbus.html](http://www.cnblogs.com/luomingui/archive/2013/06/14/Modbus.html)

## Replies
