Metodología de Phishing
Tip
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)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
Metodología
- Recon a la víctima
- Selecciona el dominio de la víctima.
- Realiza una básica web enumeration buscando portales de login usados por la víctima y decide cuál vas a suplantar.
- Usa algo de OSINT para encontrar emails.
- Prepara el entorno
- Compra el dominio que vas a usar para la evaluación de phishing
- Configura los registros relacionados con el servicio de email (SPF, DMARC, DKIM, rDNS)
- Configura el VPS con gophish
- Prepara la campaña
- Prepara la plantilla de email
- Prepara la página web para robar las credenciales
- ¡Lanza la campaña!
Generar dominios similares o comprar un dominio confiable
Técnicas de variación de nombres de dominio
- Keyword: El nombre de dominio contiene una keyword importante del dominio original (e.g., zelster.com-management.com).
- hypened subdomain: Cambia el punto por un guion de un subdominio (e.g., www-zelster.com).
- New TLD: Mismo dominio usando un nuevo TLD (e.g., zelster.org)
- Homoglyph: Sustituye una letra en el nombre de dominio por letras que se parecen (e.g., zelfser.com).
- Transposition: Intercambia dos letras dentro del nombre de dominio (e.g., zelsetr.com).
- Singularization/Pluralization: Añade o quita una “s” al final del nombre de dominio (e.g., zeltsers.com).
- Omission: Elimina una de las letras del nombre de dominio (e.g., zelser.com).
- Repetition: Repite una de las letras en el nombre de dominio (e.g., zeltsser.com).
- Replacement: Similar a homoglyph pero menos sigiloso. Sustituye una de las letras del nombre de dominio, quizás por una letra cercana en el teclado (e.g, zektser.com).
- Subdomained: Introduce un punto dentro del nombre de dominio (e.g., ze.lster.com).
- Insertion: Inserta una letra en el nombre de dominio (e.g., zerltser.com).
- Missing dot: Añade el TLD al nombre de dominio. (e.g., zelstercom.com)
Automatic Tools
Websites
- https://dnstwist.it/
- https://dnstwister.report/
- https://www.internetmarketingninjas.com/tools/free-tools/domain-typo-generator/
Bitflipping
Existe la posibilidad de que uno o varios bits almacenados o en comunicación se inviertan automáticamente debido a factores como tormentas solares, rayos cósmicos o errores de hardware.
Cuando este concepto se aplica a peticiones 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 bit-flipping que sean similares al dominio de la víctima. Su intención es redirigir 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/
Comprar un dominio confiable
Puedes buscar en https://www.expireddomains.net/ un dominio expirado que puedas usar.
Para asegurarte de que el dominio expirado que vas a comprar ya tiene buen SEO puedes comprobar cómo está categorizado en:
Descubrimiento de emails
- https://github.com/laramies/theHarvester (100% gratuito)
- https://phonebook.cz/ (100% gratuito)
- https://maildb.io/
- https://hunter.io/
- https://anymailfinder.com/
Para descubrir más direcciones de email válidas o verificar las que ya hayas descubierto puedes comprobar si puedes brute-force los servidores SMTP de la víctima. Aprende cómo verificar/descubrir direcciones de email aquí.
Además, no olvides que si los usuarios usan cualquier portal web para acceder a sus mails, puedes comprobar si es vulnerable a username brute force, y explotar la vulnerabilidad si es posible.
Configuración de GoPhish
Instalación
Puedes descargarlo desde https://github.com/gophish/gophish/releases/tag/v0.11.0
Download and decompress it inside /opt/gophish and execute /opt/gophish/gophish
Se te mostrará una contraseña para el usuario admin en el puerto 3333 en la salida. Por tanto, accede a ese puerto y usa esas credenciales para cambiar la contraseña del admin. Puede que necesites tunelizar ese puerto a local:
ssh -L 3333:127.0.0.1:3333 <user>@<ip>
Configuración
Configuración del certificado TLS
Antes de este paso debes haber comprado ya el dominio que vas a usar y debe estar apuntando a la IP del VPS donde estás configurando gophish.
DOMAIN="<domain>"
wget https://dl.eff.org/certbot-auto
chmod +x certbot-auto
sudo apt install snapd
sudo snap install core
sudo snap refresh core
sudo apt-get remove certbot
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
certbot certonly --standalone -d "$DOMAIN"
mkdir /opt/gophish/ssl_keys
cp "/etc/letsencrypt/live/$DOMAIN/privkey.pem" /opt/gophish/ssl_keys/key.pem
cp "/etc/letsencrypt/live/$DOMAIN/fullchain.pem" /opt/gophish/ssl_keys/key.crt
Configuración de correo
Comienza la instalación: apt-get install postfix
Luego añade 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 con tu nombre de dominio y reinicia tu VPS.
Ahora, crea un DNS A record de mail.<domain> apuntando a la dirección IP del VPS y un DNS MX record apuntando a mail.<domain>
Ahora vamos a probar a enviar un correo:
apt install mailutils
echo "This is the body of the email" | mail -s "This is the subject line" test@email.com
Configuración de Gophish
Detén la ejecución de gophish y vamos a configurarlo.
Modifica /opt/gophish/config.json a lo siguiente (nota el uso de https):
{
"admin_server": {
"listen_url": "127.0.0.1:3333",
"use_tls": true,
"cert_path": "gophish_admin.crt",
"key_path": "gophish_admin.key"
},
"phish_server": {
"listen_url": "0.0.0.0:443",
"use_tls": true,
"cert_path": "/opt/gophish/ssl_keys/key.crt",
"key_path": "/opt/gophish/ssl_keys/key.pem"
},
"db_name": "sqlite3",
"db_path": "gophish.db",
"migrations_prefix": "db/db_",
"contact_address": "",
"logging": {
"filename": "",
"level": ""
}
}
Configurar el servicio gophish
Para crear el servicio gophish de modo que pueda iniciarse automáticamente y administrarse como un servicio, puede crear el archivo /etc/init.d/gophish con el siguiente contenido:
#!/bin/bash
# /etc/init.d/gophish
# initialization file for stop/start of gophish application server
#
# chkconfig: - 64 36
# description: stops/starts gophish application server
# processname:gophish
# config:/opt/gophish/config.json
# From https://github.com/gophish/gophish/issues/586
# define script variables
processName=Gophish
process=gophish
appDirectory=/opt/gophish
logfile=/var/log/gophish/gophish.log
errfile=/var/log/gophish/gophish.error
start() {
echo 'Starting '${processName}'...'
cd ${appDirectory}
nohup ./$process >>$logfile 2>>$errfile &
sleep 1
}
stop() {
echo 'Stopping '${processName}'...'
pid=$(/bin/pidof ${process})
kill ${pid}
sleep 1
}
status() {
pid=$(/bin/pidof ${process})
if [["$pid" != ""| "$pid" != "" ]]; then
echo ${processName}' is running...'
else
echo ${processName}' is not running...'
fi
}
case $1 in
start|stop|status) "$1" ;;
esac
Finaliza la configuración del servicio y comprueba su funcionamiento haciendo:
mkdir /var/log/gophish
chmod +x /etc/init.d/gophish
update-rc.d gophish defaults
#Check the service
service gophish start
service gophish status
ss -l | grep "3333\|443"
service gophish stop
Configuración del servidor de correo y dominio
Espera y sé legítimo
Cuanto más antiguo sea un dominio, menos probable es que sea marcado como spam. Por eso deberías esperar el mayor tiempo posible (al menos 1 semana) antes de la evaluación de phishing. Además, si publicas una página sobre un sector con reputación, la reputación obtenida será mejor.
Ten en cuenta que aunque tengas que esperar una semana, puedes terminar de configurar todo ahora.
Configurar registro Reverse DNS (rDNS)
Configura un registro rDNS (PTR) que resuelva la dirección IP del VPS al nombre de dominio.
Sender Policy Framework (SPF) Record
Debes configurar un registro SPF para el nuevo dominio. Si no sabes qué es un registro SPF read this page.
Puedes usar https://www.spfwizard.net/ para generar tu política SPF (usa la IP de la máquina VPS)
.png)
Este es el contenido que debe establecerse dentro de un registro TXT en el dominio:
v=spf1 mx a ip4:ip.ip.ip.ip ?all
Registro DMARC (Domain-based Message Authentication, Reporting & Conformance)
Debes configurar un registro DMARC para el nuevo dominio. Si no sabes qué es un registro DMARC lee esta página.
Debes crear un nuevo registro DNS TXT apuntando el hostname _dmarc.<domain> con el siguiente contenido:
v=DMARC1; p=none
DomainKeys Identified Mail (DKIM)
Debes configurar un DKIM para el nuevo dominio. Si no sabes qué es un registro DMARC read this page.
This tutorial is based on: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy
Tip
Necesitas concatenar ambos valores B64 que genera la clave DKIM:
v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0wPibdqPtzYk81njjQCrChIcHzxOp8a1wjbsoNtka2X9QXCZs+iXkvw++QsWDtdYu3q0Ofnr0Yd/TmG/Y2bBGoEgeE+YTUG2aEgw8Xx42NLJq2D1pB2lRQPW4IxefROnXu5HfKSm7dyzML1gZ1U0pR5X4IZCH0wOPhIq326QjxJZm79E1nTh3xj" "Y9N/Dt3+fVnIbMupzXE216TdFuifKM6Tl6O/axNsbswMS1TH812euno8xRpsdXJzFlB9q3VbMkVWig4P538mHolGzudEBg563vv66U8D7uuzGYxYT4WS8NVm3QBMg0QKPWZaKp+bADLkOSB9J2nUpk4Aj9KB5swIDAQAB
Test your email configuration score
Puedes hacerlo usando https://www.mail-tester.com/
Solo accede a la página y envía un email a la dirección que te proporcionen:
echo "This is the body of the email" | mail -s "This is the subject line" test-iimosa79z@srv1.mail-tester.com
También puedes comprobar tu configuración de correo enviando un correo a check-auth@verifier.port25.com y leer 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).
Comprueba que pasas todas las pruebas:
==========================================================
Summary of Results
==========================================================
SPF check: pass
DomainKeys check: neutral
DKIM check: pass
Sender-ID check: pass
SpamAssassin check: ham
También puedes enviar un mensaje a una cuenta de Gmail bajo tu control, y comprobar los encabezados del correo en tu bandeja de entrada de Gmail; dkim=pass debería estar presente en el campo de encabezado Authentication-Results.
Authentication-Results: mx.google.com;
spf=pass (google.com: domain of contact@example.com designates --- as permitted sender) smtp.mail=contact@example.com;
dkim=pass header.i=@example.com;
Removing from Spamhouse Blacklist
La página www.mail-tester.com puede indicarte si tu dominio está siendo bloqueado por spamhouse. Puedes solicitar que tu dominio/IP sea eliminado en: https://www.spamhaus.org/lookup/
Removing from Microsoft Blacklist
Puedes solicitar que tu dominio/IP sea eliminado en https://sender.office.com/.
Create & Launch GoPhish Campaign
Sending Profile
- Asigna un nombre para identificar el perfil del remitente
- Decide desde qué cuenta vas a enviar los phishing emails. Sugerencias: noreply, support, servicedesk, salesforce…
- Puedes dejar en blanco el username y password, pero asegúrate de marcar Ignore Certificate Errors
 (1) (2) (1) (1) (2) (2) (3) (3) (5) (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (10) (15) (2).png)
