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
mcpjam-to-root — De RCE en MCPJam Inspector a root — CVE-2026-23744, divulgación de tokens de JupyterLab, ejecución del kernel y escalada de privilegios de OPSMCP | Kitploit
Herramientas/GitHubGitHub/itsc1sco/mcpjam-to-root
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPost-ExplotaciónPruebas de PenetraciónAprendizaje y EducaciónSeguridad de APIs
GitHubitsc1sco/mcpjam-to-root

mcpjam-to-root

De RCE en MCPJam Inspector a root — CVE-2026-23744, divulgación de tokens de JupyterLab, ejecución del kernel y escalada de privilegios de OPSMCP

Ver Repositorio
hace 1 díaAú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

⚠️ Aviso legal

Este repositorio está destinado únicamente a investigación de seguridad autorizada, pruebas de penetración y fines educativos. No utilice las técnicas aquí descritas contra sistemas sin autorización explícita.


⚡ MCPJam → Root

CVE-2026-23744 MCPJam Inspector JupyterLab Linux Privilege Escalation

De MCPJam Inspector RCE a root — CVE-2026-23744, divulgación del token de JupyterLab, ejecución de kernel y escalada de privilegios de OPSMCP.

---

📖 Descripción general

Este repositorio documenta una cadena de ataque completa en Linux, desde una instancia expuesta de MCPJam Inspector hasta el acceso de nivel root.

La cadena encadena debilidades en herramientas de desarrollo, servicios locales, gestión de credenciales y autorización de aplicaciones:

root@kitploit:~
MCPJam Inspector
       │  CVE-2026-23744
       ▼
     RCE
       │
       ▼
JupyterLab Token
       │
       ▼
Jupyter Kernel
       │
       ▼
     User
       │
       ▼
  OPSMCP API
       │
       ▼
Hidden Admin Tool
       │
       ▼
Root Credential
       │
       ▼
     root

[!WARNING] Este repositorio está destinado únicamente a investigación de seguridad autorizada, pruebas de penetración y fines educativos. Las direcciones de destino, credenciales, tokens y otros valores específicos del entorno a lo largo de este documento están redactados o reemplazados con marcadores de laboratorio.


📑 Tabla de contenido

  • 🎯 Ruta de ataque
  • 🔎 Enumeración
  • 💥 CVE-2026-23744 — RCE en MCPJam Inspector
  • 🕵️ Enumeración interna
  • 🔐 Divulgación del token de JupyterLab
  • 🧠 Ejecución de kernel en JupyterLab
  • 📂 Código fuente de OPSMCP
  • 🚨 Función administrativa oculta
  • 🔑 Divulgación de la credencial de root
  • 👑 Root
  • 🗺️ Cadena de ataque completa
  • 🧩 Resumen de vulnerabilidades
  • 🛡️ Remediación
  • 🔍 Detección
  • 💡 Conclusiones clave
  • 📚 Referencias

🎯 Ruta de ataque


🔎 Enumeración

El reconocimiento inicial se centra en identificar servicios expuestos externamente.

root@kitploit:~
nmap -sC -sV -oN nmap_initial.txt TARGET

A continuación se puede realizar un escaneo TCP completo:

root@kitploit:~
nmap -p- --min-rate 5000 -oN nmap_full.txt TARGET

Servicios externos relevantes:

PuertoServicioRol
22SSHAdministración remota
6274MCPJam InspectorSuperficie de ataque inicial

Servicios vinculados solo a localhost:

PuertoServicioPrivilegio
8888JupyterLabUsuario
5000OPSMCProot

El MCPJam Inspector, accesible externamente en el puerto 6274, se convierte en el punto de entrada inicial.


💥 CVE-2026-23744 — RCE en MCPJam Inspector

La instancia expuesta de MCPJam Inspector está afectada por CVE-2026-23744.

MCPJam Inspector está pensado principalmente como una interfaz de desarrollo y prueba para servidores MCP. La vulnerabilidad se vuelve especialmente peligrosa cuando esta interfaz se expone a una red no confiable: un flujo de configuración vulnerable permite que datos controlados por el atacante lleguen a una ruta de ejecución de comandos.

root@kitploit:~
Remote Request
      │
      ▼
MCP Server Configuration
      │
      ▼
Command Execution
      │
      ▼
Initial Shell

La vulnerabilidad afecta a las versiones de MCPJam Inspector hasta la 1.4.2 inclusive. Para pruebas autorizadas, se puede utilizar una prueba de concepto pública para validar la vulnerabilidad contra el entorno objetivo.

Tras una explotación exitosa, confirme el contexto de ejecución:

root@kitploit:~
id
whoami
hostname

🕵️ Enumeración interna

Una vez obtenido el punto de apoyo inicial, los servicios locales se vuelven visibles.

