Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
cve-2026-31431-fleet-remediator — Orchestrateur d'audit et de remédiation à l'échelle de la flotte pour CVE-2026-31431 sur hôtes Linux via SSH, avec vérification stricte des clés d'hôte et rapports multi-formats. | Kitploit
Outils/GitHubGitHub/wavesman/cve-2026-31431-fleet-remediator
Sécurité de l'Infrastructure CloudScanners de VulnérabilitésAudit de ConfigurationDevSecOps
GitHubwavesman/cve-2026-31431-fleet-remediator

cve-2026-31431-fleet-remediator

Orchestrateur d'audit et de remédiation à l'échelle de la flotte pour CVE-2026-31431 sur hôtes Linux via SSH, avec vérification stricte des clés d'hôte et rapports multi-formats.

Voir le dépôt
5il y a 4 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Outil d'audit et de remédiation CVE-2026-31431 pour flotte de machines

中文说明

Ce projet est un orchestrateur à l'échelle d'une flotte pour auditer et remédier la CVE-2026-31431 sur des hôtes Linux dans des réseaux d'entreprise/internes.

  • Connexion SSH par lots à plusieurs hôtes
  • Collecte de preuves de risque et classification de l'état
  • Atténuation temporaire (désactivation de algif_aead)
  • Workflow de correctif/mise à niveau du noyau adapté à la distribution
  • Rapports JSON / CSV / Markdown

1. Prérequis

  • Python : >=3.13
  • Gestionnaire de paquets : uv
  • Réseau : le runner doit pouvoir joindre les hôtes cibles via SSH

2. Démarrage rapide

2.1 Installer les dépendances

root@kitploit:~
uv sync

Le miroir Tsinghua est configuré dans pyproject.toml :

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

2.2 Préparer la configuration des actifs

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

Mettez ensuite à jour fleet.env avec vos vrais hôtes et identifiants.

2.3 Exécution

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

3. Structure du projet

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. Référence de configuration fleet.env

Le format est CLÉ=VALEUR. Les lignes vides et les commentaires # sont ignorés.

4.1 Clés globales

MODE

  • Mode d'exécution.
  • Valeurs :
    • audit : détection uniquement, sans remédiation.
    • fix : détection puis exécution du flux de remédiation.
  • Défaut : audit

AUTO_REBOOT

  • Indique s'il faut redémarrer l'hôte automatiquement après une remédiation réussie.
  • Valeurs : 0 ou 1
  • Défaut : 0
  • Effectif uniquement lorsque MODE=fix.

SSH_TIMEOUT

  • Délai d'expiration de connexion/authentification SSH (secondes).
  • Type : entier
  • Défaut : 12

MAX_WORKERS

  • Taille de concurrence de la flotte (workers du pool de threads).
  • Type : entier
  • Défaut : 8

REPORT_DIR

  • Répertoire de sortie pour les rapports générés.
  • Type : chemin relatif ou absolu
  • Défaut : ./reports

PROGRESS_HEARTBEAT_SECONDS

  • Intervalle de battement de cœur pour les journaux de progression en temps réel.
  • Type : entier (secondes)
  • Défaut : 5

DEVICE_MAX_DURATION_SECONDS

  • Durée d'exécution totale maximale par appareil avant avertissements de délai d'expiration/blocage.
  • Type : entier (secondes)
  • Défaut : 1800

PROGRESS_LOG_TO_FILE

  • Indique s'il faut consigner les journaux de progression dans REPORT_DIR.
  • Valeurs : 0 ou 1
  • Défaut : 1

FLEET_COUNT

  • Nombre d'emplacements d'appareils. Le chargeur analyse 1..FLEET_COUNT.
  • Type : entier
  • Si DEVICE_n_HOST est vide, cet emplacement est ignoré.

4.2 Clés par appareil

Chaque hôte utilise le préfixe DEVICE_{n}_, par exemple DEVICE_1_*, DEVICE_2_*.

