Archivo

Posts Tagged ‘phishing 2.0’

Phishing 2.0 con Evilginx2 – Parte 1.

noviembre 6, 2019 Deja un comentario

Los ataques de phishing tradicionalmente se han basado en una plantilla con una estructura fija, la cual evidentemente puede quedar desactualizada rápidamente si no se mantiene y lo que es peor, es necesario poner una URL “rara” que probablemente nada tiene que ver con el dominio objetivo, la cual con un vistazo más detallado se puede apreciar claramente que no es el dominio del sitio web legitimo. Aún así, los ataques de este tipo siguen siendo predominantes y con unos muy buenos niveles de éxito. Existen un buen número de herramientas que permiten emprender este tipo de ataques con plantillas fijas y del mismo modo le permiten al atacante crear las suyas. No obstante, hoy en día ya encontramos lo que se conoce como el “phishing 2.0” y herramientas como Evilginx2 definen las bases de este tipo de ataques, más sofisticados y efectivos que los ataques de phishing clásicos basados en plantillas.

Evilginx2 es una herramienta que ha sido desarrollada en Go y que cuenta con las siguientes características:

* Se encarga de levantar de forma automática un servidor DNS para resolver las peticiones que se vayan a realizar contra un dominio concreto.

* Realiza un ataque de “Hombre en medio”, en donde no hace falta tener plantillas HTML fijas con la estructura del sitio web objetivo. Evilginx2 se encarga de realizar una petición HTTPS contra el sitio web legitimo y enseñar la estructura que devuelva el sitio web a la víctima.

* Evilginx2 es capaz de hacer un bypass sobre mecanismos de 2FA dado que no realiza ningún tipo de modificación sobre la estructura de la página, simplemente se encarga de actuar como cualquier cliente para el sitio web legitimo permitiendo que sea la víctima la que realiza la interacción con el servicio.

* Solicita y configura automáticamente un certificado SSL valido (Lets Encrypt) para el dominio que se utilizará para el ataque de phishing.

* Es capaz de mantener la condición de MITM entre la víctima y el sitio web legitimo tras la autenticación correcta. Esto permite capturar no solamente cookies de sesión o usuarios y contraseñas en texto plano, también permite obtener información sensible en la medida que el usuario va navegando por el sitio web legitimo pasando primero por el dominio configurado con Evilginx2.

Estás son solamente algunas de las “maravillas” que es capaz de hacer la herramienta. Sin embargo, existen algunas complicaciones que se pueden presentar en la configuración de este tipo de ataques con Eviginx2.

* Es necesario contar con una IP pública para poder resolver las peticiones DNS contra el dominio controlado por Evilginx2. Esto puede ser por medio de un VPS o servidor dedicado en cualquiera de los proveedores disponibles en Internet.

* Es necesario adquirir y configurar correctamente un dominio DNS. Como se verá más adelante, es necesario crear un registro DNS del tipo “A” que apunte a la IP pública donde se encuentra en ejecución Evilginx” y algunos registros “CNAME”.

* Dada la naturaleza de este tipo de ataque, si se realiza una campaña muy extensa o contra un objetivo “delicado”, es posible que el proveedor del VPS reciba quejas y que dependiendo de la gravedad de las actividades, se lleven a cabo acciones legales. En una campaña llevada a cabo por ciberdelincuentes profesionales, lo más probable es sea rápida y precisa, además también es posible que el proveedor del VPS contratado sea anónimo de tal manera que se dejen el menor número de trazas posible.

Requisitos e instalación.

Ahora que el lector entiende de qué va esto y el posible impacto que puede tener, resulta interesante pasar a la práctica viendo cómo instalar y configurar la herramienta para llevar a cabo un ataque de éste tipo.

En primer lugar, lo requisitos son los siguientes para que esto funcione bien.

  • Una dirección IP pública en un VPS o servidor dedicado. Se puede conseguir lo mismo en un entorno domestico creando reglas NAT en router que se encarguen de redireccionar las peticiones hacia el interior de la red local, sin embargo este enfoque es totalmente desaconsejado ya que el router no tendrá una IP fija todo el tiempo y además, es posible que Evilginx2 no funcione correctamente en este caso.
  • Un dominio correctamente configurado.
  • Una instalación limpia de Eviginx2, la cual puede ser partiendo del código fuente o de alguno de los paquetes precompilados que están preparados para ser descargados y ejecutarlos directamente, siendo ésta última opción la más sencilla y cómoda.

