Más de 20 sitios web gubernamentales secuestrados se convirtieron en un canal de ataque – CYBERDEFENSA.MX

Más de 20 sitios web del gobierno brasileño fueron secuestrados y convertidos en canales de distribución de malware en una actividad activa. FantasmaEnigma campaña descubierta por CUALQUIER EJECUCIÓNun proveedor líder de análisis interactivo de malware y soluciones de inteligencia de amenazas.

La investigación reveló un comportamiento de puerta trasera no documentado anteriormente, relaciones de infraestructura ocultas y múltiples armas de ataque detrás de una campaña que pone en riesgo a bancos y agencias públicas.

Al conectar cientos de sesiones de pruebas aparentemente no relacionadas, los investigadores de ANY.RUN expusieron el alcance más amplio de la operación y mostraron cómo los enlaces confiables .gov.br y los correos electrónicos autenticados ayudaron a que la actividad permaneciera oculta.

Para obtener el análisis técnico completo, los detalles de la infraestructura, los indicadores y la guía de detección, lea el informe completo de la investigación de PhantomEnigma

La infraestructura gubernamental confiable se convirtió en el atractivo

El ataque comenzó con documentos policiales falsos presentados como avisos oficiales del “Ofício Polícia Civil” o de la “Procuração Digital”. Algunos contenían códigos QR, mientras que otros dirigían a los destinatarios a enlaces diseñados para parecerse a recursos gubernamentales legítimos.

Documento falso con temática policial analizado dentro del sandbox de ANY.RUN para una visibilidad completa del ataque PhantomEnigma

En varios casos, los correos electrónicos se enviaron a través de buzones de correo comprometidos y pasaron las comprobaciones SPF, DKIM y DMARC. Eso dio a los mensajes una apariencia de legitimidad más fuerte que los correos electrónicos de phishing falsificados ordinarios.

Luego, las víctimas eran redirigidas a través de hosts .gov.br comprometidos o dominios similares con temas policiales antes de llegar al instalador malicioso. Los sistemas gubernamentales se utilizaron como infraestructura de entrega confiable, no necesariamente como objetivos finales de la campaña.

Anfitriones gubernamentales observados

Entre los sistemas comprometidos observados durante la investigación se encuentran timon.ma.gov[.]br, loginam.sesp.es.gov[.]br (seguridad pública estatal), aplicacao.cbm.mt.gov[.]br (departamento de bomberos), prodoc.ap.gov[.]br, y otros.

Consulta de búsqueda de TI que involucra hosts gubernamentales comprometidos

Estos portales legítimos municipales, de seguridad pública y judiciales se utilizaron en diferentes etapas de la cadena de entrega. Varios también aparecieron en más de un brazo de ataque de PhantomEnigma, lo que ayudó a los investigadores a conectar actividades que inicialmente no parecían relacionadas.

La evolución de PhantomEnigma: dos caminos hacia una detección más difícil

Cronología de la actividad maliciosa de PhantomEnigma

La línea de tiempo muestra una operación que evoluciona a lo largo de dos caminos principales:

Entrega: PhantomEnigma pasó de una actividad centrada en la banca en 2025 a abusar de sitios web y cuentas de correo electrónico .gov.br comprometidos en 2026. Esto le dio a la campaña una ruta más confiable hacia las víctimas sin confirmar un nuevo grupo objetivo.

Arsenal: El malware evolucionó desde un banco de extensiones de navegador hasta una puerta trasera modular Inno/Node.js capaz de ejecutar JavaScript y entregar cargas útiles adicionales.

Para los equipos de seguridad, esta combinación crea una grave brecha de visibilidad. La infraestructura confiable reduce las sospechas, las cargas útiles modulares pueden cambiar después de la infección y los dominios C2 rotativos rápidamente hacen que las listas de bloqueo estáticas queden obsoletas. El análisis de comportamiento y la búsqueda continua de amenazas brindan una cobertura más confiable a medida que evoluciona la campaña.

Del correo electrónico confiable al compromiso total: la cadena de ataque PhantomEnigma

El proceso de análisis de PhantomEnigma dentro del sandbox interactivo

