Mostrando entradas con la etiqueta mitm. Mostrar todas las entradas
Mostrando entradas con la etiqueta mitm. Mostrar todas las entradas

domingo, 5 de abril de 2015

MITM & SSL Strip con Meterpreter en remoto a través de VPN

 Hoy proponemos utilizar uno de los módulos de Borja Merino, que ha realizado para la comunidad Metasploit, y el cual nos permite montar una VPN entre la máquina atacante y víctima con el fin de que el tráfico de la máquina víctima pase por la del atacante consiguiendo un MITM. La idea es que la máquina del atacante pueda estar en otra red, en cualquier punto de Internet, y automáticamente el tráfico de la víctima, cuando quiera ir a Internet se envíe por el túnel VPN a nuestra máquina (atacante). Una vez el tráfico llegue a nuestra máquina la reenviaremos a Internet, pero de esta forma se puede visualizar el tráfico que se envía. Además, se puede utilizar la técnica SSL Strip con el fin de poder cambiar el protocolo HTTPS de la víctima por HTTP, y conseguir credenciales de Gmail, Outlook, etcétera. 
¿Qué necesitamos? Lo primero es instalar el servicio pptpd en nuestra máquina Kali. Para ello ejecutamos la sentencia apt-get install pptpd. Una vez instalado el servicio debemos tener en cuenta que el tráfico de la víctima pasará por nosotros, a través de un túnel VPN, por lo que necesitamos habilitar ip forwarding, como puede verse en la imagen. En el archivo pptpd.conf debemos habilitar el direccionamiento IP que se otorgará a los clientes, e indicar que dirección IP tendrá el host que hace VPN server, en este caso nosotros. 
Figura 1: Instalación y configuración del servicio
Además, debemos tener en cuenta que hay que configurar el usuario y la contraseña con la que se configura el servicio. Cuando el cliente quiera conectarse a la VPN deberá introducir el usuario pablo y la contraseña metasploit. Ahora que tenemos preparado el servicio, debemos configurar unas reglas en iptables para que todo quede configurado.

Se necesitan 3 reglas, las cuales tenemos en un fichero denominado reglas. La primera enmascara todo lo que sale por la interfaz de red "normal" de la máquina del atacante, en otras palabras realiza el cambio de dirección IP. La segunda regla hace un forward entre interfaces, todo lo que llega por la interfaz ppp0, la que conecta la VPN entre víctima y atacante, se reenvía a la interfaz de salida eth0 de la máquina del atacante. La tercera regla es la operación inversa de la segunda, todo lo llega desde Internet, con destino a la máquina víctima, se reenvía por ppp0. Básicamente esto es lo que está ocurriendo en iptables.
Figura 2: Configuración de reglas en iptables
El escenario es de post-explotación, es decir, necesitamos disponer de una sesión en una máquina remota para poder ejecutar esta técnica. Por esta razón, y como se puede ver en la imagen, necesitamos saber qué identificador de sesión disponemos en la máquina remota. En este caso, la sesión tiene id 1
Figura 3: Sesión de Meterpreter en una máquina remota
Una vez disponemos de la sesión en la máquina remota debemos ejecutar un background para no perder la sesión abierta. Con el comando use cargamos el módulo post/windows/manage/pptp_tunnel disponible en Metasploit. Si ejecutamos el comando show options podemos visualizar las diferentes opciones básicas que dispone el módulo. En este caso necesitamos configurar el usuario y contraseña y la dirección IP perteneciente a VPNHOST, que será nuestra dirección IP. 
Una vez configurado debemos ejecutar el comando run, y podemos visualizar como se establece la conexión desde la máquina vulnerada al servidor de VPN (nosotros). En este instante el MITM lo tenemos configurado, y el tráfico de la máquina remota pasará por nosotros. 
Figura 4: Configuración y ejecución del módulo post/windows/manage/pptp_tunnel
Si analizamos la máquina remota y las rutas configuradas (métricas) podemos observar que gracias a la ejecución del módulo se han añadido nuevas rutas con métricas bajas que salen por la interfaz de red que hemos configurado. Si nos fijamos en la interfaz 192.168.0.234, que corresponde con la interfaz de red de la VPN, sería la interfaz que la máquina vulnerada utilizará para salir a Internet. Gracias a esto se ha logrado el MITM en remoto. 
Figura 5: Rutas en la máquina remota
Si abrimos Wireshark en la máquina Kali (atacante) y configuramos el filtro HTTP, podemos ver que el tráfico de navegación de la máquina remota pasa por nosotros. En la captura que se muestra en la imagen podemos ver como el origen es la dirección IP 192.168.0.234 (máquina Windows remota) con destino Internet, en este caso el sitio web El Otro Lado, y se puede visualizar el usuario y contraseña introducido por la víctima.
Figura 6: Tráfico HTTP a través del MITM con la VPN
Como podemos ver, podríamos visualizar el tráfico HTTP, pero ¿Qué ocurre con el tráfico HTTPS? Fácilmente podemos acoplar la técnica SSL Strip en este caso, para ello debemos añadir una regla a iptables que es la siguiente iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 10000. El puerto 10000 puede ser sustituido por otro, en función de cómo configuremos el script de sslstrip. Ahora ejecutamos el comando sslstrip -w [fichero]
Figura 7: SSL Strip satisfactorio 

