Un pequeño icono en la barra del navegador. Una imagen aparentemente inocente, reconocible, diseñada para transmitir confianza. Ese es, para el usuario, el único rostro visible de una extensión de Firefox. Pero en al menos 17 complementos populares, ese simple archivo PNG escondía algo mucho más preocupante: un sistema completo de malware capaz de espiar la navegación, desactivar las protecciones de seguridad del navegador y abrir una puerta trasera para ejecutar código remoto.
La campaña, bautizada como GhostPoster por los investigadores de Koi Security, ha comprometido a más de 50.000 usuarios mediante una técnica tan ingeniosa como peligrosa: ocultar código malicioso dentro del propio logotipo de la extensión, utilizando esteganografía para burlar los controles de las tiendas oficiales y los motores de análisis estático.
El logo que ejecutaba código
La investigación comenzó cuando el motor de detección de comportamiento de Koi, denominado Wings, detectó actividad anómala en una extensión llamada Free VPN Forever, disponible en el repositorio oficial de Firefox desde septiembre de 2025 y con más de 16.000 instalaciones. A primera vista, la extensión hacía lo que prometía: ofrecer una VPN gratuita al usuario. Sin embargo, al analizar su funcionamiento interno, los investigadores observaron algo inusual.
El complemento cargaba su propio archivo logo.png, una operación completamente normal. Lo extraño era que, en lugar de limitarse a mostrar la imagen, el código recorría los bytes del archivo en busca de un marcador concreto: la secuencia ===. Todo lo que aparecía a partir de ese punto no pertenecía a la imagen, sino que correspondía a código JavaScript oculto.
El logotipo funcionaba así como un contenedor de malware. Tras los datos visuales, invisibles para el usuario y para la mayoría de los escáneres, se escondía un fragmento de programa que era extraído y ejecutado cada vez que se iniciaba la extensión. Una aplicación directa de esteganografía, una técnica clásica para ocultar información dentro de archivos aparentemente inocuos.
Carga por etapas y evasión deliberada
El código embebido en el PNG no era aún el núcleo del ataque, sino un loader, un cargador cuya única misión era descargar el verdadero payload desde servidores remotos. Para ello, contactaba con dominios controlados por los atacantes, principalmente www.liveupdt[.]com y, como respaldo, www.dealctr[.]com, incluyendo parámetros que permitían identificar a cada víctima.
La comunicación, no obstante, estaba diseñada para ser intermitente. El loader solo intentaba contactar con el servidor cada 48 horas y, aun así, solo descargaba la carga útil en el 10 % de los intentos. En el 90 % restante, simplemente no ocurría nada. Esta aleatoriedad hacía extremadamente difícil que un analista capturase tráfico malicioso durante una ventana de observación corta.
Cuando finalmente se descargaba el payload, este llegaba fuertemente ofuscado. Primero se aplicaba un cifrado elemental —intercambio de mayúsculas y minúsculas, sustitución de determinados caracteres y decodificación Base64— y después un cifrado XOR con una clave derivada del identificador único de la extensión en tiempo de ejecución. El resultado se almacenaba en el propio navegador, garantizando persistencia y dificultando su inspección.
Un arsenal para monetizar y vigilar
Una vez descifrado y ejecutado, el malware desplegaba un conjunto de funcionalidades orientadas tanto al fraude como a la vigilancia masiva:
Secuestro de enlaces de afiliación.
El código monitorizaba las visitas a grandes plataformas de comercio electrónico. Cuando el usuario accedía a un producto a través de un enlace de afiliado legítimo, la extensión interceptaba la URL y sustituía el identificador por el de los atacantes. El usuario llegaba al mismo destino, realizaba la compra sin notar nada extraño, pero la comisión acababa en manos de la infraestructura criminal.
Inyección de rastreadores.
El malware insertaba de forma sistemática código de Google Analytics, utilizando el identificador UA-60144933-8, junto con elementos ocultos en el DOM de las páginas. Estos componentes registraban la fecha de instalación, el tiempo de infección, los sitios visitados y un identificador único del navegador, permitiendo perfilar al usuario de forma persistente.
Desmantelamiento de defensas del navegador.
La extensión eliminaba cabeceras de seguridad críticas como Content-Security-Policy y X-Frame-Options en todas las respuestas HTTP. Estas políticas son esenciales para prevenir ataques de cross-site scripting y clickjacking. Al suprimirlas, el navegador quedaba deliberadamente debilitado frente a futuras explotaciones.
Bypass de sistemas CAPTCHA.
Para automatizar ciertas operaciones sin ser detectado como bot, el malware incorporaba varios métodos de evasión de CAPTCHA: simulación de interacción humana mediante capas invisibles, carga de solucionadores externos desde refeuficn.github.io y verificación indirecta aprovechando sesiones activas en servicios como Baidu.
Inyección de iframes invisibles.
Finalmente, el código creaba iframes ocultos que cargaban recursos desde servidores controlados por los atacantes. Estos iframes, activos solo durante breves intervalos, servían para fraude publicitario, generación de tráfico artificial y nuevos mecanismos de seguimiento, todo ello sin dejar rastro visible.
































