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
psa-2026-00043-recovery — Notes de récupération pour l'avis proxmox ID : PSA-2026-00043-1 (CVE-2023-54391) | Kitploit
Outils/GitHubGitHub/disqualifier/psa-2026-00043-recovery
Sécurité de l'Infrastructure CloudAnalyse des VulnérabilitésAnalyse ForensiqueRécupération de DonnéesCriminalistique NumériqueRéponse aux Incidents
GitHubdisqualifier/psa-2026-00043-recovery

psa-2026-00043-recovery

Notes de récupération pour l'avis proxmox ID : PSA-2026-00043-1 (CVE-2023-54391)

Voir le dépôt
il y a 1 jourPas 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

psa-2026-00043-recovery

Récupération après un wiper déguisé en ransomware, suite à une attaque contre une infrastructure Proxmox exposée sur Internet (PSA-2026-00043-1 / CVE-2023-54391).

L'attaquant a effacé les invités et laissé les systèmes de fichiers endommagés. Deux pistes de récupération selon le type d'invité :

  • invité base de données — extraire les documents BSON des pages WiredTiger brutes
  • hôte applicatif — extraire les fichiers (nginx, unités systemd, env, racines applicatives) du système de fichiers endommagé

Voici les outils et la méthodologie, généralisés pour être utiles à toute personne dans la même situation. Lecture seule sur la source, CC0. Aucune donnée réelle récupérée n'est incluse ; les exemples de sortie utilisent des espaces réservés.


Première heure

Le disque endommagé est désormais votre seule copie de ce qui reste. Ne le réparez pas. Imagez-le.

root@kitploit:~
blockdev --setro /dev/<source>                                    # 1. lecture seule, immédiatement
dd if=/dev/<source> of=/safe/disk.img bs=4M conv=noerror,sync     # 2. image vers un stockage sûr
# 3. ne PAS faire de fsck, de montage rw, ni de "réparation" ; cela écrase les blocs dont un carver a besoin
# 4. enveloppez chaque passe sur la source dans scripts/source_guard.sh
# 5. récupérez uniquement depuis l'image, jamais depuis l'original

Les scripts

Discipline partagée, carvers séparés. Lancez n'importe lequel avec -h. Python 3.8+ / bash, aucun paquet tiers. source_guard.sh nécessite Linux /proc/diskstats.

scriptpistece qu'il fait
scripts/source_guard.shpartagéEnveloppe une commande de récupération ; prouve que la source est restée en lecture seule via un diff de compteur d'écritures. Échoue sur toute écriture sur la source.
scripts/wt_leaf_carve.pybase de donnéesExtrait le BSON des pages feuilles WiredTiger brutes. Taille de page par décodage, pas par ajustement ; contrôle positif obligatoire.
scripts/bson_frame.pybase de donnéesCompte/valide les documents BSON par cadrage sur disque. Fichier entier par défaut ; un échantillon est signalé comme un PLANCHER.
scripts/fs_carve_classify.pysystème de fichiersClasse les fragments de fichiers extraits par contenu, pas par nom de fichier ; écrit un manifeste par fichier ; scan exhaustif des secrets.
scripts/sensitivity_scan.pypartagéHiérarchise les données récupérées ROUGE/AMBRE/VERT pour l'exposition d'identifiants/données personnelles. Affiche les compteurs, jamais les valeurs.
scripts/integrity_verify.pypartagéProuve qu'une copie réorganisée est fidèle à la source. Basé sur le contenu (survit aux renommages) ; lit les colonnes OK/ÉCHEC, pas les codes de sortie.
scripts/make_demo.py—Génère des fixtures BSON synthétiques (aucune donnée réelle) pour tester la boîte à outils.

Essayez-le

root@kitploit:~
python3 scripts/make_demo.py
python3 scripts/bson_frame.py --total demo/*.bson
python3 scripts/sensitivity_scan.py demo/*.bson
python3 scripts/integrity_verify.py --compare demo/source demo/copy

Méthodologie

Exécutée dans cet ordre. L'étape d'extraction bifurque selon l'invité ; les bornes setro/image et la vérification basée sur le contenu sont identiques dans les deux cas.

root@kitploit:~
disque endommagé ──setro+image──► image en lecture seule
                                    │
                base de données ────►│◄────────── système de fichiers
          extraire les pages WT     │            extraire les fichiers
          compter les documents     │            classifier par contenu + manifeste
                                    │
                          hiérarchiser l'exposition (ROUGE/AMBRE/VERT)
                          vérifier la copie (basée sur le contenu)
                                    │
                                 récupération

Modes de défaillance

  1. Zéro est ambigu : une région vide et un décodeur aveugle renvoient tous deux rien. Contrôlez positivement chaque zéro contre une page que vous détenez déjà.
  2. Choisissez la taille de page par premier décodage réussi, pas par premier ajustement. L'ajustement choisit toujours 4096 et abandonne les pages multi-blocs.
  3. Un comptage échantillonné est un plancher, pas un total. Lisez tout le bac.
  4. Les noms sur-signalent (données utilisées comme clés de carte), les valeurs sous-signalent (secrets formatés pour humains). Exigez les deux plus le contexte.
  5. Comptez les champs peuplés, pas les occurrences. Les champs riches en nulls gonflent le nombre.
  6. Vérifiez par hash de contenu, pas par nom de fichier ; une récupération renomme tout.
  7. find | sort | xargs sha256sum | sha256sum hache aussi les chemins et la locale. Utilisez LC_ALL=C, ou un manifeste par fichier.
  8. sha256sum -c sort avec 0 tout en affichant ÉCHEC. Lisez les colonnes, pas $?.
  9. Un rapport de localisation d'identifiants ne doit pas contenir les valeurs des identifiants. Affichez uniquement les formes et les compteurs.
  10. Une vérification n'est vraie que lorsqu'elle a été exécutée. Estampillez chaque lecture ; revérifiez l'état actuel.

Notes

Points de départ, pas des solutions clés en main. WiredTiger en production utilise la compression de pages (snappy/zstd) et un encodage de cellules que le carver générique laisse en ébauche. Implémentez votre propre décodeur robuste pour les pages compressées. Recoupez chaque nombre avec un contrôle positif et un second instrument différent : deux outils qui partagent une hypothèse s'accordent à cause de l'hypothèse, pas parce qu'elle est juste ; c'est la lecture des octets qui permet de le détecter.

Si vos données ne sont pas les mêmes (base de données, application ou système de fichiers différents), la méthodologie tient toujours : passez la source en lecture seule, imagez-la, extrayez depuis la copie, contrôlez positivement avant de croire un zéro, comptez l'ensemble, vérifiez par contenu. Changez le carver ; gardez la discipline.

Durcissez la cause racine : l'interface web Proxmox sur :8006 ne doit pas être accessible depuis Internet. Suivez les avis de sécurité officiels Proxmox : https://forum.proxmox.com/threads/proxmox-virtual-environment-security-advisories.149331/

Un article plus convivial avec les conseils généraux de l'auteur sur la récupération et le durcissement : https://claude.ai/code/artifact/621495ce-4972-405a-ad90-f7703f7dc2f1

CC0 / domaine public. Voir LICENSE.

Télécharger l’outil