西门子 S7-300 启停

什么是S7协议?

S7协议是SIEMENS S7系列产品之间通讯使用的标准协议,其优点是通信双方无论是在同一MPI总线上、同一PROFIBUS总线上或同一工业以太网中,都可通过S7协议建立通信连接,使用相同的编程方式进行数据交换而与使用何种总线或网络无关。

西门子S7协议底层原理分析

  我们对ModbusRTU协议、ModbusTCP协议、欧姆龙FinsTCP协议、三菱SLMP协议都做了说明:今天我们来分享一下关于西门子S7协议的通信分析。西门子作为一个老牌工控企业,在中国市场拥有很高的市场占有率。如果要说起西门子的通信协议,相信大家多多少少能说出一些,比如MPI、PPI、USS、Profibus、Profinet、S7等,但是西门子在协议的开放性方面还是相对要封闭一些,所以很多协议都是不开放的。在这里,我主要是结合Wireshark抓包工具,跟大家去分享一下,如何是一步一步抓取西门子S7通信协议底层通信报文的,希望通过我一步一步地分析,让大家都能够对西门子S7协议有所了解的同时,也学会基本的抓包操作与报文分析。

环境搭建

1、首先我们要准备要准备一个西门子的PLC,并保证PLC与PC之间的网络连接正常。PS:对于手头没有PLC的小伙伴,可以查看这篇文章:基于S7-PLCSIM Advanced搭建S7通信仿真环境

2、为了抓取到通信的报文,需要实现PC与PLC之间的通信,这里我采用的方式是通过KepServer V6.4来实现,后台关键词

开始试验

1.安装Vmware workstaion和Kali linux等软件,配置虚拟环境。

2.kali中安装工控漏洞利用框架 ISF

(1)在kali终端中使用命令:git clone https://github.com/dark-lbp/isf/

(2)输入cd isf

(3)输入python2 isf.py

(4)这时有可能会报错:缺少nmap模块,方法:A.克隆下载nmap模块的包:git clone GitHub - johanlundberg/python-nmap: Clone of https://bitbucket.org/xael/python-nmap​​​​​​​​​​​
GitHub - johanlundberg/python-nmap: Clone of https://bitbucket.org/xael/python-nmap​​​​​​​​​​​

B.进入python-nmap文件夹:cd python-nmap,使用命令python2 setup.py install

C.进入python2中import nmap发现没有报错了,使用exit()退出

D.回到上一级文件夹,继续执行 python2 isf.py命令进行安装

3.使用snap7模拟PLC设备,解压压缩包,打开 \rich-demos\x86_64-win64\bin路径

(1).使用serverdemo.exe模拟PLC设备,用ipconfig查看本机ip,也即物理机IP,填写到serverdemo.exe中

(2)在serverdemo.exe界面先点击start启动server

(3)可以查看到serverdemo.exe下面日志就显示server started

(4) 使用clientdemo.exe模拟主机,clientdemo.exe界面上填写上物理机ip

(5)clientdemo.exe界面上点击connect连接

(6)这时继续查看server的日志,显示client已经added(serverdemo.exe)

4.打开ISF后,输入:

use exploits/plcs/siemens/s7_300_400_plc_control

5.show options

6.set target 物理机IP

7.run

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

STOP——>OK

好了,到这里就结束了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值