Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
mcpjam-to-root — Da MCPJam Inspector RCE a root — CVE-2026-23744, divulgazione del token JupyterLab, esecuzione del kernel ed escalation dei privilegi OPSMCP | Kitploit
Strumenti/GitHubGitHub/itsc1sco/mcpjam-to-root
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPost-ExploitPenetration TestingApprendimento e FormazioneSicurezza delle API
GitHubitsc1sco/mcpjam-to-root

mcpjam-to-root

Da MCPJam Inspector RCE a root — CVE-2026-23744, divulgazione del token JupyterLab, esecuzione del kernel ed escalation dei privilegi OPSMCP

Vedi Repository
1 giorno faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

⚠️ Avvertenza

Questo repository è destinato esclusivamente a ricerca sulla sicurezza autorizzata, test di penetrazione e scopi didattici. Non utilizzare le tecniche qui descritte contro sistemi senza autorizzazione esplicita.


⚡ MCPJam → Root

CVE-2026-23744 MCPJam Inspector JupyterLab Linux Privilege Escalation

Dalla RCE di MCPJam Inspector a root — CVE-2026-23744, divulgazione del token di JupyterLab, esecuzione del kernel ed escalation dei privilegi di OPSMCP.

---

📖 Panoramica

Questo repository documenta una catena di attacco Linux completa, da un'istanza esposta di MCPJam Inspector fino all'accesso di livello root.

La catena combina vulnerabilità presenti negli strumenti di sviluppo, nei servizi locali, nella gestione delle credenziali e nell'autorizzazione delle applicazioni:

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

[!WARNING] Questo repository è destinato esclusivamente a ricerca sulla sicurezza autorizzata, test di penetrazione e scopi didattici. Gli indirizzi target, le credenziali, i token e gli altri valori specifici dell'ambiente presenti in questo documento sono oscurati o sostituiti con segnaposto di laboratorio.


📑 Indice

  • 🎯 Percorso di attacco
  • 🔎 Enumerazione
  • 💥 CVE-2026-23744 — RCE di MCPJam Inspector
  • 🕵️ Enumerazione interna
  • 🔐 Divulgazione del token di JupyterLab
  • 🧠 Esecuzione del kernel di JupyterLab
  • 📂 Codice sorgente di OPSMCP
  • 🚨 Funzione amministrativa nascosta
  • 🔑 Divulgazione delle credenziali di root
  • 👑 Root
  • 🗺️ Catena di attacco completa
  • 🧩 Riepilogo delle vulnerabilità
  • 🛡️ Mitigazione
  • 🔍 Rilevamento
  • 💡 Punti chiave
  • 📚 Riferimenti

🎯 Percorso di attacco


🔎 Enumerazione

La ricognizione iniziale si concentra sull'identificazione dei servizi esposti esternamente.

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

È quindi possibile eseguire una scansione TCP completa:

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

Servizi esterni rilevanti:

PortaServizioRuolo
22SSHAmministrazione remota
6274MCPJam InspectorSuperficie di attacco iniziale

Servizi in ascolto solo su localhost:

PortaServizioPrivilegio
8888JupyterLabUtente
5000OPSMCProot

L'istanza di MCPJam Inspector accessibile esternamente sulla porta 6274 diventa il punto di ingresso iniziale.


💥 CVE-2026-23744 — RCE di MCPJam Inspector

L'istanza esposta di MCPJam Inspector è affetta da CVE-2026-23744.

MCPJam Inspector è progettato principalmente come interfaccia di sviluppo e test per i server MCP. La vulnerabilità diventa particolarmente pericolosa quando questa interfaccia è esposta a una rete non fidata: un flusso di configurazione vulnerabile consente a dati controllati dall'attaccante di raggiungere un percorso di esecuzione dei comandi.

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

La vulnerabilità interessa le versioni di MCPJam Inspector fino alla 1.4.2 inclusa. Per test autorizzati, è possibile utilizzare un proof of concept pubblico per validare la vulnerabilità nell'ambiente target.

Dopo lo sfruttamento riuscito, conferma il contesto di esecuzione:

root@kitploit:~
id
whoami
hostname

🕵️ Enumerazione interna

Una volta ottenuto il primo accesso, i servizi locali diventano visibili.

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 differenza di privilegi tra le due applicazioni interne è particolarmente interessante.


🔐 Divulgazione del token di JupyterLab

Il processo JupyterLab è stato avviato con il token di autenticazione direttamente nella riga di comando:

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

La riga di comando può essere ispezionata tramite:

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

Questo dimostra un problema comune di gestione dei segreti:

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

Il token recuperato fornisce accesso all'API Jupyter locale.


🧠 Esecuzione del kernel di JupyterLab

Jupyter espone un'API REST per la gestione dei kernel. Dopo l'autenticazione con il token recuperato, è possibile creare un kernel tramite:

root@kitploit:~
POST /api/kernels

La risposta contiene un UUID del kernel. I kernel di Jupyter comunicano tramite WebSocket:

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

Il protocollo di messaggistica di Jupyter utilizza un messaggio execute_request per eseguire codice Python:

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

Questo consente l'esecuzione di Python sotto l'identità del servizio Jupyter — in questo ambiente, il kernel viene eseguito come User.

root@kitploit:~
MCPJam RCE → JupyterLab → User

📂 Codice sorgente di OPSMCP

Con una shell utente disponibile, il passo successivo consiste nell'esaminare le applicazioni installate localmente. L'applicazione OPSMCP si trova in:

root@kitploit:~
/opt/opsmcp/

L'esame del codice sorgente rivela una credenziale API incorporata:

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

L'applicazione mantiene inoltre due raccolte di strumenti:

Strumenti visibili

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

Strumenti nascosti

  • ops._admin_dump
  • ops._debug_mode

