Cómo crear un buen phishing

30 de mayo de 2022 - Phishing

Lo primero es lo primero, si estás leyendo esto, quizás ya tengas nociones de seguridad en el correo electrónico, pero por si acaso, repasemos algunos conceptos básicos.

Nada en esta entrada del blog es para el mal o el uso no intencionado. Siempre que se realice una prueba de phishing en una organización tiene que ser consentida y con un contrato.

Este post no detallará ninguna configuración a utilizar, sólo consejos y comentarios sobre lo que he utilizado en el pasado y ha funcionado o cosas interesantes que podrían funcionar.

Hay que tener en cuenta que este post no cubre el uso de malware y solo documenta la parte de enlaces, porque como ya sabemos hay muchas variantes de phishing y siempre es mejor especificar.

SPF, DMARC Y DKIM


Me gustaría aclarar que cada vez que se envía un correo electrónico la dirección de remitente siempre se especifica dos veces, una en el «envelope» MAILFROM y una en el «encabezado» FROM.

El SPF ayuda a evitar la suplantación de identidad verificando la dirección IP del remitente


SPF (Sender Policy Framework) es un registro DNS que contiene información sobre los servidores autorizados a enviar correos electrónicos desde un dominio específico (por ejemplo, google.com).

Con él, puedes verificar que los mensajes procedentes de tu dominio son enviados por servidores de correo y direcciones IP autorizadas, pueden ser tus servidores de correo electrónico o los de otra empresa que utilices para el envío de correo electrónico.

Si el SPF no está configurado, otros pueden aprovecharse de ello y enviar mensajes falsos que parezcan proceder de tu dominio.

Es importante recordar que sólo puede haber un registro SPF para un dominio. Sin embargo, dentro de un registro SPF puede haber varios servidores y direcciones IP mencionadas (por ejemplo, si los correos electrónicos se envían desde varias plataformas de correo).

Imagen por dmarcian.com

DKIM muestra que el correo electrónico pertenece a una organización específica


DKIM (DomainKeys Identified Mail) es otro estándar técnico que ayuda a identificar las direcciones de correo electrónico falsas, a luchar contra el spam y a evitar la suplantación y el robo de identidad.

DKIM añade una firma digital a la cabecera de su mensaje de correo electrónico, que los servidores de correo electrónico comprueban para asegurarse de que el contenido del correo electrónico no ha cambiado. Al igual que SPF, un registro DKIM existe en el DNS y es similar al concepto de tener una clave pública y otra privada. Mientras que firmas el correo electrónico con la clave privada, la pública está en los registros DNS para verificar que todo está correcto cuando llega a su destino.

Imagen por dmarcian.com

DMARC alinea los mecanismos SPF y DKIM


DMARC (Domain-based Message Authentication, Reporting & Conformance) define cómo el servidor de correo del destinatario debe procesar los correos electrónicos entrantes si no pasan la comprobación de autenticación (ya sea SPF, DKIM, o ambos).

Básicamente, si hay una firma DKIM y el servidor remitente se encuentra en los registros SPF, el correo electrónico se envía a la bandeja de entrada del destinatario.

Si el mensaje no se autentifica, se procesa según la política DMARC seleccionada: ‘none’, ‘reject’ o ‘quarantine’.

  • Con la política ‘none‘ el servidor receptor no toma ninguna medida si sus correos electrónicos fallan la autenticación. No afecta a su capacidad de entrega. Pero tampoco te protege de los demás, por lo que no te recomiendo que la configures.
  • Los mensajes que provienen de tu dominio pero no pasan la comprobación DMARC van a ‘cuarentena‘. En ese caso, se aconseja al proveedor que envíe tu correo electrónico a la carpeta de spam.
  • Con la política de ‘reject‘, el servidor receptor rechaza todos los mensajes que no pasan la autentificación del correo electrónico. Esto significa que tales correos no llegarán a su destinatario y resultarán en un rebote.