root@kitploit:~
ss -tlnp
ps aux | grep -E 'jupyter|python|node'
root@kitploit:~
                    Network
                       │
                       ▼
              MCPJam Inspector
                   :6274
                       │
                       ▼
                 Initial RCE
                       │
             ┌─────────┴─────────┐
             ▼                   ▼
        JupyterLab             OPSMCP
        :8888/local            :5000/local
             │                   │
             ▼                   ▼
            User                root

La diferencia de privilegios entre las dos aplicaciones internas resulta especialmente interesante.


🔐 Divulgación del token de JupyterLab

El proceso de JupyterLab se inició con su token de autenticación directamente en la línea de comandos:

root@kitploit:~
--ServerApp.token=<JUPYTER_TOKEN>

La línea de comandos se puede inspeccionar mediante:

root@kitploit:~
ps aux | grep jupyter
# or
cat /proc/<PID>/cmdline

Esto demuestra un problema común en la gestión de secretos:

root@kitploit:~
Secret → Command-line argument → Process metadata → Local credential disclosure

El token recuperado proporciona acceso a la API local de Jupyter.


🧠 Ejecución de kernel en JupyterLab

Jupyter expone una API REST para gestionar kernels. Tras autenticarse con el token recuperado, se puede crear un kernel mediante:

root@kitploit:~
POST /api/kernels

La respuesta contiene un UUID de kernel. Los kernels de Jupyter se comunican a través de WebSockets:

root@kitploit:~
/api/kernels/<KERNEL_ID>/channels

El protocolo de mensajería de Jupyter utiliza un mensaje execute_request para ejecutar código Python:

root@kitploit:~
{
  "header": { "msg_type": "execute_request" },
  "content": { "code": "<AUTHORIZED_LAB_CODE>" }
}

Esto establece la ejecución de Python bajo la identidad del servicio de Jupyter; en este entorno, el kernel se ejecuta como Usuario.

root@kitploit:~
MCPJam RCE → JupyterLab → User

📂 Código fuente de OPSMCP

Con un shell de usuario disponible, el siguiente paso es examinar las aplicaciones instaladas localmente. La aplicación OPSMCP se encuentra en:

root@kitploit:~
/opt/opsmcp/

La revisión del código fuente revela una credencial de API incrustada:

root@kitploit:~
VALID_API_KEY = "<REDACTED_OPSMCP_API_KEY>"

La aplicación también mantiene dos colecciones de herramientas:

Herramientas visibles

  • ops.system_status
  • ops.list_services
  • ops.check_disk
  • ops.view_logs

Herramientas ocultas

  • ops._admin_dump
  • ops._debug_mode

Las funciones administrativas resultan especialmente interesantes porque no se devuelven a través de la enumeración normal de herramientas.

No documentado no significa inaccesible.

El backend sigue registrando las herramientas ocultas y acepta sus nombres a través del mecanismo genérico de ejecución de herramientas.


🚨 Función administrativa oculta

La aplicación autentica las solicitudes mediante una clave de API:

root@kitploit:~
X-API-Key: <OPSMCP_API_KEY>

Una vez autenticada, el endpoint de ejecución de herramientas solo comprueba si la función solicitada existe, no si quien la invoca está autorizado para ejecutarla.

Lo que ocurre:

root@kitploit:~
API Key → Authenticated → Tool exists? → Execute

Lo que debería ocurrir:

root@kitploit:~
API Key → Authenticated → Permission check → Allowed → Execute
                                            └ Denied  → 403

La función administrativa oculta puede acceder a recursos sensibles propiedad de root.


🔑 Divulgación de la credencial de root

La herramienta administrativa acepta un objetivo que describe la información solicitada. Uno de los recursos admitidos es la clave SSH de root:

root@kitploit:~
{
  "name": "ops._admin_dump",
  "arguments": {
    "target": "ssh_keys",
    "confirm": true
  }
}

