Escenario:
Fg1. Escenario de red |
- 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
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 |
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 |
El ataque estará compuesto de dos elementos:
- 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
- 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:
- 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.
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:
interesante, buen blog, lo visitaré mas seguido
ResponderEliminarGracias, intentaré actualizarlo más a menudo
ResponderEliminarMuy interesante....
ResponderEliminarPero 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