La opción ‘reject‘ es la más eficaz, pero es mejor elegirla sólo si está seguro de que todo está configurado correctamente.

Hay 11 etiquetas, pero sólo la ‘p‘ (política) y la ‘v‘ (versión) son obligatorias. Por otro lado, se recomienda configurar el valor ‘rua‘, ya que es la etiqueta que especifica el correo electrónico al que enviar los informes.

Imagen por dmarcian.com
Si quieres saber más sobre SPF, DKIM, DMARC y cómo configurarlos, este post es bastante bueno:

requisitos


Necesitaremos un servidor SMTP o un «bridge» para enviar nuestros correos electrónicos, puede ser local o en un entorno cloud.

También una plataforma para controlar el envío, la recepción y la apertura de los correos electrónicos.

Si la plataforma que pretendemos utilizar es local, podríamos utilizar servicios para exponer nuestra web final a Internet.

Además, necesitaremos un nombre de dominio y la respectiva configuración de DNS.

Por último, necesitaremos un programa para mostrar nuestra web al usuario final.

Y, por supuesto, ¡mucha curiosidad y motivación!

OSINT


Lo primero que hay que hacer si tenemos un objetivo es conseguir toda la información posible. Buscar contraseñas de fugas, hacerse pasar por un cliente interesado en el producto de una empresa para ver cómo se comunica, sus firmas de correo electrónico, etc.

Toda la información recabada será útil para aparentar veracidad en caso de que la víctima tenga dudas.

Revisar la página web de la empresa también suele ser beneficioso, ya que algunas empresas publican los nombres y fotos de sus empleados junto con una pirámide jerárquica o los cargos que ostentan dentro de la propia empresa, de forma que podemos elaborar un sencillo diagrama de cómo podría estar organizada y facilitarnos la deducción del eslabón más débil que podría caer en nuestro esquema de phishing.

Otra forma de conseguir información sobre una organización puede ser crear un perfil de red social «empresarial» falso, como Linkedin, y recopilar información sobre los empleados asociados a la página de la empresa.

Hay veces que al buscar información sobre la empresa encuentras vulnerabilidades por el camino, por ejemplo si intentas buscar con dorking dominios o subdominios internos que puedan haber sido expuestos o indexados…

Podrías empezar a buscar información usando esto: CyberLibrary – OSINT (lo actualizo constantemente)

dominio


Para el dominio cuanto más parecido al original mejor.
Hay que tener en cuenta que en la fase de investigación es posible que encontremos dominios o subdominios relacionados con la empresa que nos puedan redirigir, por ejemplo, a un login de microsoft.

Podemos utilizar diferentes técnicas o herramientas para crear un dominio similar al que queremos suplantar.

Podríamos utilizar homoglifos, permutaciones del dominio original, utilizar el www1-exampledomain.com como se ve aquí (no sé cómo funciona pero funciona), utilizar fuzzy matches, es decir utilizar mayúsculas para imitar las normales, por ejemplo: paypaI es igual a paypai pero la ‘i’ está en mayúscula, etc.

También hay que tener en cuenta que tendremos que esperar para no hacer sospechoso el dominio por ser de nueva creación.

Aquí tienes algunas herramientas útiles para probar:

Si no quieres usar herramientas, puedes usar algunos sitios web:

servidor SMTP


El servidor SMTP que personalmente recomiendo es mailcow o postfix porque mailcow ya está incorporado en los contenedores docker y es más cómodo desplegarlo y configurar un par de cosas y listo.

Sin embargo, en postfix hay que hacer mucha más configuración, ya que habría que usar postfix, dovecot y thunderbird para tener las mismas funcionalidades que en mailcow.

Además necesitamos la GUI para que en caso de que alguien que haya sido suplantado responda o intente verificar la fuente de alguna manera podamos seguir el hilo de la conversación para que confíen en nosotros.