Tip
Se recomienda usar la funcionalidad “Send Test Email” para comprobar que todo funciona.
Recomiendo enviar los correos de prueba a direcciones de 10min mails para evitar quedar en listas negras al hacer pruebas.
Email Template
- Asigna un nombre para identificar la plantilla
- Luego escribe un subject (nada extraño, simplemente algo que podrías esperar leer en un email normal)
- Asegúrate de haber marcado “Add Tracking Image”
- Escribe la plantilla de email (puedes usar variables como en el siguiente ejemplo):
<html>
<head>
<title></title>
</head>
<body>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black">Dear {{.FirstName}} {{.LastName}},</span></p>
<br />
Note: We require all user to login an a very suspicios page before the end of the week, thanks!<br />
<br />
Regards,</span></p>
WRITE HERE SOME SIGNATURE OF SOMEONE FROM THE COMPANY
<p>{{.Tracker}}</p>
</body>
</html>
Tenga en cuenta que para aumentar la credibilidad del correo, se recomienda usar alguna firma de un email del cliente. Sugerencias:
- Envíe un correo a una dirección inexistente y compruebe si la respuesta incluye alguna firma.
- Busque emails públicos como info@ex.com o press@ex.com o public@ex.com y envíeles un correo y espere la respuesta.
- Intente contactar algún email válido descubierto y espere la respuesta
.png)
Tip
The Email Template also allows to attach files to send. If you would also like to steal NTLM challenges using some specially crafted files/documents read this page.
Landing Page
- Escriba un nombre
- Escriba el código HTML de la página web. Tenga en cuenta que puede importar páginas web.
- Marque Capture Submitted Data y Capture Passwords
- Establezca una redirección
.png)
Tip
Usually you will need to modify the HTML code of the page and make some tests in local (maybe using some Apache server) until you like the results. Then, write that HTML code in the box.
Note that if you need to use some static resources for the HTML (maybe some CSS and JS pages) you can save them in /opt/gophish/static/endpoint and then access them from /static/<filename>
Tip
For the redirection you could redirect the users to the legit main web page of the victim, or redirect them to /static/migration.html for example, put some spinning wheel (https://loading.io/) for 5 seconds and then indicate that the process was successful.
Users & Groups
- Establezca un nombre
- Importe los datos (tenga en cuenta que para usar la plantilla del ejemplo necesita el firstname, last name y email address de cada usuario)
.png)
Campaign
Finalmente, cree una campaña seleccionando un nombre, la plantilla de email, la landing page, la URL, el sending profile y el grupo. Tenga en cuenta que la URL será el enlace enviado a las víctimas
Tenga en cuenta que el Sending Profile permite enviar un correo de prueba para ver cómo quedará el phishing final:
.png)
Tip
I would recommend to send the test emails to 10min mails addresses in order to avoid getting blacklisted making tests.
Una vez que todo esté listo, ¡lance la campaña!
Website Cloning
Si por alguna razón desea clonar el sitio web revise la siguiente página:
Backdoored Documents & Files
En algunas evaluaciones de phishing (principalmente para Red Teams) también querrá enviar archivos que contengan algún tipo de backdoor (quizá un C2 o quizá solo algo que desencadene una autenticación).
Consulte la siguiente página para algunos ejemplos:
Phishing MFA
Via Proxy MitM
El ataque anterior es bastante inteligente ya que está falsificando un sitio web real y recopilando la información introducida por el usuario. Desafortunadamente, si el usuario no introdujo la contraseña correcta o si la aplicación que falsificó está configurada con 2FA, esta información no le permitirá suplantar al usuario engañado.
Aquí es donde herramientas como evilginx2, CredSniper y muraena son útiles. Esta herramienta le permitirá generar un ataque MitM. Básicamente, el ataque funciona de la siguiente manera:
- Usted suplanta el formulario de login de la página web real.
- El usuario envía sus credenciales a su página falsa y la herramienta las envía a la página real, comprobando si las credenciales funcionan.
- Si la cuenta está configurada con 2FA, la página MitM la solicitará y una vez que el usuario la introduzca la herramienta la enviará a la página web real.
- Una vez que el usuario está autenticado usted (como atacante) habrá capturado las credenciales, el 2FA, la cookie y cualquier información de cada interacción mientras la herramienta realiza el MitM.
Via VNC
¿Qué pasa si en lugar de enviar a la víctima a una página maliciosa con el mismo aspecto que la original, la envía a una sesión VNC con un navegador conectado a la página web real? Podrá ver lo que hace, robar la contraseña, el MFA usado, las cookies…
Puede hacer esto con EvilnVNC
Detecting the detection
Obviamente una de las mejores formas de saber si lo han descubierto es buscar su dominio en listas negras. Si aparece listado, de alguna manera su dominio fue detectado como sospechoso.
Una forma sencilla de comprobar si su dominio aparece en alguna blacklist es usar https://malwareworld.com/
Sin embargo, hay otras formas de saber si la víctima está buscando activamente actividad de phishing sospechosa en el entorno como se explica en:
Puede 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 usted conteniendo la keyword del dominio de la víctima. Si la víctima realiza cualquier tipo de interacción DNS o HTTP con ellos, sabrá que está buscando activamente dominios sospechosos y necesitará ser muy sigiloso.
Evaluate the phishing
Use Phishious para evaluar si su correo terminará en la carpeta de spam o si será bloqueado o exitoso.
High-Touch Identity Compromise (Help-Desk MFA Reset)
Los conjuntos de intrusión modernos cada vez más omiten los lures por correo y apuntan directamente al servicio de asistencia / workflow de recuperación de identidad para derrotar el MFA. El ataque es completamente “living-off-the-land”: una vez que el operador posee credenciales válidas pivotan con herramientas administrativas integradas – no se requiere malware.
Attack flow
- Recon de la víctima
- Recopile datos personales y corporativos de LinkedIn, brechas de datos, GitHub público, etc.
- Identifique identidades de alto valor (ejecutivos, IT, finanzas) y enumere el proceso exacto de help-desk para el reinicio de contraseña / MFA.
- Ingeniería social en tiempo real
- Llame por teléfono, Teams o chat al help-desk haciéndose pasar por el objetivo (a menudo con spoofed caller-ID o cloned voice).
- Proporcione la PII recopilada previamente para pasar la verificación basada en conocimiento.
- Convenza al agente de resetear el secreto MFA o realizar un SIM-swap en un número móvil registrado.
- Acciones inmediatas post-acceso (≤60 min en casos reales)
- Establezca un foothold a través de cualquier portal web SSO.
- Enumere AD / AzureAD con herramientas integradas (sin binarios descargados):
# list directory groups & privileged roles
Get-ADGroup -Filter * -Properties Members | ?{$_.Members -match $env:USERNAME}
# AzureAD / Graph – list directory roles
Get-MgDirectoryRole | ft DisplayName,Id
# Enumerate devices the account can login to
Get-MgUserRegisteredDevice -UserId <user@corp.local>
- Movimiento lateral con WMI, PsExec, o agentes legítimos RMM ya en la lista blanca del entorno.
Detection & Mitigation
- Trate la recuperación de identidad del help-desk como una operación privilegiada – requiera step-up auth & aprobación del manager.
- Despliegue reglas Identity Threat Detection & Response (ITDR) / UEBA que alerten sobre:
- Método MFA cambiado + autenticación desde un dispositivo / geo nuevo.
- Elevación inmediata del mismo principal (user-→-admin).
- Grabe las llamadas del help-desk y exija un callback a un número ya registrado antes de cualquier reset.
- Implemente Just-In-Time (JIT) / Privileged Access para que las cuentas recién reseteadas no hereden automáticamente tokens de alto privilegio.
At-Scale Deception – SEO Poisoning & “ClickFix” Campaigns
Grupos commodity compensan el coste de las operaciones high-touch con ataques masivos que convierten motores de búsqueda y redes de anuncios en el canal de entrega.
- SEO poisoning / malvertising coloca un resultado falso como
chromium-update[.]siteen los primeros anuncios de búsqueda. - La víctima descarga un pequeño first-stage loader (a menudo JS/HTA/ISO). Ejemplos observados por Unit 42:
RedLine stealerLumma stealerLampion Trojan
- El loader exfiltra cookies del navegador + bases de datos de credenciales, luego descarga un silent loader que decide – en tiempo real – si desplegar:
- RAT (p. ej. AsyncRAT, RustDesk)
- ransomware / wiper
- componente de persistencia (clave Run del registro + tarea programada)
Hardening tips
- Bloquee dominios recién registrados y aplique Advanced DNS / URL Filtering en search-ads así como en correo electrónico.
- Restrinja la instalación de software a paquetes MSI firmados / Store, niegue la ejecución de
HTA,ISO,VBSpor política. - Monitorice procesos hijos de navegadores que abren instaladores:
- parent_image: /Program Files/Google/Chrome/*
and child_image: *\\*.exe
- Cace LOLBins frecuentemente abusados por first-stage loaders (p. ej.
regsvr32,curl,mshta).
AI-Enhanced Phishing Operations
Los atacantes ahora encadenan LLM & voice-clone APIs para lures totalmente personalizados e interacción en tiempo real.
| Layer | Example use by threat actor |
|---|---|
| Automation | Generate & send >100 k emails / SMS with randomised wording & tracking links. |
| Generative AI | Produce one-off emails referencing public M&A, inside jokes from social media; deep-fake CEO voice in callback scam. |
| Agentic AI | Autonomously register domains, scrape open-source intel, craft next-stage mails when a victim clicks but doesn’t submit creds. |
Defence:
• Añada banners dinámicos que destaquen mensajes enviados por automatización no confiable (vía anomalías ARC/DKIM).
• Despliegue frases de desafío biométricas de voz para solicitudes telefónicas de alto riesgo.
• Simule continuamente lures generados por AI en los programas de concienciación – las plantillas estáticas están obsoletas.
See also – agentic browsing abuse for credential phishing:
Ai Agent Mode Phishing Abusing Hosted Agent Browsers
See also – AI agent abuse of local CLI tools and MCP (for secrets inventory and detection):
Ai Agent Abuse Local Ai Cli Tools And Mcp
MFA Fatigue / Push Bombing Variant – Forced Reset
Además de la clásica push-bombing, los operadores simplemente forzan un nuevo registro MFA durante la llamada al help-desk, anulando el token existente del usuario. Cualquier solicitud de inicio de sesión posterior aparecerá legítima para la víctima.
[Attacker] → Help-Desk: “I lost my phone while travelling, can you unenrol it so I can add a new authenticator?”
[Help-Desk] → AzureAD: ‘Delete existing methods’ → sends registration e-mail
[Attacker] → Completes new TOTP enrolment on their own device
Monitorea eventos de AzureAD/AWS/Okta donde deleteMFA + addMFA ocurren en cuestión de minutos desde la misma IP.
Clipboard Hijacking / Pastejacking
Los atacantes pueden copiar silenciosamente comandos maliciosos en el portapapeles de la víctima desde una página web comprometida o typosquatted y luego engañar al usuario para que los pegue en Win + R, Win + X o en una ventana de terminal, ejecutando código arbitrario sin necesidad de ninguna descarga ni adjunto.
Mobile Phishing & Malicious App Distribution (Android & iOS)
Mobile Phishing Malicious Apps
Mobile‑gated phishing to evade crawlers/sandboxes
Los operadores cada vez más colocan sus flujos de phishing detrás de una comprobación simple del dispositivo para que los crawlers de escritorio nunca lleguen a las páginas finales. Un patrón común es un pequeño script que prueba si el DOM es touch-capable y publica el resultado en un endpoint del servidor; los clientes no móviles reciben HTTP 500 (o una página en blanco), mientras que a los usuarios móviles se les sirve el flujo completo.
Fragmento mínimo del cliente (lógica típica):
<script src="/static/detect_device.js"></script>
detect_device.js lógica (simplificada):
const isMobile = ('ontouchstart' in document.documentElement);
fetch('/detect', {method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify({is_mobile:isMobile})})
.then(()=>location.reload());
Comportamiento del servidor observado con frecuencia:
- Establece una cookie de sesión durante la primera carga.
- Acepta
POST /detect {"is_mobile":true|false}. - Responde con 500 (o marcador de posición) a los GET posteriores cuando
is_mobile=false; sirve phishing solo sitrue.
Heurísticas de búsqueda y detección:
- Consulta urlscan:
filename:"detect_device.js" AND page.status:500 - Telemetría web: secuencia de
GET /static/detect_device.js→POST /detect→ HTTP 500 para no‑móvil; las rutas legítimas de víctimas móviles devuelven 200 con HTML/JS posterior. - Bloquee o examine detenidamente las páginas que condicionan el contenido exclusivamente en
ontouchstartu otras comprobaciones de dispositivo similares.
Consejos de defensa:
- Ejecute crawlers con fingerprints tipo móvil y JS habilitado para revelar contenido restringido.
- Alerte sobre respuestas 500 sospechosas tras
POST /detecten dominios recién registrados.
Referencias
- https://zeltser.com/domain-name-variations-in-phishing/
- https://0xpatrik.com/phishing-domains/
- https://darkbyte.net/robando-sesiones-y-bypasseando-2fa-con-evilnovnc/
- https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy
- 2025 Unit 42 Global Incident Response Report – Social Engineering Edition
- Silent Smishing – mobile-gated phishing infra and heuristics (Sekoia.io)
Tip
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)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
HackTricks

