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.
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