Phishing Methodology
Last updated
Last updated
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Reconocer a la víctima
Seleccionar el dominio de la víctima.
Realizar una enumeración web básica buscando portales de inicio de sesión utilizados por la víctima y decidir cuál vas a suplantar.
Usar OSINT para encontrar correos electrónicos.
Preparar el entorno
Comprar el dominio que vas a usar para la evaluación de phishing.
Configurar el servicio de correo relacionado (SPF, DMARC, DKIM, rDNS).
Configurar el VPS con gophish.
Preparar la campaña
Preparar la plantilla de correo electrónico.
Preparar la página web para robar las credenciales.
¡Lanzar la campaña!
Palabra clave: El nombre de dominio contiene una palabra clave importante del dominio original (por ejemplo, zelster.com-management.com).
Subdominio con guion: Cambiar el punto por un guion de un subdominio (por ejemplo, www-zelster.com).
Nuevo TLD: Mismo dominio usando un nuevo TLD (por ejemplo, zelster.org).
Homoglyph: Reemplaza una letra en el nombre de dominio con letras que se ven similares (por ejemplo, zelfser.com).
Transposición: Intercambia dos letras dentro del nombre de dominio (por ejemplo, zelsetr.com).
Singularización/Pluralización: Agrega o quita “s” al final del nombre de dominio (por ejemplo, zeltsers.com).
Omisión: Elimina una de las letras del nombre de dominio (por ejemplo, zelser.com).
Repetición: Repite una de las letras en el nombre de dominio (por ejemplo, zeltsser.com).
Reemplazo: Como homoglyph pero menos sigiloso. Reemplaza una de las letras en el nombre de dominio, quizás con una letra cercana a la letra original en el teclado (por ejemplo, zektser.com).
Subdominado: Introducir un punto dentro del nombre de dominio (por ejemplo, ze.lster.com).
Inserción: Inserta una letra en el nombre de dominio (por ejemplo, zerltser.com).
Punto faltante: Agregar el TLD al nombre de dominio. (por ejemplo, zelstercom.com)
Herramientas Automáticas
Sitios Web
Hay una posibilidad de que uno de algunos bits almacenados o en comunicación pueda ser automáticamente invertido debido a varios factores como llamaradas solares, rayos cósmicos o errores de hardware.
Cuando este concepto se aplica a las solicitudes DNS, es posible que el dominio recibido por el servidor DNS no sea el mismo que el dominio solicitado inicialmente.
Por ejemplo, una modificación de un solo bit en el dominio "windows.com" puede cambiarlo a "windnws.com."
Los atacantes pueden aprovechar esto registrando múltiples dominios de bit-flipping que son similares al dominio de la víctima. Su intención es redirigir a los usuarios legítimos a su propia infraestructura.
Para más información, lee https://www.bleepingcomputer.com/news/security/hijacking-traffic-to-microsoft-s-windowscom-with-bitflipping/
Puedes buscar en https://www.expireddomains.net/ un dominio expirado que podrías usar. Para asegurarte de que el dominio expirado que vas a comprar ya tiene un buen SEO, podrías buscar cómo está categorizado en:
https://github.com/laramies/theHarvester (100% gratis)
https://phonebook.cz/ (100% gratis)
Para descubrir más direcciones de correo electrónico válidas o verificar las que ya has descubierto, puedes comprobar si puedes forzar por fuerza bruta los servidores smtp de la víctima. Aprende cómo verificar/descubrir direcciones de correo electrónico aquí. Además, no olvides que si los usuarios utilizan cualquier portal web para acceder a sus correos, puedes comprobar si es vulnerable a fuerza bruta de nombre de usuario, y explotar la vulnerabilidad si es posible.
Puedes descargarlo de https://github.com/gophish/gophish/releases/tag/v0.11.0
Descarga y descomprime dentro de /opt/gophish
y ejecuta /opt/gophish/gophish
Se te dará una contraseña para el usuario administrador en el puerto 3333 en la salida. Por lo tanto, accede a ese puerto y usa esas credenciales para cambiar la contraseña del administrador. Puede que necesites tunelizar ese puerto a local:
Configuración del certificado TLS
Antes de este paso, deberías haber comprado ya el dominio que vas a usar y debe estar apuntando a la IP del VPS donde estás configurando gophish.
Configuración del correo
Comienza instalando: apt-get install postfix
Luego agrega el dominio a los siguientes archivos:
/etc/postfix/virtual_domains
/etc/postfix/transport
/etc/postfix/virtual_regexp
Cambia también los valores de las siguientes variables dentro de /etc/postfix/main.cf
myhostname = <domain>
mydestination = $myhostname, <domain>, localhost.com, localhost
Finalmente, modifica los archivos /etc/hostname
y /etc/mailname
a tu nombre de dominio y reinicia tu VPS.
Ahora, crea un registro A de DNS de mail.<domain>
apuntando a la dirección IP del VPS y un registro MX de DNS apuntando a mail.<domain>
Ahora probemos enviar un correo electrónico:
Configuración de Gophish
Detén la ejecución de gophish y configuremoslo.
Modifica /opt/gophish/config.json
a lo siguiente (nota el uso de https):
Configurar el servicio gophish
Para crear el servicio gophish de modo que se inicie automáticamente y se gestione como un servicio, puedes crear el archivo /etc/init.d/gophish
con el siguiente contenido:
Finaliza la configuración del servicio y verifica que funcione:
Cuanto más antiguo sea un dominio, menos probable es que sea atrapado como spam. Por lo tanto, debes esperar el mayor tiempo posible (al menos 1 semana) antes de la evaluación de phishing. Además, si pones una página sobre un sector reputacional, la reputación obtenida será mejor.
Ten en cuenta que, incluso si tienes que esperar una semana, puedes terminar de configurar todo ahora.
Configura un registro rDNS (PTR) que resuelva la dirección IP del VPS al nombre de dominio.
Debes configurar un registro SPF para el nuevo dominio. Si no sabes qué es un registro SPF lee esta página.
Puedes usar https://www.spfwizard.net/ para generar tu política SPF (usa la IP de la máquina VPS)
Este es el contenido que debe establecerse dentro de un registro TXT dentro del dominio:
Debes configurar un registro DMARC para el nuevo dominio. Si no sabes qué es un registro DMARC lee esta página.
Tienes que crear un nuevo registro DNS TXT apuntando al nombre de host _dmarc.<domain>
con el siguiente contenido:
Debes configurar un DKIM para el nuevo dominio. Si no sabes qué es un registro DMARC lee esta página.
Este tutorial se basa en: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy
Necesitas concatenar ambos valores B64 que genera la clave DKIM:
Puedes hacerlo usando https://www.mail-tester.com/ Simplemente accede a la página y envía un correo electrónico a la dirección que te proporcionen:
Puedes también verificar tu configuración de correo enviando un correo a check-auth@verifier.port25.com
y leyendo la respuesta (para esto necesitarás abrir el puerto 25 y ver la respuesta en el archivo /var/mail/root si envías el correo como root).
Verifica que pases todas las pruebas:
También podrías enviar un mensaje a un Gmail bajo tu control y verificar los encabezados del correo electrónico en tu bandeja de entrada de Gmail, dkim=pass
debería estar presente en el campo de encabezado Authentication-Results
.
La página www.mail-tester.com puede indicarte si tu dominio está siendo bloqueado por spamhouse. Puedes solicitar la eliminación de tu dominio/IP en: https://www.spamhaus.org/lookup/
Puedes solicitar la eliminación de tu dominio/IP en https://sender.office.com/.
Establece un nombre para identificar el perfil del remitente
Decide desde qué cuenta vas a enviar los correos electrónicos de phishing. Sugerencias: noreply, support, servicedesk, salesforce...
Puedes dejar en blanco el nombre de usuario y la contraseña, pero asegúrate de marcar la opción Ignorar Errores de Certificado
Se recomienda utilizar la funcionalidad "Enviar correo de prueba" para comprobar que todo está funcionando. Recomendaría enviar los correos de prueba a direcciones de 10min para evitar ser incluido en la lista negra al realizar pruebas.
Establece un nombre para identificar la plantilla
Luego escribe un asunto (nada extraño, solo algo que podrías esperar leer en un correo electrónico regular)
Asegúrate de haber marcado "Agregar imagen de seguimiento"
Escribe la plantilla de correo electrónico (puedes usar variables como en el siguiente ejemplo):
Note that para aumentar la credibilidad del correo electrónico, se recomienda usar alguna firma de un correo del cliente. Sugerencias:
Enviar un correo a una dirección no existente y verificar si la respuesta tiene alguna firma.
Buscar correos públicos como info@ex.com o press@ex.com o public@ex.com y enviarles un correo y esperar la respuesta.
Intentar contactar algún correo válido descubierto y esperar la respuesta.
La plantilla de correo también permite adjuntar archivos para enviar. Si también deseas robar desafíos NTLM usando algunos archivos/documentos especialmente diseñados lee esta página.
Escribe un nombre
Escribe el código HTML de la página web. Ten en cuenta que puedes importar páginas web.
Marca Capturar Datos Enviados y Capturar Contraseñas
Establece una redirección
Por lo general, necesitarás modificar el código HTML de la página y hacer algunas pruebas en local (quizás usando algún servidor Apache) hasta que te gusten los resultados. Luego, escribe ese código HTML en el cuadro. Ten en cuenta que si necesitas usar algunos recursos estáticos para el HTML (quizás algunas páginas CSS y JS) puedes guardarlos en /opt/gophish/static/endpoint y luego acceder a ellos desde /static/<filename>
Para la redirección podrías redirigir a los usuarios a la página web principal legítima de la víctima, o redirigirlos a /static/migration.html por ejemplo, poner alguna rueda giratoria (https://loading.io/) durante 5 segundos y luego indicar que el proceso fue exitoso.
Establecer un nombre
Importar los datos (ten en cuenta que para usar la plantilla del ejemplo necesitas el nombre, apellido y dirección de correo electrónico de cada usuario)
Finalmente, crea una campaña seleccionando un nombre, la plantilla de correo, la página de aterrizaje, la URL, el perfil de envío y el grupo. Ten en cuenta que la URL será el enlace enviado a las víctimas.
Ten en cuenta que el Perfil de Envío permite enviar un correo de prueba para ver cómo se verá el correo de phishing final:
Recomendaría enviar los correos de prueba a direcciones de 10min para evitar ser bloqueado al hacer pruebas.
Una vez que todo esté listo, ¡simplemente lanza la campaña!
Si por alguna razón deseas clonar el sitio web, consulta la siguiente página:
Clone a WebsiteEn algunas evaluaciones de phishing (principalmente para Red Teams) también querrás enviar archivos que contengan algún tipo de puerta trasera (quizás un C2 o tal vez solo algo que active una autenticación). Consulta la siguiente página para algunos ejemplos:
Phishing Files & DocumentsEl ataque anterior es bastante ingenioso ya que estás falsificando un sitio web real y recopilando la información proporcionada por el usuario. Desafortunadamente, si el usuario no ingresó la contraseña correcta o si la aplicación que falsificaste está configurada con 2FA, esta información no te permitirá suplantar al usuario engañado.
Aquí es donde herramientas como evilginx2, CredSniper y muraena son útiles. Esta herramienta te permitirá generar un ataque tipo MitM. Básicamente, los ataques funcionan de la siguiente manera:
Suplantas el formulario de inicio de sesión de la página web real.
El usuario envía sus credenciales a tu página falsa y la herramienta envía esas credenciales a la página web real, verificando si las credenciales funcionan.
Si la cuenta está configurada con 2FA, la página MitM lo pedirá y una vez que el usuario lo introduzca, la herramienta lo enviará a la página web real.
Una vez que el usuario esté autenticado, tú (como atacante) habrás capturado las credenciales, el 2FA, la cookie y cualquier información de cada interacción mientras la herramienta realiza un MitM.
¿Qué pasaría si en lugar de enviar a la víctima a una página maliciosa con el mismo aspecto que la original, lo envías a una sesión VNC con un navegador conectado a la página web real? Podrás ver lo que hace, robar la contraseña, el MFA utilizado, las cookies... Puedes hacer esto con EvilnVNC
Obviamente, una de las mejores maneras de saber si te han descubierto es buscar tu dominio en listas negras. Si aparece listado, de alguna manera tu dominio fue detectado como sospechoso. Una forma fácil de verificar si tu dominio aparece en alguna lista negra es usar https://malwareworld.com/
Sin embargo, hay otras formas de saber si la víctima está buscando activamente actividades de phishing sospechosas en la red como se explica en:
Detecting PhishingPuedes comprar un dominio con un nombre muy similar al dominio de la víctima y/o generar un certificado para un subdominio de un dominio controlado por ti que contenga la palabra clave del dominio de la víctima. Si la víctima realiza algún tipo de interacción DNS o HTTP con ellos, sabrás que está buscando activamente dominios sospechosos y necesitarás ser muy sigiloso.
Usa Phishious para evaluar si tu correo terminará en la carpeta de spam o si será bloqueado o exitoso.
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)