martes, 12 de marzo de 2013

Técnicas de evasión de firewalls (I). Lo básico

Cuando se hace un test de penetración lo primero que hemos de pensar es que las cosas no van a ser tan fáciles como cuando realizamos ensayos en nuestro entorno de pruebas.

Firewalls e IDS se erigen entre nosotros y los sistemas objetivos y nos vemos obligados a tratar con ellos. Cuando hablo de evasión lo hago en su doble aceptación:

  • Atravesarlos
  • Evitar que nos identifiquen. 

No hay una receta mágica e infalible, todo depende de lo buena que sea la configuración del firewall (por firewall me refiero indistintamente a los propios firewall como a los IDS).

Cuanto más pobremente configurado esté un firewall más fácil nos será traspasarlos y escanear los sistemas objetivo.

Lo elemental.
Hoy en día hasta el más lego en redes sabe que la no respuesta a un ping no significa nada, pues las mayoría de los firewall (internos o externos) viene configurados para no responder a este mensaje.
El siguiente paso es hacer un scaneo de puertos y utilizamos el three way handshake cuya secuencia es la siguiente.


El equipo cliente envía un paquete SYN al que el equipo servidor responde con un paque SYN+ACK. El cliente responde con ACK y la conexión ya queda establecida.

Hasta el firewall más pobremente configurado está preparado para bloquear todos los paquetes SYN.

Veamos el mismo flujo en un diagrama temporal:




Sabemos que el firewall va a bloquear los paquetes SYN entrantes para evitar conexiones pero... ¿y si no empezamos por un paquete SYN?, ¿Y si directamente mandamos el paquete ACK?.



A menos que el firewall tenga "cierta memoria" y recuerde paquetes anteriores no tiene forma de saber si el paquete que recibe es legítimo o ilegítimo. Por tanto dejará pasar el paquete que llegará a la máquina objetivo.

Tanto si el puerto está abierto o cerrado el equipo receptor responderá con RST.



Si, por el contrario no se recibe respuesta sabremos que hay un elemento intermedio que está bloqueando los paquete y que además este elemento intermedio o bien está configurado de manera muy elemental o bien  se trata de un firewall con pocas capacidad.


Existen otros tipos de scaneos que se basan en el envío de pequetes fuera de secuencia que nos pueden ayudar a obtener más información aunque se suele tratar se situaciones muy particulares que no tienen que ser ciertas para todos los sistemas.

En la web de nmap podemos ver las posibilidades de scaneo disponibles en esta herramienta y una breve descripción de cada una de ellas.

 A parte de lo sencillo del ejemplo lo importante que podemos sacar como conclusión es que la configuración de un firewall va mucho más alla de bloquear los paquetes de solicitud de conexión y la posibilidad que tenemos de, al margen de los ataques ya existentes,  poder confeccionar nuestros propios paquetes y lanzarlos sobre un equipo determinado que tengamos para pruebas e ir viendo las distintas respuestas.

Bueno, pues os dejo practicando, y más adelante seguiremos viendo diversas tecnicas para evadir firewalls. Pero no será en el seguiente post, ya que tengo pendiente la segunda parte del Informe Mandiant. 









No hay comentarios:

Publicar un comentario