1.本文章结合作者在平时工作中经历,对工控资产嗅探所使用的工具进行简单分析与验证,工控资产地址可以通过shodan、fofa、zoomeye等网站进行收集。
2.利用Nmap工具可以对S7、modbus的plc设备进行扫描探测,
Nmap 6.4 脚本目录位于:/usr/share/nmap/scripts, 共有448个脚本。
如下所示:
脚本分类如下:
脚本参数:
-sC: 等价于 –script=default,使用默认类别的脚本进行扫描
–script=
–script-args=
–script-args-file=filename: 使用文件来为脚本提供参数
–script-trace: 显示脚本执行过程中发送与接收的数据
–script-updatedb: 更新脚本数据库
–script-help=
脚本使用方式:
执行单个脚本:nmap –script /path/to/script.nse
执行多个脚本:nmap –script /path/to/script.nse,/another/path/script2.nse
执行文件夹包含的所有脚本:nmap –script/path/to/folder/
描述:探测modbus协议的设备
输入:nmap -sV –script modbus-discover 166.169.57.136 -p 502
输出:
描述:探测EthernetIP协议的设备
输入:nmap -p 44818 –script enip-enumerate.nse 221.206.153.114
输出:
描述:探测CoDeSyS协议的设备
输入:nmap -p 1200,2455 –script codesys-v2-discover 178.242.1.44
输出:
描述:探测NiagaraFox协议的设备
输入:nmap -p 1911 –script fox-info 67.176.19.167
输出:
描述:探测S7协议的设备
输入:nmap -p 102 –script s7-enumerate.nse 79.135.33.188
输出:
…
其它工控组件如下,使用参考:https://github.com/digitalbond/Redpoint#bacnet-discover-enumeratense
3.用plcscan工具可以对S7、modbus的plc设备进行扫描探测
S7协议plc设备探测
第一步:新建ip.list,将要扫描的ip写入其中
第二步:在plcscan目录下输入python plcscan.py –hosts-list=ip.list –ports=102命令进行扫描并观察结果
备注:也可以通过输入python plcscan.py 178.139.130.34 –ports=102 进行指定ip扫描,如下图所示
modbus协议设备探测
第一步:新建ip.list,将要扫描的ip写入其中
第二步:在plcscan目录下输入python plcscan.py –hosts-list=ip.list –ports=502命令进行扫描并观察结果
备注:也可以通过输入python plcscan.py 178.139.130.34 –ports=502 进行指定ip扫描,如下图所示
nS7和modbus协议设备探测
第一步:新建ip.list,将要扫描的ip写入其中
第二步:在plcscan目录下输入python plcscan.py –hosts-list=ip.list 命令进行扫描并观察结果
4.利用ISF工具对s7、cip、enip、profine-dcp协议工控设备