工控资产嗅探与分析实践
source link: https://www.tuicool.com/articles/mIbAJnr
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
* 本工具仅供技术分享、交流讨论,严禁用于非法用途。
1.本文章结合作者在平时工作中经历,对工控资产嗅探所使用的工具进行简单分析与验证,工控资产地址可以通过shodan、fofa、zoomeye等网站进行收集。
2.利用Nmap工具可以对S7、modbus的plc设备进行扫描探测
Nmap 6.4 脚本目录位于:/usr/share/nmap/scripts, 共有448个脚本 如下所示:
脚本分类如下:
脚本参数:
-sC: 等价于 –script=default,使用默认类别的脚本进行扫描。 –script=<Lua scripts>: <Lua scripts>使用某个或某类脚本进行扫描,支持通配符描述 –script-args=<n1=v1,[n2=v2,...]>: 为脚本提供默认参数 –script-args-file=filename: 使用文件来为脚本提供参数 –script-trace: 显示脚本执行过程中发送与接收的数据 –script-updatedb: 更新脚本数据库 –script-help=<Lua scripts>: 显示脚本的帮助信息,其中<Luascripts>部分可以逗号分隔的文件或脚本类别。
脚本使用方式:
执行单个脚本:nmap –script /path/to/script.nse <target>
执行多个脚本:nmap –script /path/to/script.nse,/another/path/script2.nse <target>
执行文件夹包含的所有脚本:nmap –script/path/to/folder/ <target>
描述:探测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协议工控设备进行资产探测
首先在isf目录下执行以下命令,并进入python环境,如下图所示:
S7
目标:扫描S7-300/S7-400设备(开放端口102)
第一步:输入 scanners/s7comm_scan 选择S7扫描插件
第二步:输入 show info 查看插件描述信息
第三步:输入 show options 查看插件使用信息
第四步:设定目标如set target ip
第五步:执行 run 命令开始扫描并查看扫描结果
操作过程如下图所示:
Vxworks6
目标:扫描vxworks 6.x 设备并且wdbrpc v2版本协议(开放端口17185)
目标:扫描Vxworks6设备
第一步:输入 scanners/vxworks_6_scan 选择vxworks扫描插件
第二步:输入 show info 查看插件描述信息
第三步:输入 show options 查看插件使用信息
第四步:设定目标如set target ip
第五步:执行 run 命令开始扫描并查看扫描结果
操作过程如下图所示:
EnthernetIP
目标:扫描ethernetIP协议设备(开放端口44818)
第一步:输入 scanners/cip_scan 选择cip_scan扫描插件
第二步:输入 show info 查看插件描述信息
第三步:输入 show options 查看插件使用信息
第四步:设定目标如set target ip
第五步:执行 run 命令开始扫描并查看扫描结果
操作过程如下图所示:
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK