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

No hay comentarios:

Publicar un comentario