Hola hacketones! Bienvenidos a un nuevo CTF hoy veremos: TryHackMe CompTIA Pentest+ Nmap Basic Port Scans
Escaneos básicos de puertos de Nmap
Habitación Premium
Aprenda en profundidad cómo funcionan el escaneo de conexión TCP de nmap, el escaneo de puerto TCP SYN y el escaneo de puerto UDP.
En la sala anterior, nos centramos en descubrir sistemas en línea. Hasta ahora, hemos cubierto tres pasos de un análisis de Nmap :
- Enumerar objetivos
- Descubre a los anfitriones en vivo
- Búsqueda inversa de DNS

El siguiente paso sería comprobar qué puertos están abiertos y en escucha, y cuáles están cerrados. Por lo tanto, en esta sala y en la siguiente, nos centraremos en el escaneo de puertos y los diferentes tipos de escaneos que utiliza nmap. En esta sala se explica:
- Escaneo del puerto de conexión TCP
- Escaneo del puerto TCP SYN
- Escaneo del puerto UDP
Además, analizamos las diferentes opciones para especificar los puertos, la velocidad de escaneo y el número de sondas paralelas.
Puertos TCP y UDP
Del mismo modo que una dirección IP especifica un host en una red, entre muchos otros, un puerto TCP o UDP se utiliza para identificar un servicio de red que se ejecuta en ese host. Un servidor proporciona el servicio de red y se adhiere a un protocolo de red específico. Algunos ejemplos incluyen proporcionar la hora, responder a consultas DNS y servir páginas web. Un puerto suele estar vinculado a un servicio mediante ese número de puerto específico. Por ejemplo, un servidor HTTP se vincularía al puerto TCP 80 por defecto; además, si el servidor HTTP admite SSL/ TLS , escucharía en el puerto TCP 443. ( Los puertos TCP 80 y 443 son los puertos predeterminados para HTTP y HTTPS; sin embargo, el administrador del servidor web puede elegir otros números de puerto si es necesario). Además, no más de un servicio puede escuchar en un puerto TCP o UDP (en la misma dirección IP).
Corriendo el riesgo de simplificar demasiado, podemos clasificar los puertos en dos estados:
- Un puerto abierto indica que hay algún servicio escuchando en ese puerto.
- El puerto cerrado indica que no hay ningún servicio escuchando en ese puerto.
Sin embargo, en situaciones prácticas, debemos considerar el impacto de los firewalls. Por ejemplo, un puerto podría estar abierto, pero un firewall podría estar bloqueando los paquetes. Por lo tanto, Nmap considera los siguientes seis estados:
- Abierto : indica que un servicio está escuchando en el puerto especificado.
- Cerrado : indica que ningún servicio está escuchando en el puerto especificado, aunque este sea accesible. Por accesible, nos referimos a que es accesible y no está bloqueado por un firewall ni otros dispositivos o programas de seguridad.
- Filtrado : significa que Nmap no puede determinar si el puerto está abierto o cerrado porque no es accesible. Este estado suele deberse a que un firewall impide que Nmap acceda a ese puerto. Es posible que se bloquee el acceso de los paquetes de Nmap al puerto; o bien, se bloquee el acceso de las respuestas al host de Nmap .
- Sin filtrar : significa que Nmap no puede determinar si el puerto está abierto o cerrado, aunque sea accesible. Este estado se produce al usar un escaneo ACK -sA.
- Abierto|Filtrado : Esto significa que Nmap no puede determinar si el puerto está abierto o filtrado.
- Cerrado|Filtrado : Esto significa que Nmap no puede decidir si un puerto está cerrado o filtrado.
Responda las preguntas a continuación
¿Qué servicio utiliza el puerto UDP 53 de forma predeterminada?
DNS
¿Qué servicio utiliza el puerto TCP 22 de forma predeterminada?
SSH
¿Cuántos estados portuarios considera Nmap?
6
¿Qué estado del puerto es el más interesante de descubrir como pentester?
Open
Banderas TCP
Nmap admite diferentes tipos de escaneos de puertos TCP . Para comprender la diferencia entre estos escaneos, es necesario revisar la cabecera TCP . La cabecera TCP corresponde a los primeros 24 bytes de un segmento TCP . La siguiente figura muestra la cabecera TCP según se define en RFC 793. Esta figura parece sofisticada a primera vista; sin embargo, es bastante sencilla de entender. En la primera fila, se encuentran el número de puerto TCP de origen y el número de puerto de destino. Se observa que al número de puerto se le asignan 16 bits (2 bytes). En la segunda y tercera filas, se encuentran el número de secuencia y el número de acuse de recibo. Cada fila tiene asignados 32 bits (4 bytes), con un total de seis filas, lo que suma 24 bytes.

