Imagen de artículo relacionado al malware NodeCordRAT, mostrando logos de npm y Discord.

Inicio / Descubren tres paquetes npm maliciosos que distribuyen NodeCordRAT, un troyano de acceso remoto

Descubren tres paquetes npm maliciosos que distribuyen NodeCordRAT, un troyano de acceso remoto

Investigadores de ciberseguridad en Zscaler ThreatLabz han identificado una campaña maliciosa en el ecosistema npm que compromete credenciales de navegadores y billeteras de criptomonedas a través de paquetes que imitan repositorios legítimos de Bitcoin.

Tres paquetes npm maliciosos fueron descubiertos distribuyendo NodeCordRAT, un malware previamente no documentado que roba credenciales y utiliza Discord como infraestructura de comando y control. Los paquetes, subidos por el usuario «wenmoonx», acumularon más de 3,400 descargas combinadas antes de ser removidos en noviembre de 2025.

Los paquetes comprometidos

Según el análisis publicado por Zscaler ThreatLabz, los tres paquetes identificados son:

  • bitcoin-main-lib (2.300 descargas)
  • bitcoin-lib-js (193 descargas)
  • bip40 (970 descargas)

Estos números representan potencialmente miles de sistemas comprometidos en entornos de desarrollo, donde las credenciales de criptomonedas y tokens de API son especialmente valiosos.

Cadena de infección: técnica de instalación encadenada

Los investigadores Satyam Singh y Lakhan Parashar de Zscaler explicaron que «bitcoin-main-lib y bitcoin-lib-js ejecutan un script postinstall.cjs durante la instalación, que instala bip40, el paquete que contiene el payload malicioso».

Proceso del ciberataque:

  1. El desarrollador instala bitcoin-main-lib o bitcoin-lib-js
  2. Durante la instalación, el archivo «package.json» ejecuta automáticamente «postinstall.cjs»
  3. Este script descarga e instala bip40 sin consentimiento explícito del usuario
  4. bip40 despliega NodeCordRAT en el sistema

Este proceso es efectivo porque los scripts postinstall son legítimos en npm y se ejecutan automáticamente, haciendo que los desarrolladores rara vez cuestionen su activación durante una instalación normal.

NodeCordRAT: capacidades técnicas del malware

La etimología del nombre NodeCordRAT consta en lo siguiente: utiliza npm (Node) como vector de propagación y servidores Discord (Cord) para comunicaciones de comando y control. Y el malware corresponda a un troyano de acceso remoto/remote access trojan (RAT).

Objetivos de robo de información

El troyano está diseñado específicamente para extraer:

  • Credenciales almacenadas en Google Chrome
  • Tokens de API
  • Frases semilla (seed phrases) de billeteras de criptomonedas como MetaMask

Las seed phrases equivalen a la «contraseña» de las billeteras de criptomonedas. Con acceso a ellas, un atacante puede vaciar completamente los fondos sin posibilidad de recuperación.

Funcionalidades de comando remoto

Una vez establecida la conexión con el servidor Discord mediante un token hardcodeado, NodeCordRAT puede ejecutar tres comandos principales:

  1. !run: Ejecuta comandos arbitrarios de shell usando la función exec de Node.js
  2. !screenshot: Captura pantallas completas del escritorio y exfiltra el archivo PNG al canal Discord
  3. !sendfile: Sube archivos específicos al canal Discord

Según Zscaler, «estos datos se exfiltran usando la API de Discord con un token hardcodeado y se envían a un canal privado. Los archivos robados se suben como adjuntos de mensajes vía el endpoint REST de Discord /channels/{id}/messages».

En este caso, se estima que se eligió Discord ya que proporciona una infraestructura gratuita, confiable y difícil de bloquear, ya que muchas organizaciones permiten su tráfico para comunicaciones legítimas.

Técnica de ingeniería social: typosquatting contra bitcoinjs

Los atacantes emplearon una estrategia deliberada de typosquatting (ocupación de nombres similares) contra el proyecto legítimo bitcoinjs.

Los paquetes maliciosos imitaron nombres reales del ecosistema bitcoinjs:

  • Legítimo: bitcoinjs-lib → Malicioso: bitcoin-lib-js
  • Legítimo: bip32, bip38 → Malicioso: bip40

Técnicas de persistencia y evasión

NodeCordRAT implementa fingerprinting del sistema infectado para generar identificadores únicos que funcionan consistentemente en Windows, Linux y macOS. Esta técnica permite al atacante rastrear múltiples infecciones y mantener control sobre dispositivos específicos incluso si cambian de red o configuración.

En este caso, la compatibilidad multiplataforma requiere conocimiento técnico avanzado y demuestra que esta no es una operación oportunista, sino una campaña planificada.

Contexto de la amenaza en el ecosistema npm

Este incidente se suma a una tendencia creciente de ataques a cadenas de suministro de software (supply chain attacks) que explotan la confianza en gestores de paquetes. Según datos de empresas de seguridad especializadas, los ataques a npm han aumentado consistentemente desde 2020, con los paquetes de criptomonedas siendo objetivos particularmente atractivos debido al valor inmediato de los activos robados.

La utilización de Discord como infraestructura C2 representa una evolución táctica que aprovecha servicios legítimos para evitar detección, una técnica conocida como «living off the land» en el contexto de comunicaciones maliciosas.

Medidas de mitigación

Si has instalado alguno de estos paquetes o trabajas con dependencias de Bitcoin en npm, implementa estos pasos prioritarios:

  1. Audita tus dependencias:
    • npm ls bitcoin-main-lib bitcoin-lib-js bip40
  2. Desinstala los paquetes comprometidos, si están presentes:
    • npm uninstall bitcoin-main-lib bitcoin-lib-js bip40
  3. Revisa archivos package.json y package-lock.json en busca de estas dependencias, incluso como transitorias
  4. Cambia todas las credenciales potencialmente expuestas:
    • Tokens de API
    • Contraseñas de navegador
    • IMPORTANTE: Transfiere fondos de criptomonedas a nuevas billeteras con nuevas seed phrases
  5. Analiza sistemas comprometidos en busca de:
    • Procesos Node.js sospechosos
    • Conexiones a servidores Discord no autorizadas
    • Archivos postinstall.cjs en node_modules
  6. Implementa verificación de integridad:
    • Usa npm audit regularmente
    • Considera herramientas como Socket Security o Snyk para monitoreo continuo
    • Verifica checksums de paquetes críticos

¿Te pareció útil este artículo?

Si te pareció util este artículo, ¡te invitamos a compartirlo con personas que podrían verse beneficiadas al leerlo!

Últimos artículos