La aplicación lee entonces la clave privada SSH propiedad de root, lo cual es posible porque OPSMCP se ejecuta como root y puede leer /root/*. Por tanto, la aplicación se convierte en una primitiva de divulgación de credenciales.


👑 Root

Tras recuperar la credencial SSH del laboratorio autorizado, guárdela con permisos restrictivos:

root@kitploit:~
chmod 600 <ROOT_KEY>

Verifique el contexto de autenticación resultante:

root@kitploit:~
whoami
id

Nivel de privilegio final: root 🎉


🗺️ Cadena de ataque completa

root@kitploit:~
┌──────────────────────────────┐
│       MCPJam Inspector       │
│          TCP/6274            │
└──────────────┬───────────────┘
               │ CVE-2026-23744
               ▼
┌──────────────────────────────┐
│          Initial RCE         │
└──────────────┬───────────────┘
               ▼
┌──────────────────────────────┐
│          JupyterLab          │
│        127.0.0.1:8888        │
└──────────────┬───────────────┘
               │ Token disclosure
               ▼
┌──────────────────────────────┐
│       Jupyter Kernel         │
│        WebSocket RCE         │
└──────────────┬───────────────┘
               ▼
             User
               │ Source review
               ▼
┌──────────────────────────────┐
│           OPSMCP             │
│        127.0.0.1:5000        │
│             root             │
└──────────────┬───────────────┘
               │ API key + hidden tool
               ▼
┌──────────────────────────────┐
│    Root Credential Leak      │
└──────────────┬───────────────┘
               ▼
              root

🧩 Resumen de vulnerabilidades


🛡️ Remediación

MCPJam Inspector
  • Actualice a una versión parcheada.
  • Mantenga las interfaces de Inspector vinculadas a localhost cuando sea posible.
  • Exija autenticación para despliegues remotos.
  • Valide la entrada de configuración de MCP.
  • Ejecute el servicio con una cuenta dedicada de privilegios mínimos.
JupyterLab
  • Proteja tanto la interfaz web como la API.
  • Restrinja el acceso WebSocket a los kernels.
  • Evite pasar secretos de autenticación mediante argumentos de línea de comandos.
  • Ejecute Jupyter con privilegios mínimos.
  • Rote los tokens expuestos.
OPSMCP
  • Elimine las credenciales de API codificadas.
  • Utilice una solución de gestión de secretos.
  • Implemente autorización por herramienta.
  • Elimine la funcionalidad administrativa oculta de producción.
  • Nunca devuelva claves privadas a través de una API.
  • Ejecute el servicio con una cuenta sin privilegios.
SSH
  • Rote las claves comprometidas.
  • Utilice permisos restrictivos para las claves privadas.
  • Minimice el acceso SSH directo de root.
  • Supervise los eventos de autenticación de root.

🔍 Detección

Sistema

💡 Conclusiones clave

01 — Las herramientas de desarrollo son superficie de ataque Las herramientas diseñadas para el desarrollo local pueden convertirse en vulnerabilidades críticas cuando se exponen a redes no confiables.

02 — Los tokens de Jupyter son credenciales potentes El acceso a un token de Jupyter puede proporcionar mucho más que acceso a la interfaz: las API de kernel pueden permitir la ejecución arbitraria de código.

03 — Oculto no significa seguro Un endpoint no documentado no es un mecanismo de autorización.

04 — El código fuente es valioso tras la explotación El código fuente de la aplicación puede revelar mecanismos de autenticación, secretos, funcionalidad oculta y límites de privilegios de inmediato.

05 — El privilegio mínimo puede romper cadenas de ataque Si OPSMCP se hubiera ejecutado como una cuenta de servicio sin privilegios, el impacto final se habría reducido significativamente.


📚 Referencias

  • CVE-2026-23744 — Ejecución remota de código en MCPJam Inspector
  • Documentación de JupyterLab — Arquitectura de kernels y API
  • OWASP — Privilegio Mínimo
  • OWASP — Gestión de Secretos

⚠️ Aviso legal

Este repositorio está destinado únicamente a investigación de seguridad autorizada, pruebas de penetración y fines educativos. No utilice las técnicas aquí descritas contra sistemas sin autorización explícita.


⚡ MCPJam → RCE → Jupyter → User → OPSMCP → root ⚡

Descargar herramienta
PasoEtapa
1MCPJam Inspector expuesto en la red
2CVE-2026-23744 explotado
3RCE inicial logrado
4Token de JupyterLab divulgado
5Ejecución de kernel de Jupyter
6Shell de nivel de usuario
7Revisión del código fuente de OPSMCP
8Credencial de API codificada descubierta
9Funcionalidad administrativa oculta abusada
10Credencial de root divulgada
11root
#DebilidadImpacto
1MCPJam Inspector expuestoSuperficie de ataque remota
2CVE-2026-23744RCE inicial
3Token en los argumentos del procesoDivulgación de credenciales
4Acceso al kernel de JupyterEjecución de código de nivel usuario
5Código fuente legible de la aplicaciónDescubrimiento de credenciales
6Clave de API de OPSMCP codificadaBypass de autenticación de la API
7Funcionalidad administrativa ocultaOperación privilegiada
8OPSMCP ejecutándose como rootCompromiso total del sistema
Vigile
MCPJamCambios de configuración inesperados · procesos hijos sospechosos · clientes remotos inusuales
JupyterLabUso inesperado de tokens · creación inesperada de kernels · conexiones WebSocket anómalas · procesos shell generados por kernels
OPSMCPInvocación de herramientas no documentadas · solicitudes relacionadas con credenciales · clientes de API inesperados · operaciones administrativas
SSHInicios de sesión de root inesperados · nuevas claves SSH · fuentes de autenticación inusuales