La campaña fantasma utiliza paquetes de 7 npm para robar carteras y credenciales criptográficas – CYBERDEFENSA.MX

Investigadores de ciberseguridad han descubierto un nuevo conjunto de paquetes npm maliciosos diseñados para robar billeteras de criptomonedas y datos confidenciales.

ReversingLabs está rastreando la actividad como Fantasma campaña. La lista de paquetes identificados, todos publicados por un usuario llamado mikilanjillo, se encuentra a continuación:

  • reaccionar-rendimiento-suite
  • reaccionar-estado-optimizador-núcleo
  • reaccionar-rápido-utilsa
  • ai-fast-auto-trader
  • pkgnewfefame1
  • clonador-copia-carbon-mac
  • coinbase-escritorio-sdk

«Los paquetes en sí son phishing para la contraseña sudo con la que se ejecuta la última etapa, y están tratando de ocultar su funcionalidad real y evitar la detección de una manera sofisticada: mostrando registros de instalación de npm falsos», Lucija Valentić, investigadora de amenazas de software en ReversingLabs, dicho en un informe compartido con The Hacker News.

Las bibliotecas Node.js identificadas, además de afirmar falsamente que descargan paquetes adicionales, insertan retrasos aleatorios para dar la impresión de que el proceso de instalación está en marcha. En un momento durante este paso, se alerta al usuario de que la instalación se está ejecutando con un error debido a que faltan permisos de escritura en «/usr/local/lib/node_modules», que es la ubicación predeterminada para los paquetes Node.js instalados globalmente en sistemas Linux y macOS.

También le indica a la víctima que ingrese su contraseña de root o administrador para continuar con la instalación. Si ingresan la contraseña, el malware recupera silenciosamente el descargador de la siguiente etapa, que luego se comunica con un canal de Telegram para obtener la URL de la carga útil final y la clave necesaria para descifrarla.

El ataque culmina con la implementación de un troyano de acceso remoto que es capaz de recopilar datos, apuntar a billeteras de criptomonedas y esperar más instrucciones de un servidor externo.

Ciberseguridad

ReversingLabs dijo que las actividades compartidas se superponen con un grupo de actividades documentado por JFrog con el nombre de GhostClaw a principios de este mes, aunque actualmente no se sabe si es trabajo del mismo actor de amenazas o de una campaña completamente nueva.

GhostClaw utiliza repositorios de GitHub y flujos de trabajo de IA para ofrecer macOS Stealer

Jamf Threat Labs, en un análisis publicado la semana pasada, dijo que la campaña GhostClaw utiliza repositorios de GitHub y flujos de trabajo de desarrollo asistidos por inteligencia artificial (IA) para entregar cargas útiles de robo de credenciales en macOS.

«Estos repositorios se hacen pasar por herramientas legítimas, incluidos robots comerciales, SDK y utilidades para desarrolladores, y están diseñados para parecer creíbles a primera vista», dijo el investigador de seguridad Thijs Xhaflaire. dicho. «Varios de los repositorios identificados han acumulado un compromiso significativo, en algunos casos superando los cientos de estrellas, lo que refuerza aún más su legitimidad percibida».

En esta campaña, los repositorios se llenan inicialmente con código benigno o parcialmente funcional y se dejan sin cambios durante un período prolongado para generar confianza entre los usuarios antes de introducir componentes maliciosos. Específicamente, los repositorios cuentan con un archivo README que guía a los desarrolladores a ejecutar un script de shell como parte del paso de instalación.

Una variante de estos repositorios presenta un archivo SKILL.md, dirigido principalmente a flujos de trabajo orientados a Al con el pretexto de instalar habilidades externas a través de agentes de IA como OpenClaw. Independientemente del método utilizado, el script de shell inicia un proceso de infección de varias etapas que finaliza con la implementación de un ladrón. La secuencia completa de acciones es la siguiente:

  • Identifica la arquitectura del host y la versión de macOS, verifica si Node.js ya está presente e instala una versión compatible si es necesario. La instalación se realiza en un directorio controlado por el usuario para evitar generar señales de alerta.
  • Invoca «node scripts/setup.js» y «node scripts/postinstall.js», lo que provoca que la ejecución pase a cargas útiles de JavaScript, lo que le permite robar credenciales del sistema, entregar el malware GhostLoader contactando a un servidor de comando y control (C2) y eliminar rastros de actividad maliciosa limpiando la Terminal.

El script también viene con una variable de entorno llamada «GHOST_PASSWORD_ONLY», que, cuando se establece en cero, presenta un flujo de instalación interactivo completo, completo con indicadores de progreso y mensajes para el usuario. Si se establece en 1, el script inicia una ruta de ejecución simplificada centrada principalmente en la recopilación de credenciales sin ningún elemento adicional de la interfaz de usuario.

Curiosamente, al menos en algunos casos, el script «postinstall.js» muestra un mensaje de éxito benigno, indicando que la instalación fue exitosa y que los usuarios pueden configurar la biblioteca en sus proyectos ejecutando el comando «npx reaccionar-state-optimizer».

Según un informe de la compañía de seguridad en la nube Panther el mes pasado, «react-state-optimizer» es uno de varios otros paquetes npm publicados por «mikilanjillo», lo que indica que los dos grupos de actividad son uno y el mismo.

  • reaccionar-consulta-core-utils
  • optimizador de estado de reacción
  • reaccionar-rápido-utils
  • reaccionar-rendimiento-suite
  • ai-fast-auto-trader
  • clonador-copia-carbon-mac
  • clonador-copias-carbon-mac
  • pkgnewfefame
  • barra oscura
Ciberseguridad

«Los paquetes contienen un ‘asistente de configuración’ CLI que engaña a los desarrolladores para que ingresen su contraseña sudo para realizar ‘optimizaciones del sistema’», dijo la investigadora de seguridad Alessandra Rizzo. «La contraseña capturada luego se pasa a una carga útil integral de ladrón de credenciales que recopila credenciales del navegador, billeteras de criptomonedas, claves SSH, configuraciones de proveedores de nube y tokens de herramientas de desarrollador».

«Los datos robados se enrutan a bots de Telegram específicos de los socios en función de un identificador de campaña integrado en cada cargador, con credenciales almacenadas en el contrato inteligente de BSC y actualizadas sin modificar el malware en sí».

El paquete npm inicial captura las credenciales y recupera la configuración de un canal de Telegram o de una página Teletype.in que está disfrazada de documentación de blockchain para implementar el ladrón. Según Panther, el malware implementa un modelo de ingresos dual, donde el ingreso principal proviene del robo de credenciales transmitido a través de canales asociados de Telegram, y el ingreso secundario proviene de redirecciones de URL de afiliados almacenadas en un contrato inteligente de Binance Smart Chain (BSC) separado.

«Esta campaña destaca un cambio continuo en el arte de los atacantes, donde los métodos de distribución se extienden más allá de los registros de paquetes tradicionales hacia plataformas como GitHub y flujos de trabajo de desarrollo emergentes asistidos por IA», dijo Jamf. «Al aprovechar ecosistemas confiables y prácticas de instalación estándar, los atacantes pueden introducir código malicioso en entornos con mínima fricción».

El ataque de Trivy a la cadena de suministro desencadena un gusano bote que se propaga automáticamente en paquetes de 47 npm – CYBERDEFENSA.MX

Se sospecha que los actores de amenazas detrás del ataque a la cadena de suministro dirigido al popular escáner Trivy están llevando a cabo ataques posteriores que han llevado al compromiso de una gran cantidad de paquetes npm con un gusano autopropagante previamente indocumentado denominado gusano de bote.

El nombre es una referencia al hecho de que el malware utiliza un recipiente de PICque se refiere a contratos inteligentes a prueba de manipulaciones en la cadena de bloques de Internet Computer, como un solucionador de caída muerta. El desarrollo marca el primer abuso documentado públicamente de un recipiente ICP con el propósito explícito de recuperar el servidor de comando y control (C2), según Charlie Eriksen, investigador de seguridad de Aikido. dicho.

La lista de paquetes afectados se encuentra a continuación:

  • 28 paquetes en el ámbito @EmilGroup
  • 16 paquetes en el ámbito @opengov
  • @teale.io/eslint-config
  • @airtm/uuid-base32
  • @pypestream/flotante-ui-dom

El desarrollo se produce un día después de que los actores de amenazas aprovecharan una credencial comprometida para publicar versiones maliciosas de trivy, trivy-action y setup-trivy que contenían un ladrón de credenciales. Un enfoque en la nube operación cibercriminal Se sospecha que el grupo conocido como TeamPCP está detrás de los ataques.

Ciberseguridad

La cadena de infección que involucra los paquetes npm implica aprovechar un gancho posterior a la instalación para ejecutar un cargador, que luego coloca una puerta trasera de Python que es responsable de contactar con el contenedor ICP para recuperar una URL que apunta a la carga útil de la siguiente etapa. El hecho de que la infraestructura de dead drop esté descentralizada la hace resiliente y resistente a los esfuerzos de eliminación.

«El controlador del recipiente puede cambiar la URL en cualquier momento, enviando nuevos archivos binarios a todos los hosts infectados sin tocar el implante», dijo Eriksen.

La persistencia se establece mediante un servicio de usuario systemd, que está configurado para iniciar automáticamente la puerta trasera de Python después de un retraso de 5 segundos si se finaliza por algún motivo mediante el uso de «Reiniciar=siempre» directiva. El servicio systemd se hace pasar por herramientas PostgreSQL («pgmon») en un intento de pasar desapercibido.

La puerta trasera, como se mencionó antes, llama al recipiente de PIC con un agente de usuario del navegador falso cada 50 minutos para recuperar la URL en texto sin formato. Posteriormente, la URL se analiza para buscar y ejecutar el ejecutable.

«Si la URL contiene youtube[.]com, el guión lo omite», explicó Eriksen. «Este es el estado inactivo del recipiente. El atacante arma el implante apuntando el recipiente a un binario real y lo desarma volviendo a un enlace de YouTube. Si el atacante actualiza el contenedor para que apunte a una nueva URL, cada máquina infectada recoge el nuevo binario en su siguiente sondeo. El antiguo binario sigue ejecutándose en segundo plano ya que el script nunca finaliza procesos anteriores».

Vale la pena señalar que un youtube similar[.]Wiz también ha señalado el interruptor de apagado basado en com en relación con el binario troyanizado Trivy (versión 0.69.4), que llega al mismo recipiente ICP a través de otro cuentagotas de Python («sysmon.py»). Al momento de escribir, la URL devuelta por el C2 es una vídeo de youtube de rickroll.

The Hacker News descubrió que el recipiente ICP apoya tres métodos (get_latest_link, http_request, update_link), el último de los cuales permite al actor de amenazas modificar el comportamiento en cualquier momento para servir una carga útil real.

En conjunto, los paquetes vienen con un archivo «deploy.js» que el atacante ejecuta manualmente para distribuir la carga maliciosa a cada paquete al que un token npm robado proporciona acceso de forma programática. El gusano, que se considera codificado por vibración mediante una herramienta de inteligencia artificial (IA), no intenta ocultar su funcionalidad.

«Esto no se activa con la instalación de npm», dijo Aikido. «Es una herramienta independiente que el atacante utiliza con tokens robados para maximizar el radio de explosión».

Para empeorar las cosas, se descubrió que una iteración posterior de CanisterWorm detectada en «@teale.io/eslint-config» versiones 1.8.11 y 1.8.12 se autopropaga sin necesidad de intervención manual.

Ciberseguridad

A diferencia de «deploy.js», que era un script autónomo que el atacante tenía que ejecutar con los tokens npm robados para enviar una versión maliciosa de los paquetes npm al registro, la nueva variante incorpora esta funcionalidad en «index.js» dentro de una función findNpmTokens() que se ejecuta durante la fase posterior a la instalación para recopilar tokens de autenticación npm de la máquina de la víctima.

La principal diferencia aquí es que el script postinstalación, después de instalar la puerta trasera persistente, intenta localizar cada token npm del entorno del desarrollador y genera el gusano inmediatamente con esos tokens iniciando «deploy.js» como un proceso en segundo plano completamente independiente.

Curiosamente, se dice que el actor de amenazas cambió la carga útil de la puerta trasera ICP por una cadena de prueba ficticia («hello123»), probablemente para garantizar que toda la cadena de ataque funcione según lo previsto antes de agregar el malware.

«Este es el punto donde el ataque pasa de ‘la cuenta comprometida publica malware’ a ‘el malware compromete más cuentas y se publica a sí mismo’», dijo Eriksen. «Cada desarrollador o canal de CI que instala este paquete y tiene un token npm accesible se convierte en un vector de propagación involuntario. Sus paquetes se infectan, sus usuarios intermedios los instalan y, si alguno de ellos tiene tokens, el ciclo se repite».

(Esta es una historia en desarrollo. Vuelva a consultarla para obtener más detalles).

Paquetes falsos de Laravel en Packagist implementan RAT en Windows, macOS y Linux – CYBERDEFENSA.MX

Los investigadores de ciberseguridad han marcado Paquetes PHP maliciosos de Packagist disfrazados de utilidades de Laravel que actúan como conducto para un troyano de acceso remoto (RAT) multiplataforma que funciona en sistemas Windows, macOS y Linux.

Los nombres de los paquetes se enumeran a continuación –

  • nhattuanbl/lara-helper (37 Descargas)
  • nhattuanbl/simple-queue (29 Descargas)
  • nhattuanbl/lara-swagger (49 Descargas)

Según Socket, el paquete «nhattuanbl/lara-swagger» no incorpora directamente código malicioso, sino que enumera «nhattuanbl/lara-helper» como un Dependencia del compositorprovocando que instale el RAT. Los paquetes todavía están disponibles para descargar desde el registro de paquetes PHP.

Ciberseguridad

Se ha descubierto que tanto lara-helper como simple-queue contienen un archivo PHP llamado «src/helper.php», que emplea una serie de trucos para complicar el análisis estático mediante el uso de técnicas como la ofuscación del flujo de control, la codificación de nombres de dominio, nombres de comandos y rutas de archivos, e identificadores aleatorios para nombres de variables y funciones.

«Una vez cargada, la carga útil se conecta a un servidor C2 en helper.leuleu[.]net:2096, envía datos de reconocimiento del sistema y espera comandos, dándole al operador acceso remoto completo al host», dijo el investigador de seguridad Kush Pandya.

Esto incluye el envío de información del sistema y el análisis de comandos recibidos del servidor C2 para su posterior ejecución en el host comprometido. La comunicación se produce a través de TCP utilizando PHP. flujo_socket_client(). La lista de comandos admitidos se encuentra a continuación:

  • silbidopara enviar un latido automáticamente cada 60 segundos
  • informaciónpara enviar datos de reconocimiento del sistema al servidor C2
  • cmdpara ejecutar un comando de shell
  • powershellpara ejecutar un comando de PowerShell
  • correrpara ejecutar un comando de shell en segundo plano
  • captura de pantallapara capturar la pantalla usando imagegrabscreen()
  • descargarpara leer un archivo del disco
  • subira un archivo en el disco y otorgarle permisos de lectura, escritura y ejecución a todos los usuarios
  • deteneral enchufe y salir

«Para la ejecución del shell, RAT prueba las funciones deshabilitadas y elige el primer método disponible entre: popen, proc_open, exec, shell_exec, system, passthru», dijo Pandya. «Esto lo hace resistente a las configuraciones comunes de refuerzo de PHP».

Ciberseguridad

Si bien el servidor C2 actualmente no responde, el RAT está configurado de manera que reintenta la conexión cada 15 segundos en un bucle persistente, lo que lo convierte en un riesgo para la seguridad. Se recomienda a los usuarios que hayan instalado los paquetes que asuman un compromiso, los eliminen, roten todos los secretos accesibles desde el entorno de la aplicación y auditen el tráfico saliente al servidor C2.

Además de los tres paquetes antes mencionados, el actor de amenazas detrás de la operación ha publicado otras tres bibliotecas («nhattuanbl/lara-media», «nhattuanbl/snooze» y «nhattuanbl/syslog») que están limpias, probablemente en un esfuerzo por generar credibilidad y engañar a los usuarios para que instalen los maliciosos.

«Cualquier aplicación Laravel que instale lara-helper o simple-queue ejecuta una RAT persistente. El actor de la amenaza tiene acceso completo al shell remoto, puede leer y escribir archivos arbitrarios y recibe un perfil de sistema continuo para cada host conectado», dijo Socket.

«Debido a que la activación ocurre en el inicio de la aplicación (a través del proveedor de servicios) o en las cargas automáticas de clases (a través de una cola simple), el RAT se ejecuta en el mismo proceso que la aplicación web con los mismos permisos del sistema de archivos y variables de entorno, incluidas las credenciales de la base de datos, las claves API y los contenidos .env».

Hackers norcoreanos publican paquetes de 26 npm que ocultan Pastebin C2 para RAT multiplataforma – CYBERDEFENSA.MX

Los investigadores de ciberseguridad han revelado una nueva iteración de la actual campaña Contagious Interview, donde los actores de amenazas norcoreanos han publicado un conjunto de 26 paquetes maliciosos en el registro npm.

Los paquetes se hacen pasar por herramientas de desarrollador, pero contienen funcionalidad para extraer el comando y control real (C2) mediante el uso de contenido aparentemente inofensivo de Pastebin como un solucionador de caídas y, en última instancia, eliminan un ladrón de credenciales y un troyano de acceso remoto dirigidos a desarrolladores. La infraestructura C2 está alojada en Vercel en 31 implementaciones.

El campañarastreado por Socket y Kieran Miyamoto de kmsec.uk está siendo rastreado bajo el apodo StegaBin.

«El cargador extrae URL C2 codificadas esteganográficamente dentro de tres pastas de Pastebin, ensayos informáticos inofensivos en los que los caracteres en posiciones uniformemente espaciadas han sido reemplazados para deletrear direcciones de infraestructura ocultas», los investigadores de Socket Philipp Burckhardt y Peter van der Zee dicho.

Ciberseguridad

La lista de paquetes npm maliciosos es la siguiente:

  • argonista@0.41.0
  • bcryptance@6.5.2
  • abeja-quarl@2.1.2
  • núcleo de burbuja@6.26.2
  • corstoken@2.14.7
  • daytonjs@1.11.20
  • ether-lint@5.9.4
  • expressjs-lint@5.3.2
  • fastify-lint@5.8.0
  • formmiderable@3.5.7
  • hapi-lint@19.1.2
  • iosysredis@5.13.2
  • jslint-config@10.22.2
  • jsnwebapptoken@8.40.2
  • kafkajs-lint@2.21.3
  • loadash-lint@4.17.24
  • mqttoken@5.40.2
  • prisma-lint@7.4.2
  • promanage@6.0.21
  • secuela@6.40.2
  • tiporiem@0.4.17
  • undicy-lint@7.23.1
  • uuindex@13.1.0
  • vitetest-lint@4.1.21
  • windowston@3.19.2
  • zoddle@4.4.2

Todos los paquetes identificados vienen con un script de instalación («install.js») que se ejecuta automáticamente durante la instalación del paquete, que, a su vez, ejecuta la carga útil maliciosa ubicada en «vendor/scrypt-js/version.js». Otro aspecto común que une a los 26 paquetes es que declaran explícitamente el paquete legítimo que están escribiendo como una dependencia, probablemente en un intento de hacerlos parecer creíbles.

La carga útil sirve como un decodificador de esteganografía de texto al contactar una URL de Pastebin y extraer su contenido para recuperar las URL C2 Vercel reales. Si bien los pegados aparentemente contienen un ensayo benigno sobre informática, el decodificador está diseñado para observar caracteres específicos en ciertas posiciones del texto y unirlos para crear una lista de dominios C2.

«El decodificador elimina los caracteres Unicode de ancho cero, lee un marcador de longitud de 5 dígitos desde el principio, calcula las posiciones de los caracteres espaciados uniformemente a lo largo del texto y extrae los caracteres en esas posiciones», dijo Socket. «Los caracteres extraídos luego se dividen en un separador ||| (con un marcador de terminación ===END===) para producir una matriz de nombres de dominio C2».

Luego, el malware llega al dominio decodificado para recuperar cargas útiles específicas de la plataforma para Windows, macOS y Linux, una táctica ampliamente observada en la campaña Contagious Interview. Uno de esos dominios, «ext-checkdin.vercel[.]app» sirve un script de shell, que luego contacta la misma URL para recuperar un componente RAT.

El troyano se conecta a 103.106.67[.]63:1244 a esperar más instrucciones que le permitan cambiar el directorio actual y ejecutar comandos de shell, a través de los cuales se implementa un conjunto integral de recopilación de inteligencia. Contiene nueve módulos para facilitar la persistencia de Microsoft Visual Studio Code (VS Code), el registro de teclas y el robo del portapapeles, la recolección de credenciales del navegador, el escaneo de secretos de TruffleHog y el repositorio Git y la filtración de claves SSH.

  • vsque utiliza un archivo task.json malicioso para contactar un dominio de Vercel cada vez que se abre un proyecto en VS Code aprovechando el disparador runOn: «folderOpen». El módulo escanea específicamente el directorio de configuración de VS Code de la víctima en las tres plataformas y escribe el archivo task.json malicioso directamente en él.
  • acortarque actúa como registrador de teclas, rastreador de mouse y ladrón de portapapeles con soporte para seguimiento activo de ventanas y realiza filtraciones periódicas cada 10 minutos.
  • hermanoque es una carga útil de Python para robar almacenes de credenciales del navegador.
  • jque es un módulo de Node.js utilizado para el robo de navegadores y criptomonedas dirigido a Google Chrome, Brave, Firefox, Opera y Microsoft Edge, y extensiones como MetaMask, Phantom, Coinbase Wallet, Binance, Trust, Exodus y Keplr, entre otras. En macOS, también apunta al llavero de iCloud.
  • zque enumera el sistema de archivos y roba archivos que coinciden con ciertos patrones predefinidos.
  • norteque actúa como RAT para otorgar al atacante la capacidad de controlar de forma remota el host infectado en tiempo real a través de una conexión WebSocket persistente a 103.106.67[.]63:1247 y exfiltrar datos de interés a través de FTP.
  • trufaque descarga el legítimo Escáner de secretos de TruffleHog desde la página oficial de GitHub para descubrir y filtrar los secretos de los desarrolladores.
  • gitque recopila archivos de directorios .ssh, extrae credenciales de Git y escanea repositorios.
  • programadoque es lo mismo que «vendor/scrypt-js/version.js» y se vuelve a implementar como mecanismo de persistencia.
Ciberseguridad

«Mientras que las oleadas anteriores de la campaña Contagious Interview se basaban en scripts maliciosos relativamente sencillos y cargas útiles alojadas en Bitbucket, esta última iteración demuestra un esfuerzo concertado para evitar tanto la detección automatizada como la revisión humana», concluyó Socket.

«El uso de esteganografía a nivel de personaje en Pastebin y el enrutamiento Vercel de múltiples etapas apunta a un adversario que está refinando sus técnicas de evasión e intentando hacer sus operaciones más resistentes».

La divulgación se produce cuando también se ha observado que los actores norcoreanos publican paquetes npm maliciosos (por ejemplo, express-core-validator) para recuperar una carga útil de JavaScript de la siguiente etapa alojada en Google Drive.

«Sólo se ha publicado un paquete con esta nueva técnica», Miyamoto dicho. «Es probable que FAMOUS CHOLLIMA continúe aprovechando múltiples técnicas e infraestructura para entregar cargas útiles de seguimiento. Es poco probable que esto indique una revisión completa de su comportamiento de etapa en npm».