> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/es/reconnaissance/nmap.md).

# Nmap

Nmap se utiliza durante el reconocimiento para identificar hosts activos, puertos abiertos, versiones de servicios, sistemas operativos, resultados de scripts NSE y posibles rutas de ataque.

{% hint style="info" %}
**Nmap**, que significa "*Mapeador de red*", es una herramienta de código abierto utilizada para explorar y auditar redes, así como para descubrir hosts y servicios en una red. Fue creada originalmente por Gordon Lyon, también conocido como Fyodor Vaskovich. Nmap proporciona capacidades de análisis de red que permiten a los usuarios descubrir dispositivos conectados a una red, identificar los servicios que se ejecutan en esos dispositivos y obtener información detallada sobre la configuración de la red.
{% endhint %}

#### Comandos comunes y referencia de opciones:

## Referencia de opciones de Nmap

### Destino y descubrimiento de hosts

| Opción               | Descripción                                                                    |
| -------------------- | ------------------------------------------------------------------------------ |
| `10.10.10.0/24`      | Rango de red de destino.                                                       |
| `-sL`                | Análisis de lista. Enumera los destinos sin escanearlos.                       |
| `-sn`                | Deshabilita el escaneo de puertos y realiza solo descubrimiento de hosts.      |
| `-Pn`                | Trata a los hosts como en línea y omite las sondas de descubrimiento de hosts. |
| `-n`                 | Deshabilita la resolución DNS.                                                 |
| `-PE`                | Realiza descubrimiento de hosts usando solicitudes ICMP Echo.                  |
| `--disable-arp-ping` | Deshabilita las solicitudes ARP ping en redes locales.                         |
| `--dns-server <ns>`  | Realiza la resolución DNS usando el servidor de nombres especificado.          |

### Selección de puertos y tipos de escaneo

| Opción              | Descripción                                                                                       |
| ------------------- | ------------------------------------------------------------------------------------------------- |
| `--open`            | Muestra solo los puertos abiertos.                                                                |
| `--top-ports <num>` | Escanea el número especificado de puertos más comunes.                                            |
| `-p-`               | Escanea todos los puertos TCP.                                                                    |
| `-p22-110`          | Escanea todos los puertos entre 22 y 110.                                                         |
| `-p22,25`           | Escanea solo los puertos especificados 22 y 25.                                                   |
| `-F`                | Escaneo rápido. Escanea los 100 puertos principales.                                              |
| `-sS`               | Realiza un escaneo TCP SYN.                                                                       |
| `-sT`               | Realiza un escaneo TCP connect, útil cuando no están disponibles privilegios para el escaneo SYN. |
| `-sA`               | Realiza un escaneo TCP ACK, útil para el mapeo de reglas de firewall.                             |
| `-sU`               | Realiza un escaneo UDP.                                                                           |
| `-sV`               | Detecta las versiones de los servicios descubiertos.                                              |
| `-sC`               | Ejecuta scripts NSE categorizados como `predeterminado`.                                          |
| `--script <script>` | Ejecuta el script NSE o la categoría de scripts especificada.                                     |

### Detección y evasión

| Opción                               | Descripción                                                                                            |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------ |
| `-O`                                 | Realiza detección del SO.                                                                              |
| `-A`                                 | Habilita la detección del SO, la detección de versiones, los scripts NSE predeterminados y traceroute. |
| `--packet-trace`                     | Muestra los paquetes enviados y recibidos.                                                             |
| `--reason`                           | Muestra el motivo por el que Nmap informó un estado de puerto o de host.                               |
| `-D RND:5`                           | Usa cinco señuelos aleatorios para evadir el firewall/IDS.                                             |
| `-e <interface>`                     | Especifica la interfaz de red utilizada para el escaneo.                                               |
| `-S 10.10.10.200`                    | Especifica la dirección IP de origen para el escaneo.                                                  |
| `-g <port>` / `--source-port <port>` | Especifica el puerto de origen para el escaneo.                                                        |

### Opciones de salida

| Opción         | Descripción                                                                                             |
| -------------- | ------------------------------------------------------------------------------------------------------- |
| `-oA filename` | Almacena los resultados en todos los formatos de salida disponibles usando `filename` como nombre base. |
| `-oN filename` | Almacena los resultados en formato normal.                                                              |
| `-oG filename` | Almacena los resultados en formato apto para grep.                                                      |
| `-oX filename` | Almacena los resultados en formato XML.                                                                 |

### Opciones de rendimiento

| Opción                       | Descripción                                                                    |
| ---------------------------- | ------------------------------------------------------------------------------ |
| `--max-retries <num>`        | Establece el número de reintentos para las sondas de escaneo de puertos.       |
| `--stats-every=5s`           | Muestra el estado del escaneo cada 5 segundos.                                 |
| `-v` / `-vv`                 | Muestra salida detallada durante el escaneo.                                   |
| `--initial-rtt-timeout 50ms` | Establece el tiempo de espera inicial de RTT.                                  |
| `--max-rtt-timeout 100ms`    | Establece el tiempo de espera máximo de RTT.                                   |
| `--min-rate 300`             | Envía paquetes a una velocidad no menor que la especificada.                   |
| `-T <0-5>`                   | Establece la plantilla de temporización, desde `0` paranoico hasta `5` insano. |

## **Escaneo de puertos**

```bash
nmap --open -p- -sS --min-rate 5000 -vvv -n -Pn 192.168.0.1 -oG allPorts
```