Por otro lado, también hay que decir que los servidores SMTP se suelen utilizar en la nube y utilizando servicios o servidores de Microsoft, AWS, algún hosting donde hay muchos dominios y similares, por lo que en caso de ser pillados, bloquear la IP es el último recurso ya que estarían bloqueando no sólo la fuente maliciosa, sino también otros posibles dominios verdaderos.

Los «malos» normalmente tienden a vulnerar un sitio web o CMS para utilizarlo para enviar el phishing y dificultar el rastreo del verdadero origen. Suelen vulnerar varios en cadena para enviar las campañas y dificultar el conocer su procedencia.

Dejo aquí el repo de mailcow: https://github.com/mailcow/mailcow-dockerized

Y aquí una guía para configurar postfix junto con dovecot y thunderbird: https://elpuig.xeill.net/Members/vcarceler/articulos/correo-electronico-con-postfix-dovecot-y-thunderbird-en-ubuntu-20.04

Aquí hay otra alternativa: https://github.com/mailhog/MailHog

En caso de que no quieras configurar un SMTP, también podrías utilizar el «bridge» que ofrece Protonmail, aunque no es gratuito (cuesta unos 8€), ofrece la posibilidad de enviar correos encriptados a través de Protonmail y utilizar la interfaz web que tienen para recibir correos. Así tendrías todo «casi» hecho.

Aquí está el sitio web para la configuración: https://proton.me/support/protonmail-bridge-install

plataforma de monitorización


La plataforma más conocida y recomendada es, como sabemos, Gophish, pero también hay otras buenas alternativas si queremos probar otras tecnologías para monitorizar el envío, recepción y obtención de credenciales de las víctimas, como por ejemplo:

página web


Para la página web hay muchas variables, como el tipo de ataque que se quiere realizar, la temática que se va a utilizar en el phishing, la forma de ofrecer el enlace a las víctimas, etc.

También hay que tener en cuenta si tienen configurado el segundo factor de autenticación en la empresa, ya que esto supone tener que saltarse esta protección.

El más conocido o familiar es Evilginx2, pero hay más alternativas para desplegar una landing page y saltarse el 2FA en caso de que lo tengan.

Aquí tienes algunas opciones:

Otra forma sería crear tú mismo la página web y programar en el backend el procesamiento de los datos introducidos por la víctima en el formulario malicioso para pasarlos al real.

Haciendo esto y logueando a la víctima, nos saltaremos el 2FA, con esto podrías robar la cookie de sesión y guardarla para poder acceder de nuevo sin pasar el 2FA, hay que tener en cuenta que normalmente los tokens de seguridad suelen tener un periodo de vida útil y pueden caducar (aunque hay casos en los que no por desgracia…).

En estos casos se podría crear una copia exacta de la web a falsear usando HTTrack en local y tunelizar la web para exponerla a internet usando uno de estos servicios:

Y muchas más…

creación del correo


A la hora de crear un correo electrónico siempre tiendo a utilizar el más sencillo y el que mejor se ve.

¿Por qué complicar el formato de un correo electrónico si hay sitios web que lo ponen fácil?

Hay muchas webs online que te permiten crear un email de la forma más sencilla, luego sólo tienes que descargar el HTML e introducirlo en el gestor que vayas a utilizar para enviar la campaña.

En mi opinión, una de las que mejores resultados me ha dado siempre ha sido Stripo Email, tienes un número limitado de descargas pero puedes crear una cuenta de correo de 10 minutos y utilizarla todas las veces que quieras. En una ocasión un cliente se quejó porque el email era «demasiado perfecto», así que por experiencia lo recomiendo.

En caso de que no sepas sobre qué escribir el email te dejo aquí dos recursos para que te den ideas tanto en el asunto (algo importante para que el email lo abran) como en el cuerpo del correo:

bypass de filtros


Una de las primeras cosas que tenemos que saber es si tienen configurado el SPF, en caso de que no lo tengan, podremos usar esta comprobación simplemente usando Telnet:

https://github.com/Rices/spf-bypass

Si funciona, podremos registrar en el SMTP que hayamos elegido, el dominio real y crear cuentas de correo con las que luego enviaremos el email.

He visto llegar correos a la bandeja de entrada así:

«ho…….la………!»
«Co_MooE-sT__aSs?»

Pero esto no es profesional y nadie se va a creer ese correo…

La principal medida es asegurarse de que el dominio que hemos elegido no está en la lista negra o ha tenido una mala reputación en el pasado, de lo contrario se bloqueará directamente.

También se suelen utilizar técnicas de ofuscación, como las siguientes:

Y otras muchas…

psicología aplicada al phishing


Como bien sabes, el phishing es una forma de ingeniería social, por lo que entra en juego la cuestión de la psicología.

El objetivo de un ataque de phishing es sacarnos de nuestra mentalidad de cuestionar la validez y la seguridad de las comunicaciones, por lo que si se ejecuta correctamente es bastante peligroso.

Las técnicas psicológicas más comunes utilizadas en el phishing son dar la sensación de:

  • Urgencia: Un correo electrónico de phishing suele querer que se haga algo ahora mismo, ya que cuanto más tiempo se tenga que pensar, más se puede cuestionar si es benigno.
  • Confidencialidad: La acción requerida es específica para ti y debe ser realizada sólo por ti, ya que involucrar a otra persona aumenta las posibilidades de que el phishing sea detectado.
  • Autoridad: La gente se somete a la autoridad. Por ello, muchos correos electrónicos de phishing intentan hacerse pasar por altos ejecutivos, recursos humanos, departamento de tecnología de la información o incluso finanzas. Un correo electrónico del director general (supuestamente) pidiendo al departamento de finanzas que envíe inmediatamente 300.000 euros a una cuenta desconocida para el departamento es un ejemplo de escenario que ha ocurrido muchas veces en el pasado, esto también se conoce como «el fraude del CEO».
  • Coherencia: Seguro que ha oído la expresión «animal de costumbres». En cierto modo, todos somos animales de costumbres, ya que nos gusta vivir de una manera determinada. Los correos electrónicos de phishing que parecen comunicaciones oficiales se aprovechan de este hecho, con la esperanza de que el destinatario pase por alto la inusual solicitud que se incluye en un correo electrónico de este tipo. Un correo electrónico con el logotipo de Amazon en el que se dice que un envío se ha retrasado y se pide al destinatario que confirme su domicilio puede no levantar sospechas aunque no se espere ningún envío; ese es el poder de una marca reconocida.
  • Concenso: Todos hemos visto el poder de la multitud, desde los fanáticos frenéticos en un concierto de rock o las turbas enloquecidas en los disturbios. La gente tiene tendencia a seguir a otras personas. Un correo electrónico de phishing que menciona algo así como «674 de los 800 empleados han actualizado su software, haga clic en este enlace para descargarlo» busca explotar este hecho.
  • Gustar: Este es un principio de influencia extremadamente obvio, y algo que utilizamos a diario. Si le gustas a la gente, te dirá «sí». Y a la inversa, si la gente quiere caer bien, también dirá «sí». Esto lo aprovechan los que se dirigen a los nuevos empleados ansiosos por agradar. Un correo electrónico de RRHH (supuestamente) en el que se pide a un nuevo empleado su número de nómina es una de esas estratagemas habituales.

otros


En caso de que no tengas tiempo/ganas de configurar todo el entorno implicado en el envío de una campaña de phishing, también existen scripts o guías que despliegan toda la infraestructura mediante Terraform o Ansible en AWS, Azure, Google Cloud, Digital Ocean, etc.

Hay muchas guías, pero algunos ejemplos son:

Tagged as:

Play Cover Track Title
Track Authors