> 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

Notas de reconocimiento con Nmap para escaneo de puertos, detección de servicios, scripts NSE, descubrimiento de hosts, evasión de cortafuegos y escaneo de vulnerabilidades.

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 escaneo de red que permiten a los usuarios descubrir dispositivos conectados a una red, identificar servicios en ejecución en esos dispositivos y obtener información detallada sobre la configuración de la red.
{% endhint %}

#### Referencia de comandos y opciones comunes:

## Referencia de opciones de Nmap

### Objetivo y descubrimiento de hosts

| Opción               | Descripción                                                                    |
| -------------------- | ------------------------------------------------------------------------------ |
| `10.10.10.0/24`      | Rango de red objetivo.                                                         |
| `-sL`                | Escaneo de lista. Enumera los objetivos sin escanearlos.                       |
| `-sn`                | Desactiva el escaneo de puertos y realiza solo el descubrimiento de hosts.     |
| `-Pn`                | Trata a los hosts como en línea y omite las sondas de descubrimiento de hosts. |
| `-n`                 | Desactiva la resolución DNS.                                                   |
| `-PE`                | Realiza el descubrimiento de hosts mediante solicitudes ICMP Echo.             |
| `--disable-arp-ping` | Desactiva 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 los 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 más comunes.                                          |
| `-sS`               | Realiza un escaneo TCP SYN.                                                                   |
| `-sT`               | Realiza un escaneo TCP connect, útil cuando no se dispone de privilegios para un escaneo SYN. |
| `-sA`               | Realiza un escaneo TCP ACK, útil para el mapeo de reglas de firewall.                         |
| `-sU`               | Realiza un escaneo UDP.                                                                       |
| `-sV`               | Detecta versiones de servicios en 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 la detección del sistema operativo.                                                     |
| `-A`                                 | Activa la detección de SO, la detección de versiones, los scripts NSE por defecto y traceroute. |
| `--packet-trace`                     | Muestra los paquetes enviados y recibidos.                                                      |
| `--reason`                           | Muestra la razón por la que Nmap informó un estado de puerto o de host.                         |
| `-D RND:5`                           | Usa cinco señuelos aleatorios para evadir cortafuegos/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` | Guarda los resultados en todos los formatos de salida disponibles usando `filename` como nombre base. |
| `-oN filename` | Guarda los resultados en formato normal.                                                              |
| `-oG filename` | Guarda los resultados en formato apto para grep.                                                      |
| `-oX filename` | Guarda 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 RTT inicial.                               |
| `--max-rtt-timeout 100ms`    | Establece el tiempo de espera RTT máximo.                                |
| `--min-rate 300`             | Envía paquetes a una velocidad no inferior a la especificada.            |
| `-T <0-5>`                   | Establece la plantilla de temporización, de `0` paranoico a `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 completo de todos los puertos que omite DNS y el descubrimiento de hosts, muestra el progreso detallado y guarda 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 cortafuegos con Nmap

{% hint style="info" %}
Existen varios métodos para eludir un cortafuegos utilizando 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 "Maximum Transmission Unit" consiste en ajustar el tamaño de los paquetes enviados para evitar su detección por el cortafuegos. Nmap permite configurar manualmente el tamaño máximo de los paquetes para garantizar que sean lo suficientemente pequeños como para pasar por el cortafuegos sin ser detectados.

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

### Añadir datos de relleno

> Esta técnica consiste en cambiar la longitud de los datos enviados para que sea lo suficientemente corta como para no ser detectada por el cortafuegos. 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
```

### Establecer manualmente el número de puerto de origen

> Esta técnica consiste en configurar manualmente el número de 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 cortafuegos.

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

### Envío de paquetes falsos a la red

> Esta técnica de evasión permite enviar paquetes falsificados a través de la red con el fin de confundir a los sistemas de detección de intrusiones y evitar la detección por el cortafuegos. Con la `-D` opción, Nmap envía paquetes falsificados 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 paquetes enviados

> Esta técnica consiste en fragmentar los paquetes enviados para que el cortafuegos no pueda identificar el tráfico como un escaneo. La opción de Nmap `-f` 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 cortafuegos. 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 **vuln** (vulnerabilidades) y **safe** (análisis seguros), identifica posibles vulnerabilidades de seguridad. Los resultados se guardan en un archivo llamado **vulnScan** para su análisis posterior.

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

```bash
enum4linux -a 10.10.10.10
```

<figure><img src="https://754079710-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-fce72ab9ffa72b4149e4e03a00e2fef1cef79467%2Fimage%20(600).png?alt=media" alt=""><figcaption></figcaption></figure>

**Enumeración de Linux con credenciales**

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

<figure><img src="https://754079710-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-729956858769d747348cf1bc4f10825b000854d4%2Fimage%20(601).png?alt=media" 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
