“Cache smuggling”: el nuevo truco del phishing que esconde malware en la caché del navegador y ya no necesita descargar nada

Un viejo consejo de seguridad vuelve a estar de moda: no copies ni pegues comandos que te diga una web. La advertencia cobra sentido con una campaña reciente que ha puesto al día la estafa ClickFix —esa que invita al usuario a copiar un texto y pegarlo en el Explorador de Windows o en el cuadro Ejecutar— añadiéndole un giro inquietante: “cache smuggling”, o cómo introducir en el equipo un fichero malicioso sin descargarlo de forma explícita, camuflándolo como una imagen más en la caché del navegador.

La investigación, difundida por el analista Marcus Hutchins en el blog de la firma de threat intel Expel, describe un señuelo que se presenta como un “Fortinet VPN Compliance Checker”. A primera vista, todo parece legítimo: la página usa marca y estética de un fabricante real, muestra un campo con una ruta de red que suena corporativa (\\Public\Support\VPN\ForticlientCompliance.exe) y pide al usuario que la copie en el Explorador para “abrir el verificador”. Pero lo que realmente se copia en el portapapeles no es esa ruta: es un comando de PowerShell, oculto detrás de 139 espacios y un comentario que imita la ruta de red. Cuando el usuario lo pega y pulsa Enter, el script se ejecuta invisiblemente a través de conhost.exe --headless.

La novedad es que ese script no descarga nada de Internet. Lo que hace es leer la caché de Chrome, extraer de ella un bloque de datos previamente “colado” como si fuese una imagen JPEG, reconstruir con esos datos un ZIP, descomprimirlo y, finalmente, lanzar un ejecutable malicioso. Todo esto, sin que se produzca una descarga observable ni una conexión saliente desde PowerShell: para muchos antivirus y proxys tradicionales, no ha ocurrido nada raro.


Cómo funciona el señuelo: ingeniería social con truco de portapapeles

Los atacantes publicitaron en X (antes Twitter) una utilidad de “comprobación de cumplimiento VPN” de Fortinet. La página, aún accesible vía IP durante el análisis, estaba vinculada a un dominio ya inactivo (fc-checker[.]dlccdn[.]com). La diana parece clara: entornos corporativos que usan clientes VPN para teletrabajo.