Le funzioni amministrative sono particolarmente interessanti perché non vengono restituite tramite la normale enumerazione degli strumenti.

Non documentato non significa non accessibile.

Il backend registra comunque gli strumenti nascosti e accetta i loro nomi tramite il meccanismo generico di esecuzione degli strumenti.


🚨 Funzione amministrativa nascosta

L'applicazione autentica le richieste utilizzando una chiave API:

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

Una volta autenticato, l'endpoint di esecuzione degli strumenti verifica solo se la funzione richiesta esiste — non se al chiamante è consentito eseguirla.

Cosa accade:

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

Cosa dovrebbe accadere:

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

La funzione amministrativa nascosta può accedere a risorse sensibili di proprietà di root.


🔑 Divulgazione delle credenziali di root

Lo strumento amministrativo accetta un target che descrive le informazioni richieste. Una delle risorse supportate è la chiave SSH di root:

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

L'applicazione legge quindi la chiave privata SSH di proprietà di root, cosa possibile perché OPSMCP viene eseguito come root e può leggere /root/*. L'applicazione diventa quindi una primitiva di divulgazione delle credenziali.


👑 Root

Dopo aver recuperato la credenziale SSH del laboratorio autorizzato, salvala con permessi restrittivi:

root@kitploit:~
chmod 600 <ROOT_KEY>

Verifica il contesto di autenticazione risultante:

root@kitploit:~
whoami
id

Livello di privilegio finale: root 🎉


🗺️ Catena di attacco 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

🧩 Riepilogo delle vulnerabilità


🛡️ Mitigazione

MCPJam Inspector
  • Aggiorna a una versione corretta.
  • Mantieni le interfacce di Inspector associate a localhost quando possibile.
  • Richiedi l'autenticazione per le distribuzioni remote.
  • Valida l'input della configurazione MCP.
  • Esegui il servizio con un account dedicato a bassi privilegi.
JupyterLab
  • Proteggi sia l'interfaccia web sia l'API.
  • Limita l'accesso WebSocket ai kernel.
  • Evita di passare i segreti di autenticazione tramite argomenti della riga di comando.
  • Esegui Jupyter con privilegi minimi.
  • Ruota i token esposti.
OPSMCP
  • Rimuovi le credenziali API hardcoded.
  • Utilizza una soluzione di gestione dei segreti.
  • Implementa l'autorizzazione per singolo strumento.
  • Rimuovi le funzionalità amministrative nascoste dalla produzione.
  • Non restituire mai chiavi private tramite un'API.
  • Esegui il servizio con un account senza privilegi.
SSH
  • Ruota le chiavi compromesse.
  • Utilizza permessi restrittivi per le chiavi private.
  • Minimizza l'accesso SSH diretto come root.
  • Monitora gli eventi di autenticazione di root.

🔍 Rilevamento

SistemaCosa monitorare

💡 Punti chiave

01 — Gli strumenti per sviluppatori sono superficie di attacco Gli strumenti progettati per lo sviluppo locale possono diventare vulnerabilità critiche quando esposti a reti non fidate.

02 — I token di Jupyter sono credenziali potenti L'accesso a un token di Jupyter può fornire molto più dell'accesso all'interfaccia: le API dei kernel possono consentire l'esecuzione arbitraria di codice.

03 — Nascosto non significa sicuro Un endpoint non documentato non è un meccanismo di autorizzazione.

04 — Il codice sorgente è prezioso post-exploitation Il codice sorgente dell'applicazione può rivelare immediatamente meccanismi di autenticazione, segreti, funzionalità nascoste e confini di privilegio.

05 — Il principio del minimo privilegio può spezzare le catene di attacco Se OPSMCP fosse stato eseguito con un account di servizio senza privilegi, l'impatto finale sarebbe stato significativamente ridotto.


📚 Riferimenti

  • CVE-2026-23744 — Esecuzione remota di codice in MCPJam Inspector
  • Documentazione di JupyterLab — Architettura di kernel e API
  • OWASP — Least Privilege
  • OWASP — Secrets Management

⚠️ Avvertenza

Questo repository è destinato esclusivamente a ricerca sulla sicurezza autorizzata, test di penetrazione e scopi didattici. Non utilizzare le tecniche qui descritte contro sistemi senza autorizzazione esplicita.


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

Scarica lo strumento
PassoFase
1MCPJam Inspector esposto sulla rete
2CVE-2026-23744 sfruttata
3RCE iniziale ottenuta
4Token di JupyterLab divulgato
5Esecuzione del kernel di Jupyter
6Shell a livello utente
7Analisi del codice sorgente di OPSMCP
8Credenziale API hardcoded scoperta
9Funzionalità amministrativa nascosta abusata
10Credenziale di root divulgata
11root
#DebolezzaImpatto
1MCPJam Inspector espostoSuperficie di attacco remota
2CVE-2026-23744RCE iniziale
3Token negli argomenti del processoDivulgazione di credenziali
4Accesso al kernel di JupyterEsecuzione di codice a livello utente
5Codice sorgente dell'applicazione leggibileScoperta di credenziali
6Chiave API OPSMCP hardcodedBypass dell'autenticazione API
7Funzionalità amministrativa nascostaOperazione privilegiata
8OPSMCP eseguito come rootCompromissione totale del sistema
MCPJamModifiche di configurazione inattese · processi figlio sospetti · client remoti insoliti
JupyterLabUtilizzo inatteso del token · creazione inattesa di kernel · connessioni WebSocket anomale · processi shell generati dai kernel
OPSMCPInvocazione di strumenti non documentati · richieste relative a credenziali · client API inattesi · operazioni amministrative
SSHAccessi root inattesi · nuove chiavi SSH · sorgenti di autenticazione insolite