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

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

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

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

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

Категории

Все категории
Loading categories
cve-2026-31431-fleet-remediator — Fleet-scale CVE-2026-31431 audit and remediation orchestrator for Linux hosts via SSH, with strict host-key verification and multi-format reporting. | Kitploit
Инструменты/GitHubGitHub/wavesman/cve-2026-31431-fleet-remediator
Безопасность облачной инфраструктурыСканеры уязвимостейАудит конфигурацииDevSecOps
GitHubwavesman/cve-2026-31431-fleet-remediator

cve-2026-31431-fleet-remediator

Fleet-scale CVE-2026-31431 audit and remediation orchestrator for Linux hosts via SSH, with strict host-key verification and multi-format reporting.

Репозиторий

Популярное

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

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

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

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

Смотреть все инструменты →
3 месяцев назадЕщё не проверено
Поделиться

CVE-2026-31431 Инструмент аудита и исправления для парка машин

中文说明

Этот проект представляет собой оркестратор масштаба парка машин для аудита и устранения CVE-2026-31431 на Linux-хостах в корпоративных/внутренних сетях.

  • Пакетный вход по SSH на несколько хостов
  • Сбор доказательств риска и классификация статусов
  • Временное смягчение (отключение algif_aead)
  • Рабочий процесс исправления/обновления ядра с учётом дистрибутива
  • Отчёты в форматах JSON / CSV / Markdown

1. Требования

  • Python: >=3.13
  • Менеджер пакетов: uv
  • Сеть: исполнитель должен иметь доступ к целевым хостам по SSH

2. Быстрый старт

2.1 Установка зависимостей

root@kitploit:~
uv sync

Зеркало Tsinghua настроено в pyproject.toml:

root@kitploit:~
[tool.uv]
index-url = "https://pypi.tuna.tsinghua.edu.cn/simple"

2.2 Подготовка конфигурации активов

root@kitploit:~
cp fleet.env.example fleet.env

Затем обновите fleet.env, указав свои реальные хосты и учётные данные.

2.3 Запуск

root@kitploit:~
uv run python main.py fleet.env

3. Структура проекта

root@kitploit:~
.
├── main.py
├── pyproject.toml
├── uv.lock
├── fleet.env.example
├── reports/
└── src/
    ├── main.py
    ├── models.py
    ├── config.py
    ├── executor.py
    ├── collector.py
    ├── analyzer.py
    ├── adapters.py
    ├── remediator.py
    ├── orchestrator.py
    └── reporter.py

4. Справочник по конфигурации fleet.env

Формат: KEY=VALUE. Пустые строки и комментарии # игнорируются.

4.1 Глобальные ключи

MODE

  • Режим выполнения.
  • Значения:
    • audit: только обнаружение, без устранения.
    • fix: обнаружение и выполнение процесса устранения.
  • По умолчанию: audit

AUTO_REBOOT

  • Перезагружать ли хост автоматически после успешного устранения.
  • Значения: 0 или 1
  • По умолчанию: 0
  • Действует только при MODE=fix.

SSH_TIMEOUT

  • Таймаут подключения/аутентификации SSH (секунды).
  • Тип: целое число
  • По умолчанию: 12

MAX_WORKERS

  • Размер параллелизма парка машин (число рабочих потоков).
  • Тип: целое число
  • По умолчанию: 8

REPORT_DIR

  • Каталог вывода для создаваемых отчётов.
  • Тип: относительный или абсолютный путь
  • По умолчанию: ./reports

PROGRESS_HEARTBEAT_SECONDS

  • Интервал heartbeat для журналов прогресса в реальном времени.
  • Тип: целое число (секунды)
  • По умолчанию: 5

DEVICE_MAX_DURATION_SECONDS

  • Максимальное общее время выполнения на устройство до предупреждений о таймауте/зависании.
  • Тип: целое число (секунды)
  • По умолчанию: 1800

PROGRESS_LOG_TO_FILE

  • Сохранять ли журналы прогресса в REPORT_DIR.
  • Значения: 0 или 1
  • По умолчанию: 1

FLEET_COUNT

  • Количество слотов устройств. Загрузчик обрабатывает 1..FLEET_COUNT.
  • Тип: целое число
  • Если DEVICE_n_HOST пуст, этот слот пропускается.

4.2 Ключи для каждого устройства

Каждый хост использует префикс DEVICE_{n}_, например DEVICE_1_*, DEVICE_2_*.

DEVICE_n_NAME

  • Отображаемое имя в отчётах.
  • Необязательно. Если пусто, автоматически используется device_n.

DEVICE_n_HOST

  • IP-адрес или DNS-имя целевого хоста.
  • Обязательно для этого слота.

DEVICE_n_PORT

  • Порт SSH.
  • По умолчанию: 22

DEVICE_n_USER

  • Имя пользователя SSH.
  • По умолчанию: root

DEVICE_n_PASSWORD

  • Аутентификация по паролю SSH.
  • Используется вместе с DEVICE_n_KEY или вместо него.
  • Скрипт использует только те учётные данные, которые явно указаны в fleet.env.