En pantalla, el usuario ve un campo de texto con la ruta \\Public\Support\VPN\ForticlientCompliance.exe y un botón “Open File Explorer”. Tanto si hace clic en el campo como si pulsa el botón, la página escribe automáticamente en el portapapeles una cadena mucho más larga que empieza por 139 espacios en blanco, sigue con una línea de PowerShell y termina con un comentario donde repite, a modo de despiste, la ruta de red esperada (# \\Public\Support\VPN\ForticlientCompliance.exe). Al pegar en la barra de direcciones del Explorador, Windows salta al final de la línea, mostrando solo la parte visible (el “comentario”) y ocultando el comando real.

Ese comando lanza PowerShell “sin cabeza” con conhost.exe --headless y ejecuta un script que:

  1. Crea un directorio temporal: %LOCALAPPDATA%\FortiClient\compliance.
  2. Copia allí el contenido de la caché de Chrome: %LOCALAPPDATA%\Google\Chrome\User Data\Default\Cache\Cache_Data\.
  3. Itera por los ficheros copiados, leyéndolos como texto.
  4. Busca mediante una expresión regular un bloque de datos encapsulado entre dos marcadores especiales: bTgQcBpv y mX6o0lBw.
  5. Escribe ese bloque en ComplianceChecker.zip, lo descomprime y ejecuta FortiClientComplianceChecker.exe.

¿Qué hay en ese ZIP y de dónde sale? Ahí entra en juego el cache smuggling.


“Cache smuggling”: esconder un ZIP dentro de una “imagen” que el navegador guardará solo

Para acelerar la navegación, los navegadores guardan en caché recursos estáticos (logos, hojas de estilo, scripts), de modo que no se descarguen cada vez. El señuelo abusa de este comportamiento: en su código fuente, incluye un fetch() a la ruta /5b900a00-71e9-45cf-acc0-d872e1d6cdaa, cuyo servidor responde con un archivo marcado como Content-Type: image/jpeg. El navegador, obediente, lo descarga y lo almacena en caché como si fuera un JPG.

Pero no es un JPG. Si se abre en un hex editor, no se ve la cabecera de imagen; sí aparecen los marcadores bTgQcBpvmX6o0lBw y, justo después del primero, las letras “PK” que identifican un ZIP. En resumen: la página web introduce un ZIP en el disco del usuario disfrazándolo de imagen para que el navegador lo cachee. El script de PowerShell, por su parte, extrae de esa caché el bloque de datos delimitado por los marcadores, reconstruye el ZIP y lo ejecuta. No hay descargas visibles, no hay tráfico desde el script: la telemetría de red ve una imagen más y la defensa que inspecciona “ficheros descargados” no detecta nada.

Así es como el malware consigue “colar” un archivo en el sistema sin descargarlo de manera convencional. La técnica no es totalmente nueva, pero sí poco común y, sobre todo, eficaz frente a capas de seguridad que dependen de ver descargas o llamadas web desde PowerShell.


Paso a paso de la cadena de ataque (resumen técnico)

  1. Usuario visita un señuelo con marca Fortinet (“VPN Compliance Checker”).
  2. La página copia al portapapeles un comando de PowerShell oculto con espacios y un comentario.
  3. Usuario pega en la barra del Explorador y ejecuta: se invoca conhost.exe --headless powershell -c "...script...".
  4. PowerShell crea carpeta y copia la caché de Chrome.
  5. Busca en esos ficheros el bloque entre bTgQcBpv y mX6o0lBw, lo escribe como ZIP, descomprime y lanza un ejecutable.
  6. No hay descargas visibles ni HTTP desde PowerShell: el ZIP ya estaba en el disco, oculto dentro de un “image/jpeg” cacheado.

¿Por qué esquiva tantas defensas?

  • Sin “descarga”: el archivo viaja como imagen; la DLP o el proxy que analizan “descargas” de ejecutables no ven nada.
  • Sin llamadas web desde PowerShell: muchas reglas buscan Invoke-WebRequest, curl o sockets; aquí no existen.
  • Proceso padre “limpio”: el comando cuelga de conhost.exe (con flag --headless) y el usuario cree haber abierto una ruta de red normal.
  • Ingeniería social “silenciosa”: mostrar una ruta y pedir que la copien parece menos sospechoso que descargar un “.exe”.
  • Evasión de listas: los dominios pueden ser nuevos o rotar; el contenido va como image/jpeg, un tipo permitido casi en cualquier política.

A quién apunta y qué pretende

El señuelo usa la marca Fortinet y habla de “Compliance Checker” para VPN corporativa. Esto sugiere una diana empresarial: empleados con equipos Windows, acceso remoto y hábitos de trabajo híbrido. El objetivo más probable es ganar primera persistencia dentro de la red para, más tarde, elevar privilegios, moverse lateralmente o cargar carga útil más evasiva (el propio Hutchins adelanta que habrá “segunda parte” sobre shellcode cargado por un ejecutable firmado).


Señales para reconocerlo (y no caer)

  • Te piden copiar y pegar una ruta en la barra del Explorador o el cuadro “Ejecutar” (Win+R).
  • El campo de texto de la web parece una ruta, pero al hacer clic se llena tu portapapeles automáticamente.
  • La página imita una marca conocida (Fortinet, y podría ser Microsoft, Cisco, etc.) y habla de un “compliance checker” o “security scan”.
  • No hay descarga visible; todo ocurre tras pegar el texto en el Explorador.

Regla de oro: ningún proveedor serio te pedirá pegar comandos desde una web en tu Explorador/PowerShell. Nunca lo hagas.


Qué deben hacer las empresas (controles prácticos)

  1. Alertar cuando procesos tocan la caché del navegador (Chrome/Edge/Firefox). Una regla EDR que dispare cuando conhost.exe/powershell.exe enumeran o leen Cache_Data ayuda a detectar este patrón.
  2. Restringir PowerShell a quien de verdad lo necesite (AppLocker/WDAC) y aplicar Constrained Language Mode donde proceda.
  3. Monitorizar la línea de mando: bloqueos o alertas cuando powershell.exe arranca con -c y --headless, o invocado por conhost.exe fuera de terminales legítimas.
  4. Bloqueo DNS/HTTP de dominios recién creados y TLDs sospechosos; listas dinámicas y inspección de tráfico “image/jpeg” de orígenes no confiables.
  5. Proxies seguros / SWG con reglas que extraigan y analicen cuerpos de respuestas supuestamente “imagen”, buscando cabeceras ZIP (PK) o firmas delimitadas por marcadores.
  6. Concienciación: una píldora específica sobre ClickFix (copiar/pegar comandos) reduce muchísimo la tasa de éxito.
  7. Higiene de navegadores: limitar plugins, forzar actualizaciones, acotar el caché por política y limpiar al cierre de sesión en puestos de alto riesgo.
  8. Límites de ejecución: bloquear expansión de archivos y ejecución desde rutas de perfil de usuario (%LOCALAPPDATA%) salvo excepciones justificadas.
  9. Telemetría 24/7: correlacionar evento de portapapeles desde navegador + invocación de conhost/headless + acceso a caché = alto riesgo.
  10. Plan de respuesta: si se detecta, aislar host, hunting en cachés, revisar %LOCALAPPDATA%\FortiClient\compliance (o rutas análogas) y buscar ejecutables o .zip anómalos.

Qué puede hacer un usuario (sin ser técnico)

  • No pegues comandos de webs en el Explorador, el cuadro Ejecutar o PowerShell. Si el “soporte” lo pide, llama por teléfono al número del proveedor (no al del correo/web).
  • Revisa la barra: si ves una ruta, selecciónala entera tras pegar; si aparecen espacios infinitos o texto que no esperas, cancela.
  • Mantén el navegador al día y considera limpiar la caché si has visitado páginas raras.
  • Activa el antivirus y, si notas algo extraño, desconecta el equipo de la red y pide ayuda a TI.

Por qué esto marca un antes y un después

Durante años, muchas defensas se han apoyado en dos señales fuertes: “descargas” de ficheros y “conexiones” desde scripts sospechosos. El cache smuggling ataca el hueco entre ambas: el navegador descarga un “image/jpeg” inofensivo y PowerShell jamás toca Internet. Es una prueba de concepto elegante —y preocupante— de hacia dónde evolucionan los atacantes: menos ruido, más abuso de componentes legítimos y más confianza en que la ingeniería social hará el resto.

La buena noticia: se puede detectar. La combinación de telemetría de procesos, reglas sobre caché, bloqueos DNS y concienciación derriba gran parte del truco. Y, como siempre, la mejor defensa es cortar en origen: que nadie pegue un comando de una web en su Explorador.


Preguntas frecuentes

¿Qué es exactamente “cache smuggling” en ciberseguridad?
Es una técnica que esconde datos maliciosos dentro de un recurso que el navegador almacena en caché (por ejemplo, una “imagen”), de modo que el fichero ya está en el disco sin que haya una descarga visible. Un script local (PowerShell en este caso) extrae ese bloque de la caché y lo ejecuta, sin hacer llamadas web.

¿Cómo puedo saber si he sido víctima del truco ClickFix con cache smuggling?
Señales típicas: recuerdas haber pegado una ruta desde una web en el Explorador o en Win+R; al poco, el equipo se comporta raro; el EDR avisa de conhost.exe --headless powershell; aparece una carpeta como %LOCALAPPDATA%\FortiClient\compliance con un .zip creado recientemente. Si sospechas, desconecta de la red y llama a TI.

¿Puede mi antivirus detenerlo si no hay descargas “visibles”?
Sí, si cuenta con EDR/behavioural que vigile procesos tocando cachés de navegador, llamadas a Expand-Archive y ejecución desde rutas de usuario. Los antivirus basados solo en firmas o “descargas” lo tienen más difícil.

¿Qué medidas básicas puede aplicar una pyme sin gran presupuesto?
Restringir PowerShell a administradores, bloquear ejecución desde %LOCALAPPDATA%, usar un DNS filtrado (con listas de dominios nuevos/ sospechosos), formar a empleados sobre ClickFix y revisar logs con una alerta simple: “procesos no navegador accediendo a caché”.


Mensaje final: si una web te “ayuda” copiando una ruta al portapapeles y te pide pegarla en el Explorador, desconfía. Ese texto puede esconder un PowerShell que, gracias a cache smuggling, no descargará nada… porque lo tuvo siempre delante, guardado como una falsa imagen. Con una pizca de escepticismo y controles sencillos, esta trampa pierde toda su magia.

vía: expel

Scroll al inicio