Parte: 0 — Fundamentos y prerrequisitos · Fuente: RFC 791, 793 y W. R. Stevens, TCP/IP Illustrated ⏱️ Duración estimada: 110 min · Nivel: Fundamentos
Conocer al detalle los protocolos que mueven Internet: cómo se estructuran sus cabeceras, cómo TCP establece y cierra conexiones, en qué se diferencia UDP y para qué sirve ICMP. Este conocimiento es la base del escaneo de puertos, la detección de intrusiones y muchos ataques de red.
Al finalizar, el alumno podrá:
| # | Tema | Por qué importa |
|---|---|---|
| 1 | Cabecera IP | TTL, protocolo, fragmentación |
| 2 | Three-way handshake | SYN, SYN-ACK, ACK |
| 3 | Flags TCP | SYN, ACK, FIN, RST, PSH, URG |
| 4 | Estados TCP | LISTEN, ESTABLISHED, TIME_WAIT... |
| 5 | Ventana y secuencia | Fiabilidad y control de flujo |
| 6 | UDP | Sin conexión, base de DNS/DHCP |
| 7 | ICMP | Diagnóstico y su abuso |
| 8 | Escaneo de puertos | SYN, connect, FIN, UDP scan |
traceroute y para inferir el SO.connect scan y del SYN flood.ping y traceroute; también usado para túneles y exfiltración.Usa Wireshark, tcpdump, y nmap en tu laboratorio aislado. Para generar tráfico controlado, curl, ping, nc. Conviene tener a la vista los diagramas de cabecera de los RFC 791 (IP) y 793 (TCP).
bash
sudo tcpdump -i eth0 -n 'tcp and host 10.10.10.6' -w tcp.pcap &
curl http://10.10.10.6/ ; sudo pkill tcpdump
tcp.flags.syn == 1. Identifica SYN, SYN-ACK y ACK y anota números de secuencia y puertos.bash
sudo nmap -sS -p 1-1000 10.10.10.6
Captura en paralelo y observa que a puertos cerrados llega RST y a abiertos, SYN-ACK. 5. UDP e ICMP. Lanza un ping y un escaneo UDP:
bash
ping -c 3 10.10.10.6
sudo nmap -sU -p 53,67,123 10.10.10.6
Observa las respuestas ICMP "port unreachable" para puertos UDP cerrados. 6. TTL fingerprinting. Compara el TTL de respuestas de un Linux (~64) y un Windows (~128) en tu laboratorio.
⚠️ Nota ética: los escaneos se ejecutan solo contra tus VMs de laboratorio o con autorización explícita.
nmapcontra terceros sin permiso puede constituir delito.
-sS (SYN) y -sT (connect) en nmap y sus implicaciones de sigilo.Realiza y documenta un escaneo comparativo contra tu VM víctima: un SYN scan y un connect scan sobre el mismo rango, capturando ambos en Wireshark. Entrega una tabla que muestre, para 3 puertos (uno abierto, uno cerrado, uno filtrado), qué paquetes se intercambiaron en cada tipo de escaneo.
Criterio de aceptación: la tabla refleja correctamente las respuestas (SYN-ACK/RST/sin respuesta) y explica por qué el SYN scan no completa el handshake mientras el connect sí. Las capturas adjuntas respaldan cada fila.
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
| Todos los puertos aparecen "filtered" | Un firewall descarta los paquetes. Ajusta el escenario o usa -Pn/timing distinto. |
| nmap SYN scan requiere root | El SYN scan usa paquetes crudos. Ejecuta con sudo. |
| UDP scan tarda muchísimo | Es normal: sin respuesta, nmap espera y reintenta. Limita puertos. |
| Confundir puerto cerrado con filtrado | Cerrado responde (RST/ICMP); filtrado no responde. Distínguelos por la respuesta. |
| TTL no coincide con el esperado | Hubo saltos intermedios (routers). Cuenta relativo al valor inicial típico. |
❓ ¿Por qué el SYN scan es "sigiloso"? Porque no completa el handshake (envía RST tras el SYN-ACK), por lo que muchas apps no registran la conexión. Aun así, los IDS modernos lo detectan.
❓ ¿UDP es "inseguro" por no tener handshake? No es inseguro por sí mismo; simplemente no garantiza entrega ni orden. Protocolos sobre UDP (DNS, QUIC) añaden sus propias garantías o cifrado.
❓ ¿Se puede bloquear todo ICMP sin consecuencias? No conviene: rompes diagnóstico (ping, PMTUD). Filtra selectivamente en lugar de bloquear ICMP por completo.
❓ ¿Los números de secuencia siguen siendo predecibles? Los SO modernos los aleatorizan (ISN), mitigando el spoofing clásico. Es un buen ejemplo de cómo una debilidad de diseño se corrige con el tiempo.
Clase 010 — Redes TCP/IP: modelo OSI, encapsulación y capas