Primero lo más sencillo, la instalación. El repositorio oficial se encuentra disponible en GitHub: https://github.com/kgretzky/evilginx2 en dicho repositorio se incluyen las instrucciones básicas para su instalación, algo que no lleva mucho tiempo si se cuenta con todas las dependencias en GO requeridas por el programa. En “releases” se puede apreciar que existen paquetes preparados para utilizar la herramienta directamente.

Al ejecutar la herramienta es importante hacerlo con privilegios de root, utilizando “sudo” por ejemplo, ya que es necesario abrir el puerto 53 para el servidor DNS que levanta la herramienta. Se puede apreciar una tabla de phishlets, algo que se mencionará más adelante.

A continuación es necesario cumplir con los otros dos requisitos obligatorios que se han indicado anteriormente: Una IP pública y un dominio. Sobre el primero de ellos, es importante tener en cuenta que en dicha dirección IP pública se debe ejecutar Evilginx2. Es decir, la imagen anterior que enseña la ejecución de la herramienta corresponde a una instancia de Evilginx2 ejecutándose, en este caso concreto, en un VPS con una IP pública.

Sobre el segundo requisito, es necesario contar con un dominio correctamente configurado. Existen cientos de servicios en Internet que permiten contratar un dominio por muy bajo precio, sin embargo para realizar pruebas se puede utilizar un servicio como freenom.com el cual permite adquirir dominios de forma gratuita por un tiempo fijo.

Configuración del ataque.

A modo de ejemplo, se realizará un ataque de phishing con Evilginx2 utilizando el dominio “es-twitter.ml”. La selección de éste dominio es totalmente arbitraria, el lector puede elegir el que quiera.

En freenom se puede configurar el dominio recién creado fácilmente. En este caso interesa crear registros del “A”, “CNAME” y los correspondientes “NS”. Primero se configurarán los registros “NS” y “A”, posteriormente los registros CNAME tras configurar el dominio en Evilginx2. Como una imagen vale más que mil palabras, la configuración sería como se puede ver a continuación.

Con esto será suficiente para tener el los registros NS correctamente establecidos. Ahora, el registro “A” será como se puede ver a continuación. (Evidentemente, es necesario poner la IP en donde se encuentra Evilginx2 en ejecución).

Con esto el dominio está prácticamente listo. Ahora es necesario habilitar el “phishlet” correspondiente a Twitter para poder continuar con la configuración y posterior preparación del ataque. Un phishlet es similar a las plantillas que se utilizan en las herramientas destinadas a este tipo de ataques, sin embargo, en lugar de contener una estructura HTML fija, contienen “metainformación” sobre cómo conectar con el sitio objetivo, parámetros soportados y páginas de inicio a las que debe de apuntar Evilginx2. Los phishlets son ficheros de texto en formato YAML y la herramienta se encarga de cargarlos desde el directorio <EVILGINX2_ROOT>/phishlets esto significa que es posible crear ficheros en formato YAML para sitios web concretos que no se encuentran entre los que vienen por defecto en la herramienta. Algo que es bastante habitual en una campaña de RedTeam en la que se aplican técnicas de Phishing 2.0.

Bien, ahora que el dominio se encuentra “casi” configurado por completo, es el momento de abrir la terminal con Evilginx2 y realizar algunas configuraciones básicas. En primer lugar, el comando “help” enseñará los comandos disponibles en la herramienta, que como se puede ver, no son muchos.

El primer comando a ejecutar será de configuración global, para establecer el dominio y la IP pública.

Ahora es el momento de habilitar el phishlet correspondiente, que en este caso será el de Twitter.

El primer comando ha permitido habilitar el phishlet “twitter” y ha establecido el hostname que será utilizado para el ataque de phishing. En este caso concreto, la URL “twitter.com.es-twitter.ml” será el señuelo que se le enviará a las víctimas. Algo que resultará totalmente “creíble” al ver que la conexión se establecerá por HTTPS con certificado perfectamente valido y que además, en la URL pone “twitter.com”. Mucha gente seguramente picará. Bien, pero antes de continuar con los detalles del ataque, es necesario terminar la configuración del dominio. Al ejecutar el segundo comando se obtienen los registros CNAME que hay que incluir en la configuración del dominio en freenom. La configuración final del dominio será como se puede apreciar en la siguiente imagen.

Con estos pasos ya se encuentra todo preparado para elaborar el ataque de Phishing con Evilginx2, algo se explicará en detalle en el próximo post.

Si has hecho todo bien hasta aquí, el siguiente paso que corresponde a la ejecución del ataque propiamente dicho será bastante fácil y rápido.

Un saludo y Happy Hack
Adastra.

A %d blogueros les gusta esto: