
Los investigadores de ciberseguridad han revelado una nueva versión de la campaña en curso Entrevista de Contagio. En esta campaña, los actores de amenazas norcoreanos publicaron un conjunto de 26 paquetes maliciosos en el registro npm.
Aunque estos paquetes se presentan como herramientas para desarrolladores, contienen la capacidad de utilizar contenido de Pastebin aparentemente inofensivo como un solucionador de caídas para extraer el comando y control real (C2) y, en última instancia, eliminar los ladrones de credenciales y los troyanos de acceso remoto dirigidos a los desarrolladores. La infraestructura C2 está alojada en Vercel en 31 implementaciones.
La campaña está siendo seguida por Kieran Miyamoto de Socket y kmsec.uk y bajo el nombre StegaBin.
«El cargador extrae una URL C2 codificada esteganográficamente dentro de las tres pastas de Pastebin, que es un ensayo informático inofensivo con caracteres espaciados uniformemente reemplazados, que detalla la dirección de infraestructura oculta», dijeron los investigadores de socket Philipp Burckhardt y Peter van der Zee.
Aquí hay una lista de paquetes npm maliciosos:
argonist@0.41.0 bcryptance@6.5.2 bee-quarl@2.1.2 bubble-core@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 prism-lint@7.4.2 promanage@6.0.21 sequelización@6.40.2 typoriem@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 ejecuta la carga útil maliciosa ubicada en ‘vendor/scrypt-js/version.js’. Otro punto en común en la integración de los 26 paquetes es que declaran explícitamente los paquetes canónicos que están escribiendo como dependencias para parecer confiables.
La carga útil actúa como un decodificador de esteganografía de texto al acceder a la URL de Pastebin y extraer su contenido para obtener la URL C2 Vercel real. Aunque la pasta parece contener un ensayo inofensivo sobre informática, el decodificador está diseñado para observar caracteres específicos en posiciones específicas dentro del texto y unirlos para crear una lista de dominios C2.
«El decodificador elimina caracteres Unicode de ancho cero, lee marcadores de cinco dígitos desde el principio, calcula posiciones de caracteres espaciados uniformemente a lo largo del texto y extrae el carácter en esa posición», dijo Socket. «Los caracteres extraídos se dividen en el delimitador ||| (con un marcador final ===END===) para producir una matriz de nombres de dominio C2».
Luego, el malware accede al dominio decodificado para obtener cargas útiles específicas de la plataforma para Windows, macOS y Linux. Esta es una táctica ampliamente observada en la campaña Entrevista Contagiosa. Se descubrió que uno de esos dominios, ‘ext-checkdin.vercel(.)app’, proporcionaba un script de shell que accede a la misma URL para recuperar componentes RAT.
El troyano se conecta a 103.106.67(.)63:1244 y espera más instrucciones para cambiar el directorio actual y ejecutar comandos de shell. Esto implementa un conjunto integral de recopilación de inteligencia. Incluye nueve módulos que facilitan la persistencia de Microsoft Visual Studio Code (VS Code), el registro de teclas y el robo del portapapeles, la recopilación de credenciales del navegador, el escaneo de secretos de TruffleHog y el repositorio Git y la divulgación de claves SSH.
vs aprovecha el activador runOn: «folderOpen» para acceder al dominio Vercel utilizando un archivo task.json malicioso cada vez que se abre un proyecto en VS Code. Este módulo escanea específicamente el directorio de configuración de VS Code de la víctima en las tres plataformas y escribe directamente el task.json malicioso allí. Clip actúa como registrador de teclas, rastreador de mouse y ladrón de portapapeles que admite el seguimiento activo de ventanas y realiza extracciones periódicas cada 10 minutos. hermano, esta es una carga útil de Python para robar el almacén de credenciales del navegador. j es un módulo de Node.js utilizado para el robo de navegadores y criptomonedas dirigido a Google Chrome, Brave, Firefox, Opera, Microsoft Edge y extensiones como MetaMask, Phantom, Coinbase Wallet, Binance, Trust, Exodus y Keplr. En macOS, esto también incluye iCloud Keychain. z enumera el sistema de archivos y roba archivos que coinciden con ciertos patrones predefinidos. n actúa como una RAT, brindando al atacante la capacidad de controlar remotamente un host infectado en tiempo real a través de una conexión WebSocket persistente a 103.106.67(.)63:1247 y filtrar datos de interés a través de FTP. truffle descarga el escáner secreto TruffleHog genuino desde la página oficial de GitHub para descubrir y extraer secretos de los desarrolladores. idiota. Recopila archivos de directorios .ssh, extrae credenciales de Git y escanea repositorios. programado. Esto es lo mismo que «vendor/scrypt-js/version.js» y se volverá a implementar como mecanismo de persistencia.
«Si bien oleadas anteriores de campañas de Entrevistas Contagiosas se basaban en scripts maliciosos relativamente simples y cargas útiles alojadas en Bitbucket, esta última iteración demuestra un esfuerzo concertado para evadir tanto la detección automatizada como la revisión humana», concluyó Socket.
«El uso de Pastebin de esteganografía a nivel de personaje y enrutamiento Vercel de múltiples etapas indica que los atacantes buscan mejorar sus técnicas de evasión y hacer que sus operaciones sean más resistentes».
Esta divulgación se produce en medio de observaciones de que los actores de amenazas norcoreanos también están publicando paquetes npm maliciosos (como express-core-validator) para obtener cargas útiles de JavaScript de la siguiente etapa alojadas en Google Drive.
«Sólo se ha lanzado un paquete que utiliza esta nueva tecnología», dijo Miyamoto. «FAMOUS CHOLLIMA probablemente continuará aprovechando múltiples tecnologías e infraestructura para entregar cargas útiles posteriores. Es poco probable que esto represente una revisión completa de las operaciones de etapas en npm».
Source link
