Récupérer facilement le mot de passe EFI d’un ancien Mac

Depuis des années, Apple propose de mettre un mot de passe au niveau de l’EFI. Il permet d’empêcher le démarrage sur un lecteur optique, une clé USB, etc., ce qui permet de sécuriser un peu un ordinateur. Sur les modèles actuels (depuis 2011 environ), la sécurité est bonne pour ce mot de passe, mais sur les modèles plus anciens, il est assez simple de récupérer le mot de passe. Je ne parle pas de l’effacer, mais bien de le récupérer…

J’ai fait le test sur un MacBook 2,1 (premier Core 2 Duo, 2006) en mettant un mot de passe sur l’EFI. Le mot de passe en question, sur les Mac Intel avant 2011, est stocké dans la mémoire NVRAM et est « chiffré », mais de façon assez sommaire.

La faille n’est pas spécialement dangereuse : il faut un accès physique à la machine et un compte administrateur, mais elle a été jugée assez sérieuse par Apple que pour que la méthode change radicalement sur les modèles 2011.

Première chose, récupérer le mot de passe stocké dans la mémoire.

sudo nvram security-password

Un truc genre ça devrait apparaître.

security-password %c6%cb%da%c3%c4

Maintenant, vous lancez la calculatrice de Mac OS X. Vous passez mode programmeur (Présentation -> Programmeur), en hexadécimal (clic sur le 16), vous affichez le binaire (Représentation binaire) et l’ASCII.

Ensuite, vous entrez le code sans les « % » (ici par exemple, C6CBDAC3C4).

Capture d’écran 2013-01-18 à 14.20.46

Maintenant, on va simplement changer les bits pour décoder le mot de passe.

C6CBDAC3C4 est une représentation hexadécimale.
11000110 11001011 11011010 11000011 11000100 est sa représentation binaire.

Ce que nous allons faire, c’est inverser 1 bit sur 2, en cliquant sur le chiffre dans la calculatrice et en commençant par le premier.
11000110 (C6) devient donc 01101100 (6C), 11001011 (CB) devient 01100001 (61), etc.
01101100 01100001 01110000 01101001 01101110 est donc la représentation binaire modifiée.
6C6170696E est donc la représentation hexadécimale modifiée.

Ce qui donne, dans le champ ASCII, le mot de passe lapin.

Capture d’écran 2013-01-18 à 14.27.26

C’est assez simple et rapide, sans outils particuliers.