Utilizando Metasploit

El módulo modbus_client en Metasploit permite realizar operaciones de cliente Modbus, tales como la lectura y escritura de registros en dispositivos que utilizan el protocolo Modbus. Este módulo es útil para probar y auditar la seguridad de dispositivos SCADA que se comunican mediante Modbus.

  • Nombre del Módulo: auxiliary/scanner/scada/modbus_client

  • Tipo de Módulo: Auxiliary (herramienta de apoyo para pruebas de penetración)

  • Función: Cliente Modbus para la lectura y escritura de registros

  • Protocolo: Modbus TCP

Funcionalidades

El módulo modbus_client permite realizar varias operaciones con dispositivos Modbus, incluyendo:

  1. Lectura de Registros: Permite leer diferentes tipos de registros Modbus, como registros de holding y registros de entrada.

  2. Escritura en Registros: Permite escribir datos en registros Modbus, lo que es útil para configurar dispositivos o probar respuestas a ciertos comandos.

  3. Soporte para Varias Funciones Modbus: Soporta varias funciones del protocolo Modbus, como la lectura de múltiples registros y la escritura de registros individuales o múltiples.

Uso del Módulo modbus_client

A continuación se presenta cómo utilizar el módulo modbus_client en Metasploit para interactuar con dispositivos Modbus.

Paso 1: Iniciar Metasploit

Abre una terminal y ejecuta msfconsole para iniciar la consola de Metasploit.

msfconsole

Paso 2: Cargar el Módulo

Carga el módulo modbus_client utilizando el comando use:

use auxiliary/scanner/scada/modbus_client

Paso 3: Configurar las Opciones

Configura las opciones necesarias para la operación deseada. Las principales opciones incluyen:

  • RHOSTS: La dirección IP del dispositivo Modbus.

  • RPORT: El puerto de comunicación Modbus (por defecto, 502).

  • ACTION: La acción a realizar (READ_HOLDING_REGISTERS, WRITE_SINGLE_REGISTER, etc.).

  • UNIT_NUMBER: El número de unidad del dispositivo Modbus.

  • START_ADDRESS: La dirección de inicio del registro.

  • REGISTER_COUNT: El número de registros a leer o escribir.

  • DATA: El valor de datos a escribir (si se está escribiendo en un registro).

Ejemplo de Configuración para Leer Registros

set RHOSTS 192.168.95.2
set RPORT 502
set ACTION READ_HOLDING_REGISTERS
set UNIT_NUMBER 1
set START_ADDRESS 40
set REGISTER_COUNT 1

Ejemplo de Configuración para Escribir en un Registro

bashCopiar códigoset RHOSTS 192.168.95.2
set RPORT 502
set ACTION WRITE_SINGLE_REGISTER
set UNIT_NUMBER 1
set START_ADDRESS 40
set DATA 12345

Paso 4: Ejecutar el Módulo

Ejecuta el módulo utilizando el comando run:

bashCopiar códigorun

Ejemplo de Salida

Al ejecutar el módulo para leer registros, la salida podría ser similar a:

[*] Reading 1 holding registers starting at address 40
[*] Register 40: 5678

Al ejecutar el módulo para escribir en un registro, la salida podría ser similar a:

[*] Writing value 12345 to holding register at address 40
[*] Write successful

Aplicaciones del Módulo modbus_client

El módulo modbus_client es útil en varias aplicaciones, incluyendo:

  1. Pruebas de Seguridad: Permite a los profesionales de seguridad auditar dispositivos Modbus, buscando vulnerabilidades como registros accesibles sin autenticación.

  2. Diagnóstico y Resolución de Problemas: Facilita la lectura y escritura de registros para diagnosticar y resolver problemas en dispositivos Modbus.

  3. Configuración de Dispositivos: Permite configurar dispositivos Modbus mediante la escritura de registros de configuración.

  4. Evaluación de la Resiliencia: Permite evaluar la resiliencia de los dispositivos Modbus ante comandos no autorizados o maliciosos.

Última actualización