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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://books.spartan-cybersec.com/cpics/herramientas-y-tecnicas/inyeccion-maliciosa-de-comandos-modbus/utilizando-metasploit.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