Una vez que una víctima interactuaba con el señuelo, la campaña avanzaba a través de una cadena de infección de varias etapas:

  1. Correo electrónico de phishing: Un señuelo falso con temática policial o documento oficial llega a la víctima.
  2. Infraestructura confiable: El enlace redirige a través de un servidor gubernamental comprometido o un dominio similar con temática policial.
  3. Instalador malicioso: Un Inno Setup, MSI u otro instalador inicia la infección.
  4. Aplicación de electrones parcheada: El software legítimo carga una puerta trasera index.js maliciosa.
  5. Activación de puerta trasera: El malware recopila datos del sistema, establece persistencia y se conecta a la infraestructura C2 rotativa.
  6. Entrega de segunda etapa: La puerta trasera ejecuta JavaScript o entrega ladrones, cargadores, software RMM y otro malware.
  7. Impacto empresarial: La infección puede provocar el compromiso de las credenciales, el acceso no autorizado, el fraude, la exposición de los datos y la interrupción operativa.

Lo que los investigadores encontraron dentro de la puerta trasera de PhantomEnigma

Las sesiones de sandbox expusieron más que un simple descargador. Escondido dentro de un Boostnote parcheado y otras aplicaciones había una puerta trasera modular index.js creada para identificar máquinas infectadas, mantener el acceso y entregar diferentes cargas útiles bajo demanda.

Una vez activada, la puerta trasera podría:

  • Recopile el nombre de la computadora, el nombre de usuario y los detalles del sistema de la víctima.
  • Cree una ID de máquina persistente y lea una etiqueta de campaña almacenada junto al instalador.
  • Establezca persistencia a través de la configuración de inicio de sesión
  • Busque nuevos comandos cada 180 segundos
  • Ejecute JavaScript directamente a través de eval()
  • Descargue y ejecute cargas útiles ejecutables
  • Comunicarse a través de múltiples formatos de baliza en infraestructura rotativa

Este diseño modular permite al operador cambiar la carga útil final sin reconstruir toda la cadena de infección. Un sistema inicialmente expuesto al mismo instalador podría recibir más tarde un ladrón, un cargador, una herramienta de administración remota u otro ejecutable, lo que dificulta tanto la detección como la contención.

Una advertencia para bancos y agencias públicas

PhantomEnigma muestra cómo los atacantes pueden convertir una infraestructura confiable en una ventaja de detección. Un dominio gubernamental legítimo, un correo electrónico autenticado o un veredicto de archivo limpio pueden reducir las sospechas incluso cuando la cadena de infección ya está activa.

Para los bancos y las organizaciones del sector público, el riesgo se extiende más allá de un punto final comprometido. Las credenciales robadas y el acceso persistente por puerta trasera pueden exponer los sistemas internos, los datos confidenciales y las operaciones financieras, mientras que las alertas fragmentadas retrasan la contención.

Los equipos de seguridad deben brindar a los empleados una forma segura de denunciar mensajes sospechosos que parezcan oficiales e investigarlos más allá del veredicto inicial. Detectar temprano el señuelo confiable puede evitar el robo de credenciales, la entrega de carga útil adicional y un incidente operativo más amplio.

Obtenga IOC de PhantomEnigma, hallazgos de infraestructura y orientación de detección para fortalecer la búsqueda y respuesta a amenazas.

Acceder al informe completo

¿Encontró interesante este artículo? Este artículo es una contribución de uno de nuestros valiosos socios. Síguenos en noticias de google, Gorjeo y LinkedIn para leer más contenido exclusivo que publicamos.

Paquetes de 148 npm disfrazados de servidores proxy para estudiantes convirtieron los navegadores en una botnet DDoS – CYBERDEFENSA.MX

Una campaña de paquetes de 148 npm disfrazados de servidores proxy web para estudiantes convirtió los navegadores de los visitantes en una botnet distribuida de denegación de servicio durante aproximadamente dos semanas en mayo, según una nueva investigación de JFrog.

Los paquetes no perseguían a los desarrolladores que podrían instalarlos. Los operadores utilizaron el registro como alojamiento gratuito para un sitio proxy con trampa explosiva y dejaron que los estudiantes que vinieron a esquivar los filtros web de la escuela suministraran el tráfico de ataque.

Los paquetes se enviaron con nombres como charlie-kirk, ilovefemboys y miguelphonk, cada uno con una aplicación proxy con la marca «Lucide» y vestida como una página de inicio de tutoría llamada Riverbend Tutoring o Northstar Tutoring.

En la superficie, el proxy funcionó, permitiendo a los estudiantes pasar los filtros de contenido para acceder a juegos y sitios bloqueados. Debajo, cargó un cargador de código remoto cuya carga útil los operadores podían intercambiar a voluntad, además de un generador de inundación WebSocket creado para hablar el protocolo proxy Wisp. Cualquiera que abriera una página se unía al enjambre sin saberlo.

