s7scan 安装使用教程
一、目的
了解Siemens PLC指纹;
熟悉s7scan扫描操作;
二、安装环境
一台可以联网的电脑(以操作系统Windows为例)
Python 2.7.x
三、s7scan工具说明
s7scan是卡巴斯基实验室开发一款工具,通过网络扫描列举西门子PLC并收集其基本信息的工具,如PLC固件和硬件版本、网络配置和安全参数。工具使用python2.x编写,windows和linux下均可执行。该工具使用S7协议连接到PLC。该工具的主要特点:
- 识别特定网络中的所有活动PLC;
- 获取每个PLC的基本信息:
a.PLC类型;
b.软件版本;
c.硬件版本;
d.应用于PLC的保护设置(如关键位置的R/W/RW访问权限);
e.PLC的网络配置。
3. 支持TCP/IP和LLC传输协议。
四、安装过程
1. 下载s7scan。
1.1 打开https://github.com/klsecservices/s7scan
1.2点击
1.3 再点击 ,下载保存s7scan 压缩包zip。
1.4 将下载的s7scan-master.zip解压,完成s7scan的下载。
2. 安装scapy
2.1 s7scan依赖scapy,使用如下命令安装scapy
pip install scapy
2.2命令行进入s7scan的目录,执行python s7scan.py
显示如下,说明安装成功,可以进行扫描
3. 可选安装WinPcap(提供LLC层协议支持)
两种方式任选一种:
3.1 安装wireshark,安装过程中不要忘了安装WinPcap
3.2 在下载的s7scan找到winpcap_installer_test.py,执行如下命令:
winpcap_installer.py install
如果不想执行了,可以移除WinPcap files
winpcap_installer.py uninstall
还可以检测是否安装了WinPcap files
winpcap_installer_test.py check
五、s7scan使用
1.s7scan扫描命令解释
-h或者--help | 显示帮助信息 |
--llc | 基于逻辑链路层的扫描 |
--tcp | TCP层扫描 |
--iface IFACE | 使用IFACE网卡,进行扫描 ,使用llc参数时需指定 |
--tcp-hosts FILE | 从FILE文件提取TCP扫描目标 |
--llc-hosts FILE | 从FILE文件提取LLC扫描目标 |
--ports PORTS | 指定扫描端口 |
--timeout TIMEOUT | 超时设置 |
--log-dir LOG_DIR | 指定扫描结果存放的目录,默认存在当前工作目录 |
--no-log | 不保存扫描结果 |
2. s7scan使用举例
2.1 扫描单个IP
python s7scan.py --tcp --ports 102 192.168.1.77
扫描结果包含该PLC的:PLC类型;软件版本,硬件版本等信息
2.2 扫描特定网段里的PLC
python s7scan.py --tcp --ports 102 192.168.1.0/24
2.3 使用LLC扫描特定PLC
python .\s7scan.py --llc --port 102 ac:64:17:1e:ac:75 --iface "Qualcomm Atheros QCA9377 Wireless Network Adapter"
注:windows 下--iface 来源可用ipconfig /all 找到