Escaneo TCP SYN rápido de todos los puertos que omite DNS y el descubrimiento de hosts, muestra el progreso en modo detallado y almacena la salida en formato grepable.

<figure><img src="https://hacking-notes.jord4n.pro/~gitbook/image?url=https%3A%2F%2F3467118603-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FwJ00xYl3QY03Wq54i4By%252Fuploads%252Fe6BGuXp1hLil6uT3Jtic%252Fimage.png%3Falt%3Dmedia%26token%3D96d46423-ca25-4471-a563-42daeae3be1e&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=bcba8a61&#x26;sv=1" alt=""><figcaption></figcaption></figure>

## **Escaneo de versiones de puertos**

```bash
nmap -p22,80,443 -sCV 192.168.0.1 -oN targeted
```

Escaneo dirigido de servicios y scripts predeterminados contra los puertos seleccionados, guardado en formato de salida normal.

<figure><img src="https://hacking-notes.jord4n.pro/~gitbook/image?url=https%3A%2F%2F3467118603-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FwJ00xYl3QY03Wq54i4By%252Fuploads%252F2MsfGLpxVpuiWEE7sRjJ%252Fimage.png%3Falt%3Dmedia%26token%3D767e772a-f3ea-4fee-b266-0c73398b7a4f&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=b468a586&#x26;sv=1" alt=""><figcaption></figcaption></figure>

## **Identificación de dispositivos conectados a la red**

```bash
nmap -sn 192.168.0.1/24
```

Escaneo de descubrimiento de hosts para identificar sistemas activos en un rango de red sin escanear puertos.

<figure><img src="https://hacking-notes.jord4n.pro/~gitbook/image?url=https%3A%2F%2F3467118603-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FwJ00xYl3QY03Wq54i4By%252Fuploads%252FEFDeAo8BSjtTrsirRHC8%252Fimage.png%3Falt%3Dmedia%26token%3D679e4610-aa84-4b59-80e0-1a08f0c9140b&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=753ed2d0&#x26;sv=1" alt=""><figcaption></figcaption></figure>

## Evasión de firewalls con Nmap

{% hint style="info" %}
Existen varios métodos para eludir un firewall usando la herramienta Nmap. A continuación se muestran algunas de las técnicas más usadas y efectivas para este propósito
{% endhint %}

### Ajustar el tamaño de los paquetes enviados

> La técnica de evasión MTU o "Unidad Máxima de Transmisión" consiste en ajustar el tamaño de los paquetes enviados para evitar su detección por el firewall. Nmap permite configurar manualmente el tamaño máximo del paquete para asegurarse de que los paquetes sean lo suficientemente pequeños como para pasar por el firewall sin ser detectados.

```bash
nmap 192.168.0.1 --mtu 8
```

### Agregar datos de relleno

> Esta técnica consiste en cambiar la longitud de los datos enviados para que sean lo suficientemente cortos como para no ser detectados por el firewall. Nmap permite a los usuarios configurar manualmente la longitud de los datos enviados para evadir la detección.

```bash
nmap -p22 192.168.0.1 --data-length 21
```

### Configurar manualmente el número del puerto de origen

> Esta técnica consiste en configurar manualmente el número del puerto de origen de los paquetes enviados para evitar su detección. Con Nmap, los usuarios pueden especificar un puerto de origen aleatorio o un puerto específico para eludir el firewall.

```bash
nmap -p22 192.168.0.1 --source-port 53
```

### Enviar paquetes falsos a la red

> Esta técnica de evasión permite enviar paquetes suplantados a través de la red para confundir a los sistemas de detección de intrusiones y evitar su detección por el firewall. Con la `-D` opción, Nmap envía paquetes suplantados junto con paquetes reales para ocultar la actividad del usuario.

```bash
nmap -p22 192.168.0.1 -D 192.168.0.100,192.168.0.152
```

### Fragmentación de los paquetes enviados

> Esta técnica consiste en fragmentar los paquetes enviados para que el firewall no pueda identificar el tráfico como un escaneo. La opción `-f` de Nmap permite fragmentar los paquetes y enviarlos en partes para evadir la detección.

```bash
nmap -p22 192.168.0.1 -f
```

### Cambiar la dirección MAC del paquete

> Esta técnica de evasión consiste en modificar la dirección MAC del paquete para evitar su detección por el firewall. Nmap permite configurar manualmente la dirección MAC para disfrazar el tráfico.

```bash
nmap -p22 192.168.0.1 --spoof-mac f4:69:42:f4:a7:d0
```

## Escaneo de vulnerabilidades con scripts de Nmap

```bash
nmap --script "vuln and safe" -p445 10.10.10.10 -oN vulnScan
```

> Este script de Nmap permite analizar las vulnerabilidades de un host específico. Al ejecutar scripts de la categoría **vuln** (vulnerabilidades) y **safe** (análisis seguros), identifica posibles vulnerabilidades de seguridad. Los resultados se guardan en un archivo llamado **vulnScan** para su posterior análisis.

**Enumeración de Linux (sin credenciales)**

```bash
enum4linux -a 10.10.10.10
```

<figure><img src="/files/64e4d7a1778ced807f998072175d6794d04f42e3" alt=""><figcaption></figcaption></figure>

**Enumeración de Linux con credenciales**

```bash
enum4linux -a 10.10.10.10 -u admin -p password1
```

<figure><img src="/files/0f25e21fdc81bccd88566a954188095ce1ebc888" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/es/reconnaissance/nmap.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