Nada de esto se ejecuta en el momento de la instalación. Los paquetes no incluyen enlaces de ciclo de vida ni scripts de compilación nativos, y nunca fueron escritos para ser importados a un proyecto.

El gusano Shai-Hulud autorreplicante que afectó a más de 500 paquetes en septiembre de 2025 recopiló secretos de los desarrolladores y se volvió a publicar con tokens robados. Días antes, un ataque de phishing al mantenedor conocido como qix deslizó código de drenaje de billetera en chalk, debug y otros 16 paquetes con miles de millones de descargas semanales entre ellos.

Ciberseguridad

Esos ataques se activan en el momento en que se instala un paquete y se dirigen a las personas que crean el software. Éste omite el proceso de compilación y espera en una pestaña del navegador.

Un anterior aviso de SafeDep catalogó 141 de los paquetes en mayo y leyó la operación como adware y abuso de registro: anuncios popunder, scripts de monetización de terceros y seguimiento de Google Analytics incorporados en un proxy Scramjet dirigido a estudiantes. Eso se mantuvo en lo que era visible en la superficie.

JFrog tiró del hilo más. El equipo desofuscó el paquete de entrada de la aplicación, una sola línea de JavaScript de 5,4 MB que se descomprimió en más de 20.600 líneas de código legible, y recuperó cargas útiles archivadas de Wayback Machine para reconstruir la línea de tiempo de la campaña.

Dos módulos se encontraban debajo del adware y ambos se activaban antes de que se renderizara la interfaz de React.

El primero, que JFrog llama G2es un cargador de scripts remoto y recupera el código de la forma más insegura posible. Extrae JavaScript de un repositorio de GitHub a través de la CDN jsDelivr, apunta a la rama principal mutable en lugar de una confirmación fijada, no incluye verificación de integridad de subrecursos y ejecuta todo lo que regresa con los propios privilegios de origen del sitio proxy: acceso completo a cookies, almacenamiento local y puntos finales del mismo origen.

Una política de no referencia evita que la solicitud anuncie su procedencia. Quien tenga la cuenta de GitHub detrás de ella puede cambiar el código que se ejecuta en el navegador de cada visitante cuando lo desee.

Red de robots DDoS

El repositorio devolvía un 404 cuando JFrog lo miró, pero una copia archivada del 30 de mayo conservaba lo que había servido: una burda inundación HTTP. Cada 500 milisegundos, el script crea una nueva cadena de un millón de caracteres y la activa como un POST sin cors en cdn.caan.edu, que JFrog identifica como el dominio público de una escuela de enfermería en Matteson, Illinois.

Las solicitudes nunca esperan una respuesta, por lo que se acumulan. JFrog registra cada visitante activo a aproximadamente 2 MB por segundo de carga, lo que significa que mil pestañas proxy abiertas empujarían alrededor de 2 GB por segundo al objetivo. Un parámetro de consulta aleatorio anula el almacenamiento en caché de los servidores proxy y no-cors omite la verificación previa de CORS, por lo que nada limita los paquetes.

El segundo módulo, I2es el más agudo. Obtiene un archivo de texto sin formato, websocket.txt, que contiene una URL de WebSocket de destino y un recuento de sockets limitado entre 1 y 1024, luego abre esa cantidad de conexiones en un bucle escalonado. La configuración archivada apuntó a cada navegador a 30 conexiones a un punto final Wisp en lunaron[.]arriba, un proxy en vivo ocupado inyectando publicidad maliciosa.

Jirón es un protocolo de Mercury Workshop de bajo costo para hacer túneles de muchos sockets TCP y UDP a través de un único WebSocket, y es una plomería común en la misma escena de proxy de navegador que estos paquetes imitan.

Una vez conectado, cada navegador configura su socket en modo binario y, cada 100 milisegundos, envía una trama Wisp CONNECT válida seguida de una trama CLOSE, ambas apuntando a localhost:1. Los fotogramas son paquetes Wisp little-endian correctos, por lo que el objetivo no es la propia máquina del estudiante. Es el servidor Wisp remoto en el otro extremo de la conexión.

Eso lo convierte en un ataque de plano de control en lugar de volumétrico. Un solo navegador que ejecute los 1.024 sockets completos puede presionar a un servidor Wisp para que asigne y elimine alrededor de 10.240 conexiones por segundo mientras escribe más de 20.000 líneas de registro en el mismo tramo.

