Network Scanning - La guรญa definitiva para descubrir hosts, puertos y servicios de red

ejpt

Luego del reconocimiento inicial, el siguiente paso es mapear correctamente la red objetivo para entender qué sistemas tenemos delante y qué superficie exponen.

A este proceso se le conoce como Network Scanning o escaneo de red, una fase fundamental dentro de una evaluación de seguridad.

En esta guía aprenderás a:

  • descubrir hosts activos;
  • identificar puertos TCP y UDP abiertos;
  • realizar escaneos completos de puertos;
  • identificar servicios y versiones;
  • estimar el sistema operativo del objetivo.

Todo siguiendo una metodología aplicable tanto a laboratorios tipo eJPT como a pruebas de penetración reales.

Identificar nuestra posición en la red

Antes de comenzar a escanear otros sistemas, necesitamos entender desde qué dirección IP y red estamos trabajando.

Primero revisamos las interfaces disponibles:

ip addr

Este comando nos permite identificar las interfaces de red y las direcciones IP asignadas a nuestra máquina.

Resultado del comando ip addr en Kali Linux mostrando la interfaz 10.60.10.10

Resultado relevante:

Kali: 10.60.10.10

Después revisamos las rutas disponibles:

ip route

Esto nos permite determinar qué redes son directamente accesibles desde nuestra máquina.

Resultado del comando ip route mostrando acceso a la red 10.60.10.0/24

Resultado relevante:

Kali: 10.60.10.10
Red:  10.60.10.0/24

Con esto confirmamos nuestra dirección de partida y la red a la cual tenemos acceso.

Ahora sí podemos comenzar el descubrimiento de máquinas en la red.

Descubrimiento de hosts

El primer objetivo es identificar qué sistemas están activos dentro de la red.

Comenzamos utilizando Nmap:

nmap -sn 10.60.10.0/24

La opción -sn realiza Host Discovery sin ejecutar un escaneo de puertos.

Dependiendo del contexto de red, Nmap puede utilizar técnicas como ARP, ICMP y sondas TCP para determinar qué sistemas están activos.

Resultado de Nmap Host Discovery sobre la red 10.60.10.0/24

Resultado relevante:

10.60.10.21
10.60.10.22

Nuestra propia máquina utiliza 10.60.10.10, por lo que no la consideramos como objetivo.

Nuestro mapa inicial comienza a tomar forma:

Kali
10.60.10.10

Objetivos descubiertos
โ”œโ”€โ”€ 10.60.10.21
โ””โ”€โ”€ 10.60.10.22

¿Qué ocurre si un host no responde?

Durante el descubrimiento podrían existir sistemas que queden sin identificar si un firewall o alguna configuración bloquea las sondas utilizadas por Nmap.

En estos casos podemos utilizar:

nmap -Pn 10.60.10.0/24

La opción -Pn indica a Nmap que omita el Host Discovery y trate los objetivos como activos, intentando escanear sus puertos directamente.

Esto puede hacer que el proceso tarde considerablemente más.

Escaneo Nmap con la opción Pn sobre la red 10.60.10.0/24

Resultado relevante:

No se identificaron hosts adicionales en este laboratorio.

En este caso no logramos identificar sistemas adicionales, pero en una red real podrían existir más hosts activos que respondan de forma diferente a las técnicas de descubrimiento.

Con los hosts de la red ya identificados, el siguiente paso es analizar su superficie de puertos.

A partir de aquí comenzaremos a escanear los puertos abiertos, primero TCP y después UDP, para determinar qué servicios podrían estar expuestos en cada host.

Escaneo de puertos TCP

Una vez identificados los hosts activos, comenzamos con el escaneo de puertos TCP sobre:

10.60.10.21

SYN Scan

Primero realizamos un SYN Scan utilizando la opción -sS:

sudo nmap -sS 10.60.10.21

Este tipo de escaneo envía paquetes TCP SYN para determinar el estado de los puertos.

Si no especificamos un rango, Nmap analiza por defecto los 1.000 puertos TCP más comunes.

Resultado de un SYN Scan con Nmap sobre 10.60.10.21

Este primer escaneo nos permite obtener rápidamente una vista inicial de la superficie TCP del objetivo.

Escaneo completo de puertos TCP

El escaneo anterior no cubre necesariamente todos los puertos.

Para analizar todo el rango TCP utilizamos:

sudo nmap -sS -p- 10.60.10.21

La opción -p- indica a Nmap que analice todos los puertos TCP desde el 1 hasta el 65535.

Escaneo completo de los 65535 puertos TCP con Nmap

Resultado relevante:

22/tcp
53/tcp
80/tcp
139/tcp
445/tcp
22000/tcp

Esto nos permite identificar servicios que podrían estar ejecutándose en puertos menos comunes.

Con esto ya tenemos un mapeo completo de los puertos TCP abiertos.

El siguiente paso será determinar qué servicios se ejecutan detrás de cada uno de ellos.

Identificación de servicios y versiones TCP

