Escaneo Estándar SYN de Nmap contra el Firewall de Windows

  • Posted on: 2 March 2020
  • By: ReYDeS

Una característica útil del protocolo TCP es, por RFC 793 se requiere los sistemas envíen respuestas negativas para peticiones de conexión inesperadas, en la forma de un paquete TCP RST (reset) “reinicio”. El paquete RST permite los puertos cerrados sean fácilmente reconocidos por Nmap. Los dispositivos de filtrado como firewalls de otro lado, tienden a descartar paquetes destinados para los puertos deshabilitados. En algunos casos en su lugar, envían mensajes de error ICMP (usualmente “puerto inalcanzable”). Debido a los paquetes son descartados, y los errores ICMP son fácilmente distinguibles de paquetes RST, Nmap puede detectar puertos TCP filtrados, de aquellos abiertos o cerrados, y lo hace automáticamente.

Para el siguiente ejemplo se utiliza una máquina con Windows Server 2012 R2. Únicamente se utiliza por defecto el firewall de Windows.

# nmap -n -Pn -sS -v 192.168.0. 92

Una de las líneas más importantes es “Not shown: 995 filtered ports”, o traducido al idioma español; “No mostrado: 995 puertos filtrados”. En otras palabras, este host tiene una política del firewall de negación por defecto. Únicamente aquellos puertos, los cuales el administrador ha explícitamente permitido, son alcanzables, mientras la acción por defecto es negarlos (filtrarlos). Para este caso los cinco puertos mostrados están en estado “open” o abierto, los demás puertos son inalcanzables por este escaneo por defecto (filtrados).

Firewalls firtuvos devolviendo RST

Si bien la distinción de Nmap entre puertos TCP cerrados (los cuales retornan un paquete RST), y puertos filtrados (devolviendo nada o errores ICMP), es usualmente preciso, muchos dispositivos firewall son ahora capaces de falsificar paquetes RST, como si vinieran desde el host destino, alegando el puerto está cerrado. Un ejemplo de esta capacidad es el sistema iptables de Linux, el cual ofrece métodos para rechazar paquetes indeseables. Esta funcionalidad es “--reject-with type”.

El “tipo” puede ser “icmp-net-unreachable”, “icmp-host-unreachable”, “icmp-port-unreachable”, “icmp-proto-unreachable”, “icmp-net-prohibited” o “icmp-host-prohibited”, lo cual retorna un mensaje de error ICMP apropiado (por defecto puerto inalcanzable). La opción “tcp-reset” puede ser utilizada sobre reglas las cuales únicamente coinciden al protocolo TCP: esto causa un paquete TCP RST sea envía de vuelta. Siendo principalmente útil para bloquear pruebas “ident” (113/ftp), lo cual frecuentemente ocurre cuando se envía correo hacia servidores de correo defectuosos.

La falsificación de paquetes RST por firewalls e IDS/IPS no es particularmente común fuera del puerto 113, pues puede ser confuso para operadores legítimos de red, y también permite los escáneres pasen al siguiente puerto de inmediato, sin esperar el tiempo máximo causado por los paquetes descargados. Sin embargo esto sucede. Dicha falsificación puede usualmente ser detectado con un cuidadoso análisis del paquete RST en comparación con otros paquetes enviados por la máquina. Nmap tiene técnicas para esto.

Fuentes:

https://nmap.org/book/determining-firewall-rules.html
https://nmap.org/book/man-bypass-firewalls-ids.html
http://www.rfc-editor.org/rfc/rfc793.txt

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero


Webinar Informática Forense