En particular, debemos centrarnos en los indicadores que Nmap puede activar o desactivar. Hemos resaltado los indicadores TCP en rojo. Activar un bit de indicador significa establecer su valor en 1. De izquierda a derecha, los indicadores de encabezado TCP son:
- URG : El indicador de urgencia indica que el puntero de urgencia es significativo. Este indicador indica que los datos entrantes son urgentes y que un segmento TCP con el indicador URG activado se procesa inmediatamente sin tener que esperar a los segmentos TCP enviados previamente .
- ACK : El indicador de acuse de recibo indica que el número de acuse de recibo es significativo. Se utiliza para confirmar la recepción de un segmento TCP .
- PSH : Empujar la bandera solicitando a TCP que pase los datos a la aplicación rápidamente.
- RST : El indicador de reinicio se utiliza para restablecer la conexión. Otro dispositivo, como un firewall , podría enviarlo para interrumpir una conexión TCP . Este indicador también se utiliza cuando se envían datos a un host y no hay servicio en el receptor para responder.
- SYN : El indicador de sincronización se utiliza para iniciar un protocolo de enlace TCP de tres vías y sincronizar los números de secuencia con el otro host. El número de secuencia debe configurarse aleatoriamente durante el establecimiento de la conexión TCP .
- FIN : El remitente no tiene más datos para enviar.
Responda las preguntas a continuación
¿Cuáles son las 3 letras que representan la bandera de reinicio?
RST
¿Qué bandera debe configurarse cuando se inicia una conexión TCP (primer paquete de protocolo de enlace de tres vías TCP)?
SYN
TCP Connect Scan
Arrancar la máquina
El escaneo de conexión TCP funciona completando el protocolo de enlace de tres vías TCP . En el establecimiento de una conexión TCP estándar , el cliente envía un paquete TCP con el indicador SYN activado y el servidor responde con SYN/ACK si el puerto está abierto. Finalmente, el cliente completa el protocolo de enlace de tres vías enviando un ACK.

Nos interesa saber si el puerto TCP está abierto, no si se está estableciendo una conexión TCP . Por lo tanto, la conexión se rompe en cuanto se confirma su estado mediante el envío de un RST/ACK. Puede ejecutar un análisis de conexión TCP usando -sT.

Es importante tener en cuenta que si no es un usuario privilegiado (root o sudoer), un escaneo de conexión TCP es la única opción posible para descubrir puertos TCP abiertos. En la siguiente ventana de captura de paquetes de Wireshark, vemos que Nmap envía paquetes TCP con el indicador SYN activado a varios puertos: 256, 443, 143, etc. Por defecto, Nmap intentará conectarse a los 1000 puertos más comunes. Un puerto TCP cerrado responde a un paquete SYN con RST/ACK para indicar que no está abierto. Este patrón se repetirá para todos los puertos cerrados al intentar iniciar un protocolo de enlace TCP de tres vías con ellos.

Observamos que el puerto 143 está abierto, por lo que respondió con un SYN/ACK, y Nmap completó el protocolo de enlace de tres vías enviando un ACK. La figura a continuación muestra todos los paquetes intercambiados entre nuestro host Nmap y el puerto 143 del sistema de destino. Los primeros tres paquetes representan el protocolo de enlace de tres vías TCP completado. Luego, el cuarto paquete lo desconecta con un paquete RST/ACK.

Para ilustrar el escaneo de conexión TCP-sT ) , el siguiente ejemplo de comando devolvió una lista detallada de los puertos abiertos.

