¿Cómo distingue nmap los puertos cerrados de los puertos filtrados?

10

Supongamos que estamos haciendo un escaneo de conexión TCP.

un escaneo nmap en google devuelve el siguiente resultado:

SERVICIO DEL ESTADO DEL PUERTO

80 / tcp http abierto

443 / tcp abierto https

Sin embargo, si intento abrir un socket con netcat o telnet en google.com en el puerto 12, por ejemplo, netcat o telnet se cuelga indefinidamente.

Nmap detecta el puerto 12 (y otros puertos que no sean 80 o 443) como cerrados, pero al iniciar una conexión TCP con ellos no se cierra instantáneamente.

¿Cómo puede nmap saber que esos puertos no están filtrados sino cerrados?

Intrepidd
fuente
Por defecto (aunque hay más en ese algoritmo), la salida que obtendrá de nmap es solo los puertos abiertos, no los cerrados o filtrados. nmap -p 12 www.google.com normalmente debería mostrarlo como filtrado.
nos

Respuestas:

14

Con nmap scan, generalmente obtienes 3 estados:

  • Abierto: la computadora remota respondió con un SYN / ACK a su SYN
  • Cerrado: la computadora remota rechazó su intento de conexión con un paquete RST
  • Filtrado: no volvió nada, se agotó el tiempo de espera

Abrir un netcat al puerto 80 y esperar no hará nada. El puerto 80 (generalmente) significa que un servidor http está escuchando en el otro lado y está esperando un comando HTTP (hasta su propio tiempo de espera). Después de conectar en red al puerto 80, intente extraer a GET /para ver si obtiene una respuesta (probablemente un error http).

mulaz
fuente
8

Un puerto cerrado es un puerto que no tiene ningún software que lo escuche, por lo que un intento de hacer una conexión a ese puerto en ese sistema hará que el sistema envíe un paquete TCP RST.

Un puerto filtrado, por otro lado, es típicamente un puerto que está bloqueado por un cortafuegos en la ruta de red, por lo que un intento de hacer una conexión a ese puerto en ese sistema no hará que vuelva nada ... ni siquiera un TCP RST ... por lo que un intento de conexión se quedará allí hasta que TCP agote el tiempo de espera del intento de conexión.

Jeff McAdams
fuente
Esto es cierto pero no responde mi pregunta. Abra un netcat en google.com en el puerto 42, no obtendrá un paquete RST, pero nmap marca este puerto como cerrado.
Intrepidd
Mi nmap a google.com, incluido el puerto 42, lo devuelve como filtrado, no cerrado.
Jeff McAdams
Lo malo es que pensé que todos los puertos no mostrados estaban cerrados, pero depende del resultado global.
Intrepidd