Técnicas de ofuscación de URL: cómo los atacantes ocultan destinos maliciosos
Los atacantes rara vez envían URLs de phishing en texto plano. En su lugar, aplican una o varias técnicas de ofuscación para que el enlace parezca inofensivo ante los filtros de seguridad y los ojos del usuario. Conocer estas técnicas es el primer paso para no caer en la trampa.
1. Percent-encoding (codificación porcentual)
El estándar de URLs permite representar cualquier carácter mediante el símbolo % seguido de su valor hexadecimal. Esta técnica tiene usos legítimos —codificar espacios o caracteres especiales— pero los atacantes la usan para disfrazar el nombre del dominio.
%2F=/%40=@%70%61%79%70%61%6C=paypal
Ejemplo: https://%70%61%79%70%61%6C.verify-account.xyz/login. El navegador decodifica esto automáticamente antes de conectarse, pero un filtro de texto simple no detecta la palabra "paypal" en la URL.
2. Hex encoding en el dominio
Similar al percent-encoding, algunos atacantes usan la representación hexadecimal de la IP para eludir listas de bloqueo:
http://0xB9FAD74Eequivale a una dirección IP numérica concreta.
Los navegadores resuelven estos formatos, pero los usuarios no los reconocen como destinos conocidos.
3. Unicode escapes (\u y \x)
En contextos JavaScript o en algunos clientes de correo, los caracteres se pueden expresar como secuencias \uXXXX o \xXX. Por ejemplo, paypal produce "paypal". Este método se usa para insertar URLs maliciosas en scripts ofuscados adjuntos a correos o páginas web.
4. Base64 en parámetros de URL
Una URL de phishing completa se codifica en Base64 y se pasa como valor de un parámetro aparentemente inofensivo:
https://empresa-legitima.com/redirect?goto=aHR0cHM6Ly9waGlzaGluZy54eXov
El string Base64 es ilegible a simple vista y muchos filtros no lo analizan. Al decodificarlo, revela la URL de phishing real. Más detalles: URLs en Base64 explicadas.
5. HTML entities
Los caracteres HTML se pueden expresar como entidades numéricas o con nombre. Por ejemplo, p representa la letra "p". En el cuerpo de un correo HTML, un atacante puede escribir una URL usando entidades para que el texto visible no coincida con lo que escanea un filtro de texto plano.
6. Doble codificación
El atacante aplica dos o más capas de codificación sucesivas. Por ejemplo, primero codifica la URL en Base64 y luego aplica percent-encoding sobre el resultado. Los filtros que solo decodifican una capa no llegan a ver la URL maliciosa real.
2check.click aplica hasta tres capas de decodificación recursiva para exponer el destino real.
7. Dirección IP en lugar de dominio
Sustituir el nombre de dominio por una dirección IP numérica (http://185.220.101.32/login) evita cualquier comprobación basada en el nombre del dominio. Las empresas legítimas nunca envían enlaces con IPs directas a sus clientes.
Señales de alerta
- Muchos caracteres
%en el nombre del dominio (no en la ruta o los parámetros). - Strings largos de letras y números en parámetros como
url=,redirect=ogoto=. - URL que contiene otra URL codificada dentro de sus parámetros.
- Dirección IP en lugar de un nombre de dominio reconocible.
- Caracteres
\uo\xvisibles en el texto del enlace.
Compruebe un enlace sospechoso
Pegue una URL, mensaje o código QR en 2check.click para analizar el destino, redirecciones, antigüedad del dominio y otras señales de phishing.
Preguntas frecuentes
¿Todas las URLs codificadas son peligrosas?
No. El encoding es parte normal del estándar web y aparece en búsquedas, formularios y muchos enlaces legítimos. El problema surge cuando se usa para ocultar el nombre del dominio en sí o para esconder una URL de phishing dentro de un parámetro.
¿Puede un usuario normal detectar estas técnicas?
Algunas de forma aislada, sí. Pero cuando se combinan varias capas de ofuscación, resulta muy difícil sin una herramienta automatizada. 2check.click decodifica automáticamente todas estas técnicas.
¿El navegador no decodifica todo antes de mostrar la página?
El navegador decodifica la URL antes de conectarse, pero eso no protege al usuario: ya habrá hecho clic. El objetivo de analizar la URL antes de hacer clic es detectar el destino real sin visitarlo.
¿Qué es la doble codificación y por qué es especialmente peligrosa?
La doble codificación aplica dos o más capas sucesivas de encoding. Muchos filtros de seguridad solo decodifican una capa; la segunda capa oculta la URL maliciosa de esos filtros.
¿Cómo sé si un parámetro de URL contiene Base64?
Los strings Base64 tienen una longitud divisible por 4 y contienen solo letras, números, +, / y a veces terminan en = o ==. Si ve eso como valor de un parámetro url= o redirect=, es una señal de alerta.