DEVICE_n_KEY

  • Путь к закрытому ключу SSH.
  • Пример: ./keys/node-1_ed25519
  • Если и DEVICE_n_PASSWORD, и DEVICE_n_KEY пусты, подключение завершится ошибкой.

DEVICE_n_SUDO_PASSWORD

  • Пароль sudo для пользователей, не являющихся root.
  • Используется для команд устранения.

4.3 Полный пример

root@kitploit:~
# =========================
# Global
# =========================
MODE=audit
AUTO_REBOOT=0
SSH_TIMEOUT=12
MAX_WORKERS=8
REPORT_DIR=./reports
PROGRESS_HEARTBEAT_SECONDS=5
DEVICE_MAX_DURATION_SECONDS=1800
PROGRESS_LOG_TO_FILE=1
FLEET_COUNT=3

# =========================
# Device 1
# =========================
DEVICE_1_NAME=pve-node-1
DEVICE_1_HOST=192.168.1.10
DEVICE_1_PORT=22
DEVICE_1_USER=root
DEVICE_1_PASSWORD=
DEVICE_1_KEY=./keys/pve-node-1_ed25519
DEVICE_1_SUDO_PASSWORD=

# =========================
# Device 2
# =========================
DEVICE_2_NAME=web-1
DEVICE_2_HOST=192.168.1.20
DEVICE_2_PORT=22
DEVICE_2_USER=admin
DEVICE_2_PASSWORD=your_ssh_password
DEVICE_2_KEY=
DEVICE_2_SUDO_PASSWORD=your_sudo_password

# =========================
# Device 3
# =========================
DEVICE_3_NAME=
DEVICE_3_HOST=192.168.1.30
DEVICE_3_PORT=22
DEVICE_3_USER=ops
DEVICE_3_PASSWORD=
DEVICE_3_KEY=./keys/db-1_ed25519
DEVICE_3_SUDO_PASSWORD=

5. Режимы выполнения

5.1 Режим аудита (рекомендуется для первого прохода)

root@kitploit:~
MODE=audit
uv run python main.py fleet.env

Поведение:

  • Подключение к хостам
  • Сбор сведений о ядре/модулях/исправлениях
  • Классификация статуса риска
  • Формирование отчётов

5.2 Режим исправления

root@kitploit:~
MODE=fix
AUTO_REBOOT=0
uv run python main.py fleet.env

Поведение:

  • Сначала применяется временное смягчение:
    • запись /etc/modprobe.d/disable-cve-2026-31431-algif-aead.conf
    • попытка выгрузить algif_aead
  • Выполняется обновление ядра с учётом дистрибутива
  • Необязательная перезагрузка в зависимости от AUTO_REBOOT

6. Определения статусов

SAFE

  • Найдены сведения об исправлении, и algif_aead не загружен.

MITIGATED

  • Найдены сведения о смягчении, а сведения об исправлении всё ещё неясны.

NEEDS_PATCH

  • algif_aead доступен/загружен, а сведения об исправлении отсутствуют.

UNKNOWN

  • Недостаточно доказательств для классификации.

FAILED

  • Сбой входа по SSH или выполнения команды.

7. Выходные отчёты

Каждый запуск создаёт 3 файла в REPORT_DIR:

  • cve_2026_31431_<timestamp>.json
  • cve_2026_31431_<timestamp>.csv
  • cve_2026_31431_<timestamp>.md
  • progress_<timestamp>.log (журналы прогресса и heartbeat в реальном времени)

Основные поля:

  • name, host
  • status
  • kernel, os
  • algif_loaded, algif_available
  • patch_hint
  • fixed, rebooted
  • error

8. Замечания по безопасности

  • Не коммитьте fleet.env или закрытые ключи.
  • По возможности используйте операционные учётные записи с минимальными привилегиями.
  • Делайте снимки/резервные копии перед устранением в производственной среде.
  • Рекомендуемый порядок развёртывания: audit -> fix -> повторный audit.

9. Устранение неполадок

ModuleNotFoundError: No module named 'paramiko'

  • Выполните uv sync.

Многие хосты имеют статус FAILED

  • Проверьте связность, учётные данные SSH, права sudo и состояние ключей хоста.

BadHostKeyException

  • Отпечаток хоста конфликтует с текущей записью в known_hosts.
  • Это не откат к аутентификации по системному ключу; аутентификация по-прежнему использует только учётные данные из fleet.env.
  • Проверьте подлинность хоста вне канала, затем обновите known_hosts:
    • ssh-keygen -R <host>
    • ssh-keyscan -H <host> >> $env:USERPROFILE\.ssh\known_hosts

Server ... not found in known_hosts

  • Включён строгий режим проверки ключей хоста, а отпечаток хоста отсутствует.
  • Добавьте ключ хоста в known_hosts, затем запустите повторно.

Ядро обновлено, но статус всё ещё рискованный

  • Возможно, потребуется перезагрузка для загрузки исправленного ядра.
Скачать инструмент