> For the complete documentation index, see [llms.txt](https://books.spartan-cybersec.com/cpics/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://books.spartan-cybersec.com/cpics/herramientas-y-tecnicas/inyeccion-maliciosa-de-comandos-modbus/utilizando-metasploit.md).

# 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.

```bash
msfconsole
```

**Paso 2: Cargar el Módulo**

Carga el módulo `modbus_client` utilizando el comando `use`:

```bash
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**

```bash
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**

```bash
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`:

```bash
bashCopiar códigorun
```

## **Ejemplo de Salida**

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

```bash
[*] 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:

```bash
[*] 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.
