> For the complete documentation index, see [llms.txt](https://4lec4st.gitbook.io/4lec4st/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://4lec4st.gitbook.io/4lec4st/ejpt-notes/metodologias-de-evaluacion/recopilacion-de-informacion/recopilacion-activa-de-informacion/escaneo-de-puertos-con-nmap.md).

# Escaneo de puertos con Nmap

## 🧠 ¿Qué es un escaneo de puertos?

Es la técnica que permite detectar **qué puertos están abiertos**, **qué servicios están corriendo** en ellos, y en muchos casos, **qué versiones exactas están usando**.

Esto nos permite identificar potenciales vectores de ataque: servicios mal configurados, versiones vulnerables, etc.

***

## ⚙️ Sintaxis básica

```bash
nmap [opciones] <IP o dominio>
```

***

## 🛠️ Tipos de escaneo de puertos

| Tipo                            | Opción    | Descripción                                                          |
| ------------------------------- | --------- | -------------------------------------------------------------------- |
| **TCP Connect**                 | `-sT`     | Escaneo TCP completo (3-way handshake). Más fácil de detectar.       |
| **SYN Scan** (Stealth)          | `-sS`     | Envía paquetes SYN, pero no completa el handshake. Rápido y furtivo. |
| **UDP Scan**                    | `-sU`     | Escanea puertos UDP. Más lento, pero necesario.                      |
| **Escaneo combinado**           | `-sS -sU` | Escanea TCP y UDP a la vez.                                          |
| **Ping Scan (descubrir hosts)** | `-sn`     | Solo descubre qué hosts están activos. No escanea puertos.           |

***

## 📌 Ejemplos prácticos

#### 1. Escaneo básico de puertos más comunes

```bash
nmap 10.10.11.100
```

(Escanea los 1.000 puertos TCP más comunes)

***

#### 2. Escaneo de todos los puertos (1-65535)

```bash
nmap -p- 10.10.11.100
```

> 👀 Útil para detectar servicios en puertos no estándar (como una web en el 8080 o un panel oculto en el 31337).

***

#### 3. Escaneo con detección de versión y servicio

```bash
nmap -sV 10.10.11.100
```

* Detecta versiones de servicios (Apache 2.4.49, OpenSSH 8.2, etc.)

***

#### 4. Detección del sistema operativo

```bash
nmap -O 10.10.11.100
```

> Intenta inferir el SO en base a cómo responde a ciertos paquetes.

***

#### 5. Escaneo agresivo

```bash
nmap -A 10.10.11.100
```

* Combina: `-sV`, `-O`, detección de scripts y traceroute.
* ¡Ojo! Es ruidoso y fácilmente detectable en entornos productivos.

***

#### 6. Escaneo de puertos específicos

```bash
nmap -p 21,22,80,443 10.10.11.100
```

* O para rangos: `-p 1-1000`

***

## 🎯 Opciones útiles para pentesting

| Opción           | Función                                                                               |
| ---------------- | ------------------------------------------------------------------------------------- |
| `-Pn`            | Omite el "ping" previo; asume que el host está vivo. Útil cuando ICMP está bloqueado. |
| `-T4`            | Aumenta la velocidad del escaneo (0-5). `T4` es rápido pero aún confiable.            |
| `--open`         | Muestra solo los puertos abiertos                                                     |
| `-oN scan.txt`   | Guarda salida normal                                                                  |
| `-oG scan.gnmap` | Guarda salida tipo grep                                                               |
| `-oX scan.xml`   | Para herramientas que procesan XML                                                    |

***

## 🚀 Flujo típico de escaneo

```bash
# Paso 1: Detectar host
nmap -sn 10.10.11.100

# Paso 2: Descubrir puertos abiertos
nmap -p- -T4 --open 10.10.11.100

# Paso 3: Escaneo detallado de esos puertos
nmap -p 22,80,443 -sC -sV -oN scan.txt 10.10.11.100
```

> `-sC` = Ejecuta scripts NSE por defecto (detección básica de vulnerabilidades, banners, etc.)