Tal y como puede visualizarse en la imagen, encontramos un usuario y contraseña en la máquina remota. El dominio es outlook, el cual en condiciones normales seríamos redirigidos a HTTPS, pero con esta técnica mantiene a la víctima en un contexto HTTP. Si la víctima no se da cuenta de este hecho, será víctima de un robo de identidad. Para aprender más sobre Metasploit y sus secretos os recomiendo el libro de Metasploit para Pentesters.

Fuente: http://www.flu-project.com/2014/12/mitm-ssl-strip-con-meterpreter-en.html

lunes, 9 de marzo de 2015

Android, iOS & OS X vulnerables a ataques de Man in the Middle con ICMP Redirect: Double Direct. ¡Cuidado!

Dentro de la especificación del protocolo ICMP - y de ICMPv6 - existe la posibilidad de enviar desde los routers cambios para tablas de enrutamiento a los clientes mediante un paquete llamado ICMP Redirect. De esta forma, la puerta de enlace de un determinado equipo de la red de que para ir a un destinatario concreto es más rápido ir por otro de los routers de la red.

Figura 1: Android, iOS & OS X vulnerables a ataques de Man in the Middle con ICMP Redirect
Esto es conocido desde hace mucho tiempo, y por supuesto un usuario de la red malicioso podría utilizarlo para hacer un ataque de man in the middle. Hace un par de semanas se ha liberado una herramienta que lo hace fácilmente desde plataformas de pentesting con Kali Linux
Android, iOS & OS X Vulnerables
Para que el ataque funcione, el cliente debe ser vulnerable a este ataque permitiendo aceptar los mensajes de ICMP redirect. Para comprobar si tu Android es vulnerable a este ataque, necesitas tener una conexión de terminal y verificarlo con el comando siguiente:
# cat /proc/sys/net/ipv4/conf/all/accept_redirects
Si te ha salido un valor de 1, entonces es que eres vulnerable al ataque y cualquiera te puede hacer un ataque de man in the middle con un paquete de ICMP Redirect.
Figura 2: Un Android Samsung Galaxy S4 aceptando paquetes ICMP Redirects
Por desgracia, a pesar de que la mayoría de los sistemas GNU/Linux y Windows no los aceptan desde hace tiempo por seguridad, la mayoría de las versiones de los sistemas operativos iOS, OS X y Android  los aceptan, por lo que los hacen carne de cañón en redes compartidas o redes WiFi, algo que es altamente peligroso.
En los sistemas OS X, tanto OS X 10.10 Yosemite como OS X 10.9 Mountain Lion son vulnerables, y lo puedes probar en tu propio equipo con el siguiente comando de consola:
sysctl net.inet.icmp.drop_redirect | grep ": 0" && echo "DoubleDirect: VULNERABLE" ||echo "DoubleDirect: SAFE" 
Como se puede ver en la siguiente imagen, en uno de mis equipos con OS X se puede comprobar cómo es vulnerable a este ataque al aceptar ICMP Redirects.
Figura 3: Por defecto OS X acepta paquetes ICMP Redirects
Para cambiarlo es necesario modificar el valor de net.inet.icmp.drop_redirect como Administrador para que se tiren todos los intentos de cambios de rutas.
Figura 4: OS X configurado para no aceptar paquetes ICMP Redirect
La Prueba de Concepto de ICMP Redirect
Si la víctima es vulnerable, con esta herramienta que han publicado en Zimperiun para enviar ICMP Redirects con las direcciones IP que se quiera influir se puede hacer un man in the middle a cualquier dirección IP de destino. Por supuesto, lo más interesante es cambiar el redirect de los servidores DNS de Internet que se tenga configurados la víctima, para poder manipular el resto de conexiones a dominios.
Figura 5: Prueba de Concepto de DoubleDirect la herramienta para hacer mitm con ICMP Redirect
Este ataque también funciona en IPv6, por lo que, si no estás haciendo uso de este protocolo, entonces aquí tienes cómo desactivar IPv6 en Windows y cómo desactivar IPv6 en OS X. Así te quitas de todos los ataques que implementa Evil Foca, que a día de hoy no implementa el ICMP Redirect, pero seguro que en breve lo hace. Tienes más información de este tipo de ataques en el libro de Ataques de red en IPv4/IPv6
 
Fuente: http://www.elladodelmal.com/2014/12/android-ios-os-x-vulnerables-ataques-de.html

miércoles, 4 de marzo de 2015

MITM & SSL Strip con Meterpreter en remoto a través de VPN

Hoy proponemos utilizar uno de los módulos de Borja Merino, que ha realizado para la comunidad Metasploit, y el cual nos permite montar una VPN entre la máquina atacante y víctima con el fin de que el tráfico de la máquina víctima pase por la del atacante consiguiendo un MITM. La idea es que la máquina del atacante pueda estar en otra red, en cualquier punto de Internet, y automáticamente el tráfico de la víctima, cuando quiera ir a Internet se envíe por el túnel VPN a nuestra máquina (atacante). Una vez el tráfico llegue a nuestra máquina la reenviaremos a Internet, pero de esta forma se puede visualizar el tráfico que se envía. Además, se puede utilizar la técnica SSL Strip con el fin de poder cambiar el protocolo HTTPS de la víctima por HTTP, y conseguir credenciales de Gmail, Outlook, etcétera. 
¿Qué necesitamos? Lo primero es instalar el servicio pptpd en nuestra máquina Kali. Para ello ejecutamos la sentencia apt-get install pptpd. Una vez instalado el servicio debemos tener en cuenta que el tráfico de la víctima pasará por nosotros, a través de un túnel VPN, por lo que necesitamos habilitar ip forwarding, como puede verse en la imagen. En el archivo pptpd.conf debemos habilitar el direccionamiento IP que se otorgará a los clientes, e indicar que dirección IP tendrá el host que hace VPN server, en este caso nosotros. 
Figura 1: Instalación y configuración del servicio
Además, debemos tener en cuenta que hay que configurar el usuario y la contraseña con la que se configura el servicio. Cuando el cliente quiera conectarse a la VPN deberá introducir el usuario pablo y la contraseña metasploit. Ahora que tenemos preparado el servicio, debemos configurar unas reglas en iptables para que todo quede configurado.

Se necesitan 3 reglas, las cuales tenemos en un fichero denominado reglas. La primera enmascara todo lo que sale por la interfaz de red "normal" de la máquina del atacante, en otras palabras realiza el cambio de dirección IP. La segunda regla hace un forward entre interfaces, todo lo que llega por la interfaz ppp0, la que conecta la VPN entre víctima y atacante, se reenvía a la interfaz de salida eth0 de la máquina del atacante. La tercera regla es la operación inversa de la segunda, todo lo llega desde Internet, con destino a la máquina víctima, se reenvía por ppp0. Básicamente esto es lo que está ocurriendo en iptables.
Figura 2: Configuración de reglas en iptables
El escenario es de post-explotación, es decir, necesitamos disponer de una sesión en una máquina remota para poder ejecutar esta técnica. Por esta razón, y como se puede ver en la imagen, necesitamos saber qué identificador de sesión disponemos en la máquina remota. En este caso, la sesión tiene id 1
Figura 3: Sesión de Meterpreter en una máquina remota
Una vez disponemos de la sesión en la máquina remota debemos ejecutar un background para no perder la sesión abierta. Con el comando use cargamos el módulo post/windows/manage/pptp_tunnel disponible en Metasploit. Si ejecutamos el comando show options podemos visualizar las diferentes opciones básicas que dispone el módulo. En este caso necesitamos configurar el usuario y contraseña y la dirección IP perteneciente a VPNHOST, que será nuestra dirección IP. 
Una vez configurado debemos ejecutar el comando run, y podemos visualizar como se establece la conexión desde la máquina vulnerada al servidor de VPN (nosotros). En este instante el MITM lo tenemos configurado, y el tráfico de la máquina remota pasará por nosotros. 
Figura 4: Configuración y ejecución del módulo post/windows/manage/pptp_tunnel
Si analizamos la máquina remota y las rutas configuradas (métricas) podemos observar que gracias a la ejecución del módulo se han añadido nuevas rutas con métricas bajas que salen por la interfaz de red que hemos configurado. Si nos fijamos en la interfaz 192.168.0.234, que corresponde con la interfaz de red de la VPN, sería la interfaz que la máquina vulnerada utilizará para salir a Internet. Gracias a esto se ha logrado el MITM en remoto. 
Figura 5: Rutas en la máquina remota
Si abrimos Wireshark en la máquina Kali (atacante) y configuramos el filtro HTTP, podemos ver que el tráfico de navegación de la máquina remota pasa por nosotros. En la captura que se muestra en la imagen podemos ver como el origen es la dirección IP 192.168.0.234 (máquina Windows remota) con destino Internet, en este caso el sitio web El Otro Lado, y se puede visualizar el usuario y contraseña introducido por la víctima.
Figura 6: Tráfico HTTP a través del MITM con la VPN
Como podemos ver, podríamos visualizar el tráfico HTTP, pero ¿Qué ocurre con el tráfico HTTPS? Fácilmente podemos acoplar la técnica SSL Strip en este caso, para ello debemos añadir una regla a iptables que es la siguiente iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 10000. El puerto 10000 puede ser sustituido por otro, en función de cómo configuremos el script de sslstrip. Ahora ejecutamos el comando sslstrip -w [fichero]
Figura 7: SSL Strip satisfactorio 
Tal y como puede visualizarse en la imagen, encontramos un usuario y contraseña en la máquina remota. El dominio es outlook, el cual en condiciones normales seríamos redirigidos a HTTPS, pero con esta técnica mantiene a la víctima en un contexto HTTP. Si la víctima no se da cuenta de este hecho, será víctima de un robo de identidad. Para aprender más sobre Metasploit y sus secretos os recomiendo el libro de Metasploit para Pentesters.
 
Fuente: http://www.flu-project.com/2014/12/mitm-ssl-strip-con-meterpreter-en.html