JFrog señala que Mercury Workshop nodo-servidor-wisp abre un socket nuevo para cada trama CONNECT sin verificar si el destino es un loopback o una dirección privada, y registra cada intento. Esto agota los descriptores de archivos, inunda el almacenamiento de registros y descarta el proxy. wisp-server-node ya está en desuso; sus encargados están indicando a los usuarios exactamente esta clase de problema de seguridad y estabilidad.

Entonces, la campaña convirtió una herramienta de proxy estudiantil en un arma contra los servidores de los que dependen otros proxy estudiantiles, y apuntó una inundación separada a una escuela lateral.

La infraestructura está muy agrupada y no está diseñada para esconderse. JFrog rastreó las compilaciones hasta una organización de GitHub llamada lucideproxy cuyas cuentas se registraron con segundos de diferencia, vinculadas a un correo electrónico de confirmación en geeked.[.]Wtf y un identificador de Discord. Noventa de los 93 nombres de host de implementación que encontró se resolvieron en una dirección IP, 92.38.177[.]17, organizado por G-Core Labs.

Entre los nombres de los paquetes juveniles, un script de shell de publicación automática dejado dentro de los archivos comprimidos y un comentario «TY WAVES + CHATGPT ILY» que SafeDep encontró en el trabajador del servicio, ambas empresas leen al operador como joven. Una cuenta envió 116 paquetes en menos de 35 minutos y npm no hizo nada para ralentizarlo.

Ciberseguridad

El historial de confirmaciones de JFrog describe el arco. El proyecto comenzó como simple adware en marzo, agregó el cargador remoto y el generador Wisp en una ráfaga de dos días a mediados de mayo, ejecutó la inundación en vivo contra la escuela de enfermería a fin de mes y luego eliminó los módulos maliciosos nuevamente el 31 de mayo cuando comenzaron los informes.

Una segunda ola el 8 de julio, bajo una nueva cuenta, elevó el total a 148 paquetes y envió la versión limpia y solo con publicidad. La aplicación todavía está ofuscada, todavía carga scripts de terceros desde dominios de atacantes y el cargador todavía apunta a una rama mutable. La capacidad DDoS no ha desaparecido, sólo está desactivada. JFrog señala que los operadores conservan la capacidad de rearmarlo: un compromiso con esa rama mutable, no se requiere actualización del paquete.

Desde entonces, muchos de los paquetes de la campaña han sido retirados de npm y reemplazados con el marcador de posición de seguridad estándar 0.0.1 del registro. Una verificación aleatoria realizada por The Hacker News en todas las familias de paquetes el 14 de julio de 2026 encontró que la mayoría había desaparecido, pero charlie-kirk aún ofrecía las dos versiones que JFrog marcó como maliciosas, 2.0.0 y 3.0.1.

Debido a que la amenaza se envía como una aplicación web del lado del cliente en lugar de un implante en el momento de la instalación, la solución de JFrog sigue el método de entrega.

Los administradores de redes escolares y corporativas, donde estos servidores proxy atraen la mayor cantidad de tráfico, deberían bloquear los dominios de la campaña a nivel de DNS. La monetización y los hosts de secuencias de comandos que aún alcanza la versión actual, entre ellos woofbeginner[.]com y c.vipersfutbol[.]com, son los que deben bloquear primero.

Cualquiera que haya cargado uno de los sitios proxy debe borrar el caché del navegador y el almacenamiento local y cancelar el registro de cualquier trabajador de servicio dejado por un dominio de tutoría o proxy. Los equipos cuyos entornos de compilación obtuvieron los paquetes nombrados deben extraerlos de los manifiestos y archivos de bloqueo y reconstruirlos de forma limpia. El artículo de JFrog incluye la lista completa de 148 paquetes, dominios, direcciones IP y hashes.

The Hacker News se comunicó con JFrog para obtener más detalles sobre la escala de la botnet y si el ataque WebSocket se ejecutó contra un objetivo vivo, y actualizará esta historia con cualquier respuesta.

Los escáneres de dependencias y los entornos sandbox en el momento de la instalación están diseñados para detectar el código que se ejecuta en npm install. Este código nunca solicitó ser instalado. Mientras los registros públicos funcionen como CDN gratuitos, es posible que los paquetes por los que vale la pena preocuparse sean cada vez más aquellos que ningún proceso de construcción jamás obtenga.