# HybridPetya : conduite à tenir

Ce document s'adresse à une victime ou à un intervenant face à une machine affichant le faux « CHKDSK » ou l'écran de rançon d'HybridPetya (« Ooops, your important files are encrypted », 1000 dollars, contact `wowsmith123457@proton.me`). Il découle du billet HybridPetya.

## 1. Ce qu'il ne faut pas faire

- **Ne pas réinstaller Windows ni réparer le démarrage.** La récupération sans clé a besoin des fichiers `verify` et `counter` de la partition système EFI (ESP), et du disque tel quel.
- **Ne pas lancer CHKDSK ni d'outil de réparation NTFS.** Ils réécriraient un `$MFT` qu'ils jugent corrompu.
- **Ne pas payer.** Le chiffrement du disque par le bootkit UEFI se défait sans la clé (§3 ci-dessous). Les fichiers chiffrés en mode utilisateur, eux, ne se récupèrent qu'avec la clé de l'opérateur, et rien ne garantit qu'elle serait fournie.
- **Si l'écran de saisie de clé du chemin BIOS est utilisé** (disque MBR), une seule faute de frappe suffit pour que la bonne clé soit ensuite refusée : il faut redémarrer avant chaque nouvel essai, et saisir la clé en minuscules.

## 2. Identifier la situation

Éteindre la machine, puis démarrer sur un support externe ou monter le disque sur une autre machine en lecture seule.

| Constat | Situation |
|---|---|
| `\EFI\Microsoft\Boot\config`, `verify` et `bootmgfw.efi.old` présents sur l'ESP | disque GPT, bootkit UEFI installé |
| `counter` présent en plus | le chiffrement du `$MFT` a commencé |
| octet 0 de `config` = 0 | chiffrement pas encore lancé |
| octet 0 de `config` = 1 | `$MFT` chiffré, totalement ou en partie (voir `counter`) |
| octet 0 de `config` = 2 | disque déjà déchiffré par la clé de l'opérateur |
| `cloak.dat` sur l'ESP et `bootmgfw.efi` = `reloader.efi` Howyar | variante qui contourne Secure Boot (CVE-2024-7344) |
| disque MBR, secteurs 0x20 à 0x22 non nuls, chargeur 16 bits en secteurs 1 à 0x12 | chemin BIOS hérité de NotPetya |
| fichiers suffixés par 8 caractères et `YOUR_FILES_ARE_ENCRYPTED.TXT` | chiffrement de fichiers en mode utilisateur |

La règle `HybridPetya_ESP_Config` de `hybridpetya.yar` reconnaît le fichier `config` (portefeuille à l'offset 0x29).

**Si l'état vaut 0**, le `$MFT` n'est pas encore chiffré. Avant tout redémarrage sur le disque, remplacer `\EFI\Microsoft\Boot\bootmgfw.efi` par le gestionnaire de démarrage d'origine : `bootmgfw.efi.old`, dont ESET indique que les 0x400 premiers octets sont masqués par XOR `0x07` dans la variante Secure Boot, ou une copie saine issue d'un support d'installation Windows de même version. Restaurer aussi `\EFI\Boot\bootx64.efi`.

## 3. Récupérer un disque chiffré par le bootkit UEFI

1. **Préserver les preuves.** Copier l'ESP entière, et en particulier `config`, `verify` et `counter`. Faire une image complète de la partition NTFS chiffrée, et ne travailler que sur des copies.
2. **Disposer d'un volume NTFS sain quelconque** (une clé USB formatée en NTFS suffit). Il sert seulement de modèle générique d'enregistrement `$MFT`.
3. **Lancer l'outil** sur la copie :

   ```
   recover_mft_without_key.py partition_chiffree.img verify reference.img partition_restauree.img --counter counter
   ```

   L'outil affiche la méthode employée et la part d'enregistrements cohérents après déchiffrement. Avec la méthode exacte (« clusters nuls chiffrés »), le résultat est complet. Avec la méthode statistique, vérifier la cohérence annoncée et contrôler le volume restauré en lecture seule.
4. **Vérifier puis exploiter** l'image restaurée : montage en lecture seule, contrôle de l'arborescence, puis copie des données vers un support sain.
5. **Remettre en état le démarrage**, après extraction des données : restaurer `bootmgfw.efi` et `bootx64.efi` d'origine, supprimer `config`, `verify`, `counter`, `cloak.dat` et `cloak64.dat`. Une réinstallation propre reste préférable, la machine ayant exécuté du code malveillant avec les droits administrateur.

Si le `$MFT` est très fragmenté, le bootkit a pu chiffrer aussi des clusters de données, voire balayer le reste du volume. L'outil recalcule exactement les clusters touchés et les restaure également : il faut lui fournir l'image de la partition entière, pas seulement le `$MFT`.

## 4. Disque MBR (chemin BIOS)

Le chemin BIOS reprend le chargeur de NotPetya avec son défaut de flux de période 4 Mio. Les méthodes publiées pour NotPetya s'appliquent ; aucun outil spécifique n'est fourni ici. Préserver les secteurs 0 à 0x22, et notamment le secteur 0x22 qui contient le MBR d'origine masqué par XOR `0x07`.

## 5. Fichiers chiffrés en mode utilisateur

AES-256-CBC, clé protégée par ECDH avec la clé publique de l'opérateur : pas de récupération possible sans cette clé privée. Restaurer depuis des sauvegardes, les clichés instantanés de volume s'ils existent, ou conserver les fichiers chiffrés au cas où un déchiffreur deviendrait disponible. Le pied de 0x76 octets ajouté à chaque fichier contient l'IV et la clé d'installation à fournir le cas échéant.

## 6. Prévention et détection

- Appliquer les mises à jour de la base de révocation Secure Boot (DBX) : `reloader.efi` y figure depuis le 2024-11-01. Vérifier sa présence avec l'empreinte Authenticode `cdb7c90d3ab8833d5324f5d8516d41fa990b9ca721fe643fffaef9057d9f9e48`.
- Laisser Secure Boot activé : le bootkit installé directement n'a aucune signature et le micrologiciel refuse de le charger. Windows ne démarre plus tant que `bootmgfw.efi` n'est pas restauré (§2), mais le `$MFT` n'est pas chiffré.
- Surveiller les écritures sur l'ESP et la modification de `\EFI\Microsoft\Boot\bootmgfw.efi` par un processus autre que le système de mise à jour Windows.
- Surveiller l'appel `NtRaiseHardError` avec le statut `0xC0000350` utilisé pour provoquer l'écran bleu.
- Déployer `hybridpetya.yar` sur les fichiers, la mémoire et, pour la règle du chargeur 16 bits, les premiers secteurs des disques.
- Indicateurs complets : `iocs.csv`.