Tenga en cuenta que podemos usar -Fpara habilitar el modo rápido y disminuir la cantidad de puertos escaneados de 1000 a 100 puertos más comunes.
Cabe mencionar que -rtambién se puede añadir la opción de escanear los puertos en orden consecutivo en lugar de aleatorio. Esta opción es útil para comprobar si los puertos se abren de forma consistente, por ejemplo, al arrancar un dispositivo objetivo.
Responda las preguntas a continuación
Inicie la máquina virtual. Abra AttackBox y ejecútelo nmap -sT 10.81.143.41desde la terminal. Se ha instalado un nuevo servicio en esta máquina virtual desde nuestro último análisis, como se muestra en la ventana de terminal anterior. ¿Qué número de puerto se cerró en el análisis anterior, pero ahora está abierto en esta máquina virtual de destino?
110
¿Cuál es la suposición de Nmap sobre el servicio recién instalado?
POP3

Escaneo TCP SYN
Los usuarios sin privilegios solo pueden realizar el escaneo de conexión. Sin embargo, el modo de escaneo predeterminado es el escaneo SYN, que requiere un usuario con privilegios (root o sudoer) para ejecutarlo. El escaneo SYN no necesita completar el protocolo de enlace TCP de tres vías; en su lugar, interrumpe la conexión al recibir una respuesta del servidor. Dado que no se estableció una conexión TCP , esto reduce la probabilidad de que el escaneo se registre. Podemos seleccionar este tipo de escaneo mediante la -sSopción [Nombre del usuario]. La siguiente figura muestra cómo funciona el escaneo SYN TCP sin completar el protocolo de enlace TCP de tres vías.

La siguiente captura de pantalla de Wireshark muestra un escaneo TCP SYN. El comportamiento, con puertos TCP cerrados, es similar al del escaneo de conexión TCP.

Para apreciar mejor la diferencia entre ambos escaneos, observe la siguiente captura de pantalla. En la parte superior de la figura, se observa el -sTtráfico de un escaneo de conexión TCP. Cualquier puerto TCP abierto requiere que Nmap complete el protocolo de enlace de tres vías TCP antes de cerrar la conexión. En la parte inferior, se observa que un escaneo SYN -sSno necesita completar el protocolo de enlace de tres vías TCP; en su lugar, Nmap envía un paquete RST al recibir un paquete SYN/ACK.

El escaneo TCP SYN es el modo de escaneo predeterminado al ejecutar Nmap como usuario con privilegios, como root o con sudo, y es una opción muy fiable. Detectó correctamente los puertos abiertos que encontró anteriormente con el escaneo de conexión TCP, pero no se estableció completamente la conexión TCP con el destino.

Responda las preguntas a continuación
Inicie la máquina virtual. Se ha instalado nuevo software de servidor desde la última vez que la escaneamos. En AttackBox, use la terminal para ejecutar nmap -sS 10.81.143.41. ¿Cuál es el nuevo puerto abierto?
6667
¿Cuál es la suposición de Nmap sobre el nombre del servicio?
IRC
El servicio no levanto nunca, esto es porque deben finalizar la maquina anterior y levantar la nueva.

Escaneo UDP
UDP es un protocolo sin conexión, por lo que no requiere protocolo de enlace para establecer la conexión. No podemos garantizar que un servicio que escucha en un puerto UDP responda a nuestros paquetes. Sin embargo, si se envía un paquete UDP a un puerto cerrado, se devuelve un error ICMP de puerto inaccesible (tipo 3, código 3). Puede seleccionar el escaneo UDP con esta -sUopción; además, puede combinarlo con otro escaneo TCP.
La siguiente figura muestra que si enviamos un paquete UDP a un puerto UDP abierto, no podemos esperar ninguna respuesta. Por lo tanto, enviar un paquete UDP a un puerto abierto no nos dirá nada.

Sin embargo, como se muestra en la figura a continuación, esperamos recibir un paquete ICMP de tipo 3 (destino inalcanzable) y código 3 (puerto inalcanzable). En otras palabras, los puertos UDP que no generan respuesta son los que Nmap declarará abiertos.

En la captura de Wireshark a continuación, podemos ver que cada puerto cerrado generará un paquete ICMP con destino inalcanzable (puerto inalcanzable).

Realizar un escaneo UDP en este servidor Linux resultó útil y, de hecho, descubrimos que el puerto 111 está abierto. Por otro lado, Nmap no puede determinar si el puerto UDP 68 está abierto o filtrado.

