El escaneo de puertos es una técnica fundamental en el pentesting que permite identificar los puertos abiertos en un sistema objetivo. Los puertos abiertos pueden ser puntos de entrada potenciales para ataques, ya que indican servicios que están escuchando y pueden ser explotados si tienen vulnerabilidades.
Conceptos Clave
- Puerto: Un número que identifica un punto final de comunicación en una red. Los puertos van del 0 al 65535.
- TCP y UDP: Dos protocolos principales de transporte en la red. TCP es orientado a conexión, mientras que UDP es sin conexión.
- Puertos Bien Conocidos: Puertos del 0 al 1023, reservados para servicios y aplicaciones bien conocidos (por ejemplo, HTTP en el puerto 80).
- Puertos Registrados: Puertos del 1024 al 49151, utilizados por aplicaciones de usuario y servicios registrados.
- Puertos Dinámicos o Privados: Puertos del 49152 al 65535, utilizados por aplicaciones de usuario de manera temporal.
Tipos de Escaneo de Puertos
- Escaneo TCP SYN: También conocido como "half-open scan", envía un paquete SYN y espera una respuesta SYN-ACK. Si recibe SYN-ACK, el puerto está abierto.
- Escaneo TCP Connect: Completa la conexión TCP enviando SYN, recibiendo SYN-ACK y enviando ACK. Es más fácil de detectar.
- Escaneo UDP: Envía paquetes UDP y espera respuestas ICMP "puerto inalcanzable" para determinar puertos cerrados.
- Escaneo de Puertos FIN, Xmas y Null: Envía paquetes con banderas específicas (FIN, Xmas, Null) para evadir firewalls y sistemas de detección de intrusos.
Herramientas de Escaneo de Puertos
- Nmap: La herramienta más popular para el escaneo de puertos. Ofrece una amplia gama de opciones y técnicas de escaneo.
- Masscan: Una herramienta de escaneo de puertos extremadamente rápida.
- Netcat: Conocido como la "navaja suiza" de las redes, puede ser utilizado para escanear puertos entre otras funciones.
Ejemplo Práctico con Nmap
Instalación de Nmap
Para instalar Nmap en un sistema basado en Debian/Ubuntu, usa el siguiente comando:
Escaneo Básico de Puertos
Para realizar un escaneo básico de puertos en un objetivo, usa el siguiente comando:
Explicación del Comando
nmap
: Invoca la herramienta Nmap.<dirección IP del objetivo>
: La dirección IP del sistema que se desea escanear.
Ejemplo de Salida
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-01 12:00 UTC Nmap scan report for 192.168.1.1 Host is up (0.0010s latency). Not shown: 999 closed ports PORT STATE SERVICE 22/tcp open ssh Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
Análisis de la Salida
- Host is up: El sistema objetivo está activo y responde.
- 22/tcp open ssh: El puerto 22 está abierto y ejecuta el servicio SSH.
Ejercicio Práctico
Ejercicio 1: Escaneo de Puertos TCP
Realiza un escaneo de puertos TCP en tu propia máquina (localhost) utilizando Nmap.
Ejercicio 2: Escaneo de Puertos UDP
Realiza un escaneo de puertos UDP en tu propia máquina.
Soluciones
Ejercicio 1
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-01 12:00 UTC Nmap scan report for localhost (127.0.0.1) Host is up (0.00010s latency). Not shown: 999 closed ports PORT STATE SERVICE 80/tcp open http Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
Ejercicio 2
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-01 12:00 UTC Nmap scan report for localhost (127.0.0.1) Host is up (0.00010s latency). Not shown: 998 closed ports PORT STATE SERVICE 53/udp open domain 123/udp open ntp Nmap done: 1 IP address (1 host up) scanned in 0.20 seconds
Errores Comunes y Consejos
- No ejecutar Nmap con privilegios de superusuario: Algunos tipos de escaneo requieren permisos elevados. Usa
sudo
cuando sea necesario. - Interpretación incorrecta de resultados: Asegúrate de entender la diferencia entre puertos abiertos, cerrados y filtrados.
- No especificar el tipo de escaneo: Usa las opciones
-sS
,-sT
,-sU
, etc., para especificar el tipo de escaneo que deseas realizar.
Conclusión
El escaneo de puertos es una técnica esencial en el pentesting que permite identificar servicios potencialmente vulnerables en un sistema. Con herramientas como Nmap, puedes realizar diferentes tipos de escaneos para obtener una visión detallada de los puertos abiertos y los servicios que se ejecutan en ellos. Practica regularmente para familiarizarte con las diferentes opciones y técnicas de escaneo.
Curso de Pentesting: Técnicas de Pruebas de Penetración
Módulo 1: Introducción al Pentesting
Módulo 2: Reconocimiento y Recolección de Información
Módulo 3: Escaneo y Enumeración
Módulo 4: Explotación de Vulnerabilidades
- Introducción a la Explotación
- Explotación de Vulnerabilidades Web
- Explotación de Vulnerabilidades de Red
- Explotación de Vulnerabilidades de Sistemas