Saber que un puerto está abierto no es suficiente.

Necesitamos determinar qué servicio está respondiendo detrás de cada puerto y, cuando sea posible, qué versión utiliza.

Como ya conocemos los puertos abiertos, no necesitamos volver a escanear todo el rango.

Ejecutamos:

nmap -sV -p22,53,80,139,445,22000 10.60.10.21

La opción -sV activa la detección de servicios y versiones.

Nmap envía diferentes sondas para intentar reconocer el software que está respondiendo.

Detección de servicios y versiones TCP con Nmap

Resultado relevante:

80/tcp → Apache 2.4.29

Una versión concreta como esta podría estar asociada a vulnerabilidades conocidas, pero esto no se concluye durante la fase de Network Scanning.

En este punto únicamente registramos:

Puerto → Servicio → Versión

La posible vulnerabilidad del software se validará posteriormente durante la fase de Análisis de Vulnerabilidades.

Escaneo de puertos UDP

Una vez completado el escaneo TCP, continuamos con UDP para identificar servicios expuestos mediante este protocolo.

Ejecutamos:

sudo nmap -sU 10.60.10.21

La opción -sU realiza un escaneo UDP.

Si no especificamos puertos, Nmap analiza los 1.000 puertos UDP más comunes.

Resultado del escaneo de puertos UDP con Nmap

Resultado relevante:

53/udp   → DNS
137/udp  → NetBIOS Name Service

En este caso identificamos dos puertos UDP abiertos.

Sin embargo, todavía no hemos realizado un escaneo completo de UDP.

Escaneo completo de puertos UDP

En una evaluación exhaustiva también debemos considerar los 65.535 puertos UDP.

El comando sería:

sudo nmap -sU -p- 10.60.10.21

Los escaneos UDP completos pueden ser extremadamente lentos debido al funcionamiento del protocolo y a la ausencia frecuente de respuestas directas.

Esto puede obligar a Nmap a esperar timeouts y retransmitir determinadas sondas.

Escaneo completo de los 65535 puertos UDP con Nmap

En este laboratorio no esperaremos a que el escaneo termine, pero este es el comando que utilizaríamos para cubrir todo el rango UDP.

Identificación de servicios y versiones UDP

Una vez identificados los puertos UDP abiertos, utilizamos -sV únicamente sobre esos puertos para determinar qué servicios están respondiendo y, cuando sea posible, qué versión utilizan.

Ejecutamos:

sudo nmap -sU -sV -p53,137 10.60.10.21

Estamos combinando:

-sU → UDP Scan
-sV → Service/Version Detection

Detección de servicios y versiones UDP con Nmap

Resultado relevante:

53/udp   → DNS
137/udp  → NetBIOS Name Service

Nmap intentará obtener información adicional sobre el software que implementa cada servicio cuando sea posible.

De esta manera completamos el mapeo básico de la superficie UDP del objetivo.

Detección del sistema operativo

Para cerrar la fase de Network Scanning podemos intentar identificar el sistema operativo del objetivo.

Ejecutamos:

sudo nmap -O 10.60.10.21

La opción -O activa el OS Fingerprinting de Nmap.

Nmap analiza características de las respuestas de la pila TCP/IP y las compara con sistemas operativos conocidos.

Detección del sistema operativo con Nmap OS Fingerprinting

Resultado relevante:

Sistema operativo estimado: Linux
Kernel estimado: 4.X–5.X

Es importante entender que esta detección es probabilística.

Nmap puede mostrar varias posibles coincidencias, por lo que debemos tratar el resultado como una estimación y no como una identificación absoluta.

¿Qué hemos descubierto?

Al finalizar esta fase ya hemos construido un mapa inicial del objetivo:

Red
โ””โ”€โ”€ 10.60.10.0/24

Hosts
โ”œโ”€โ”€ 10.60.10.21
โ””โ”€โ”€ 10.60.10.22

10.60.10.21
โ”œโ”€โ”€ Puertos TCP
โ”œโ”€โ”€ Puertos UDP
โ”œโ”€โ”€ Servicios
โ”œโ”€โ”€ Versiones
โ””โ”€โ”€ Sistema operativo estimado

Durante esta fase hemos aprendido a identificar:

  • hosts activos;
  • puertos TCP abiertos;
  • puertos UDP abiertos;
  • servicios expuestos;
  • versiones de software;
  • sistema operativo estimado.

Con esto completamos el mapeo básico de la superficie de red.

A partir de aquí, la siguiente etapa será profundizar en cada uno de los servicios identificados mediante la fase de Enumeración.

¿Quieres prepararte para aprobar el examen eJPT?

Únete a eJPT Ready y prepárate para aprobar el examen dominando la metodología, técnicas y herramientas clave que necesitas para enfrentarte al examen eJPT.

Accede aquí a eJPT Ready:

https://academy.seguridadcero.com.pe/ejpt-ready

Nos vemos pronto,

Fernando Conislla | eJPT | eMAPT | eWPT | eCPPT