Responda las preguntas a continuación
Inicie la máquina virtual. En AttackBox, use la terminal para ejecutar nmap -sU -F -v 10.81.143.41. Se ha instalado un nuevo servicio desde el último escaneo. ¿Cuál es el puerto UDP que está abierto?
53
¿Cuál es el nombre del servicio según Nmap?
Domain
De nuevo si El servicio no levanto nunca, esto es porque deben finalizar la maquina anterior y levantar la nueva.
Ajuste fino del alcance y el rendimiento
Puede especificar los puertos que desea escanear en lugar de los 1000 puertos predeterminados. Especificar los puertos ya es intuitivo. Veamos algunos ejemplos:
- lista de puertos: -p22,80,443escaneará los puertos 22, 80 y 443.
- rango de puertos: -p1-1023escaneará todos los puertos entre 1 y 1023 inclusive, mientras que -p20-25 escaneará los puertos entre 20 y 25 inclusive.
Puede solicitar el escaneo de todos los puertos usando -p-, lo que escaneará los 65535 puertos. Si desea escanear los 100 puertos más comunes, agregue -F. Usar –top-ports 10comprobará los diez puertos más comunes.
Puedes controlar la temporización del escaneo usando -T<0-5>. -T0es el más lento (paranoico), mientras que -T5es el más rápido. Según la página del manual de Nmap, hay seis plantillas:
- paranoico (0)
- astuto (1)
- educado (2)
- normales (3)
- agresivo (4)
- loco (5)
Para evitar alertas de IDS, podría considerar -T0o -T1. Por ejemplo, -T0escanea un puerto a la vez y espera 5 minutos entre cada envío de sonda, lo que permite calcular cuánto tardaría en finalizar el escaneo de un objetivo. Si no especifica ningún tiempo, Nmap usa normal -T3. Tenga en cuenta que -T5 es el más agresivo en términos de velocidad; sin embargo, esto puede afectar la precisión de los resultados del escaneo debido a la mayor probabilidad de pérdida de paquetes. Tenga en cuenta que -T4se usa a menudo durante las CTF y al aprender a escanear objetivos de práctica, mientras que -T1se usa a menudo durante enfrentamientos reales donde el sigilo es más importante.
Como alternativa, puede controlar la velocidad de los paquetes mediante –min-rate <number>y –max-rate <number>. Por ejemplo, –max-rate 10o –max-rate=10 garantiza que su escáner no envíe más de diez paquetes por segundo.
Además, puede controlar la paralelización de sondeos mediante –min-parallelism <numprobes>y –max-parallelism <numprobes>. Nmap sondea los destinos para descubrir qué hosts están activos y qué puertos están abiertos; la paralelización de sondeos especifica el número de sondeos que se pueden ejecutar en paralelo. Por ejemplo, –min-parallelism=512obliga a Nmap a mantener al menos 512 sondeos en paralelo; estos 512 sondeos están relacionados con el descubrimiento de hosts y los puertos abiertos.
Responda las preguntas a continuación
¿Cuál es la opción para escanear todos los puertos TCP entre 5000 y 5500?
-p5000-5500
¿Cómo se puede garantizar que Nmap ejecutará al menos 64 sondas en paralelo?
–min-parallelism=64
¿Qué opción agregarías para que Nmap sea muy lento y paranoico?
-T0
En la práctica: –min-parallelism 64
Resumen
En esta sala se realizaron tres tipos de exploraciones.
| Tipo de escaneo de puerto | Comando de ejemplo |
| Escaneo de conexión TCP | nmap -sT 10.81.143.41 |
| Escaneo TCP SYN | sudo nmap -sS 10.81.143.41 |
| Escaneo UDP | sudo nmap -sU 10.81.143.41 |
Estos tipos de escaneo deberían ayudarlo a comenzar a descubrir servicios TCP y UDP en ejecución en un host de destino.
| Opción | Objetivo |
| -p- | todos los puertos |
| -p1-1023 | escanear los puertos 1 a 1023 |
| -F | Los 100 puertos más comunes |
| -r | escanear puertos en orden consecutivo |
| -T<0-5> | -T0 es el más lento y T5 el más rápido |
| –max-rate 50 | tasa <= 50 paquetes/seg |
| –min-rate 15 | tasa >= 15 paquetes/seg |
| –min-parallelism 100 | al menos 100 sondas en paralelo |

Sigan entrenando, Hacketones, Nos vemos en el próximo laboratorio!!!