Lock Pattern Android / Schémas de verrouillage Android
Le schémas de verrouillages Android fonctionne de la manière suivante :
Neuf pastilles sont disposées sous la forme d'une grille.
Au niveau logiciel, elles sont numérotées de 1 à 9
------------------- | 1 | | 2 | | 3 | ------------------- | 4 | | 5 | | 6 | ------------------- | 7 | | 8 | | 9 | -------------------
Android va stocker notre mot de passe de façon chiffré dans le fichier /android/data/system/gesture.key
Dans notre exemple notre code de verrouillage sera 1234.
Avant de chiffré notre code, Android va décrémenter le pattern(schémas) de 1.
1234 deviendra 0123
Celui-ci sera encodé en hexa et ensuite chiffré en sha1.
Ce qui nous donne :
SHA1("\x00\x01\x02\x03")
Exploitation :
En face du faible nombre de possibilités il est possible de se faire un tableau de correspondance entre le pattern et le hash sha1
Première méthode : Générer une rainbow table“
Il faut développer un script faisant la correspondance entre le pattern et le sha1 du pattern.
En attendant de proposer un script voici la Rainbow table complète : Gesture keys
md5sum : d5a9204e9ac2aee5e1ddb883580c4e4a
Attention à ne pas oublier d’incrémenter tous les chiffres de 1 pour retrouver le code d'origine.
Deuxième méthode : Bruteforce
Le bruteforce dans ce cas est une solution envisageable du fait du faible nombre de combinaisons
Sur github un utilitaire à été développé pour cela : Crack Android lock pattern
Son utilisation :
python aplc.py gesture.key
################################ # Android Pattern Lock Cracker # # v0.1 # # ---------------------------- # # Written by Chema Garcia # # http://safetybits.net # # chema@safetybits.net # # @sch3m4 # ################################ [i] Taken from: http://forensics.spreitzenbarth.de/2012/02/28/cracking-the-pattern-lock-on-android/ [:D] The pattern has been FOUND!!! => 0123 [+] Gesture: ----- ----- ----- | 1 | | 2 | | 3 | ----- ----- ----- ----- ----- ----- | 4 | | | | | ----- ----- ----- ----- ----- ----- | | | | | | ----- ----- -----
Dans la première partie il vous retourne la clé si il l'a trouvée. (clé à incrémenter de 1 pour avoir la bonne valeur)
Dans la seconde partie il vous explique comment le dessiner au cas où vous n'ayez pas lu la première partie.