DEVICE_n_NAME

  • Nom d'affichage dans les rapports.
  • Facultatif. Si vide, repli automatique sur device_n.

DEVICE_n_HOST

  • IP ou nom DNS de l'hôte cible.
  • Requis pour cet emplacement.

DEVICE_n_PORT

  • Port SSH.
  • Défaut : 22

DEVICE_n_USER

  • Nom d'utilisateur SSH.
  • Défaut : root

DEVICE_n_PASSWORD

  • Authentification par mot de passe SSH.
  • À utiliser avec ou à la place de DEVICE_n_KEY.
  • Le script n'utilise que les identifiants explicitement définis dans fleet.env.

DEVICE_n_KEY

  • Chemin de la clé privée SSH.
  • Exemple : ./keys/node-1_ed25519
  • Si DEVICE_n_PASSWORD et DEVICE_n_KEY sont tous deux vides, la connexion échoue rapidement.

DEVICE_n_SUDO_PASSWORD

  • Mot de passe sudo pour les utilisateurs non-root.
  • Utilisé pour les commandes de remédiation.

4.3 Exemple complet

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. Modes d'exécution

5.1 Mode audit (premier passage recommandé)

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

Comportement :

  • Connexion aux hôtes
  • Collecte des indices noyau/module/correctif
  • Classification de l'état de risque
  • Génération des rapports

5.2 Mode correctif

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

Comportement :

  • Appliquer d'abord l'atténuation temporaire :
    • écrire /etc/modprobe.d/disable-cve-2026-31431-algif-aead.conf
    • tenter de décharger algif_aead
  • Exécuter la mise à jour du noyau spécifique à la distribution
  • Redémarrage facultatif selon AUTO_REBOOT

6. Définitions des états

SAFE

  • Indices de correctif trouvés et algif_aead n'est pas chargé.

MITIGATED

  • Indices d'atténuation trouvés alors que les indices de correctif restent peu clairs.

NEEDS_PATCH

  • algif_aead est disponible/chargé et les indices de correctif sont absents.

UNKNOWN

  • Preuves insuffisantes pour classifier.

FAILED

  • Échec de la connexion SSH ou de l'exécution des commandes.

7. Sorties de rapport

Chaque exécution génère 3 fichiers dans REPORT_DIR :

  • cve_2026_31431_<timestamp>.json
  • cve_2026_31431_<timestamp>.csv
  • cve_2026_31431_<timestamp>.md
  • progress_<timestamp>.log (journaux de progression en temps réel et de battement de cœur)

Champs principaux :

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

8. Notes de sécurité

  • Ne committez pas fleet.env ni les clés privées.
  • Utilisez des comptes opérationnels à privilèges minimaux lorsque c'est possible.
  • Prenez des instantanés/sauvegardes avant toute remédiation en production.
  • Déploiement recommandé : audit -> fix -> ré-audit.

9. Dépannage

ModuleNotFoundError: No module named 'paramiko'

  • Exécutez uv sync.

De nombreux hôtes sont en FAILED

  • Vérifiez la connectivité, les identifiants SSH, les permissions sudo et l'état de la clé d'hôte.

BadHostKeyException

  • L'empreinte de l'hôte entre en conflit avec l'enregistrement actuel de known_hosts.
  • Ce n'est pas un repli d'authentification par clé système ; l'authentification n'utilise toujours que les identifiants de fleet.env.
  • Vérifiez l'identité de l'hôte hors bande, puis mettez à jour known_hosts :
    • ssh-keygen -R <host>
    • ssh-keyscan -H <host> >> $env:USERPROFILE\.ssh\known_hosts

Server ... not found in known_hosts

  • Le mode strict de clé d'hôte est activé et l'empreinte de l'hôte est absente.
  • Ajoutez la clé d'hôte à known_hosts, puis relancez.

Le noyau a été mis à jour mais l'état reste risqué

  • Un redémarrage peut être nécessaire pour démarrer sur le noyau corrigé.
Télécharger l’outil