9 votes

Tentative de forçage du modèle de sécurité Android via TWRP via adb.

Hier, j'ai en quelque sorte oublié le motif de sécurité Android sur mon téléphone. Grâce à ma mémoire musculaire, je sais plus ou moins ce que c'était, mais je n'arrive pas à trouver le vrai motif. J'essaie donc de le forcer par force brute pour pouvoir déverrouiller le téléphone à nouveau.

Décryptage avec motif
Depuis que j'ai installé TWRP recovery, je peux utiliser la fonction twrp decrypt 'passphrase' pour les tentatives de décryptage. J'utilise un motif 4x4 (OnePlus5, LineageOS, Android 8.1, TWRP clockworkx 3.2.3-1) pour lequel chaque point de la grille se traduit par un caractère différent, que vous devez concaténer pour construire votre phrase de passe. Je crois que la grille 4x4 ressemble à ceci :

1   2   3   4
5   6   7   8
9   :   ;   <
=   >   ?   @

Un motif de ligne allant du haut à gauche au bas à droite donnerait une phrase de passe de 16;@ vous permettant de décrypter votre téléphone dans TWRP en utilisant adb shell twrp decrypt '16;@' . ( via )

Tentative de force brute
Grâce à cette méthode, j'ai essayé tous les modèles possibles qui, selon moi, pourraient l'être, mais je n'ai pas réussi à le décrypter. La commande renvoie toujours Attempting to decrypt data partition via command line. a stdout et rien d'autre. J'essaie rapidement chaque motif l'un après l'autre sans délai, en détectant si la sortie de la commande diffère de la sortie attendue (ce qui ne s'est pas encore produit).

Questions
Comme je n'ai pas encore réussi, je me demande si ma mise en œuvre est correcte. Je n'ai pas de téléphone pour faire le test, donc j'ai quelques questions :

  1. Est-ce que le twrp decrypt produit quelque chose d'autre lorsque le décryptage réussit ?
  2. Est-ce que le décryptage réussi crée un dispositif de bloc à /dev/block/dm-0 que je peux sonder ?
  3. Dois-je attendre quelques secondes après chaque tentative avant de sonder le succès ?
  4. Existe-t-il une sorte de délai d'attente caché (obligation d'attendre 30 secondes après la tentative) ?
  5. Y a-t-il une autre méthode que je peux utiliser pour vérifier le succès ?

Outil de force brute
J'ai construit l'outil suivant pour cette tentative de force brute, si cela est pertinent pour l'implémentation que j'ai utilisée : apbf

Je ne comprends pas ce qui ne va pas dans cette mise en œuvre. Elle ne semble pas décrypter correctement le téléphone, ce qui me fait penser que la clé pourrait être corrompue.

Je suis en train de redémarrer la récupération après la tentative d'atteinte, mais cela prend beaucoup de temps pour 1400 modèles possibles. J'aimerais être sûr que la tentative n'est pas inutile.


Puisque je connais la longueur approximative du motif, que je suis certain que seules les deux colonnes de droite sont utilisées et que je sais que les points du motif n'ont jamais une distance supérieure à 1, je peux réduire considérablement l'espace de recherche du motif et limiter les possibilités.

Le cryptage est activé sur le téléphone, je crois qu'il est basé sur des fichiers. Quand dans TWRP, le /data/data y /sdcard semble répertorier les noms de fichiers cryptés.

7voto

Tim Visee Points 251

Après un certain temps, j'ai trouvé le problème, avec un téléphone fraîchement flashé. Ici, je vais répondre à ma propre question.


  1. La commande twrp decrypt affiche-t-elle autre chose lorsque le décryptage réussit ?

    Oui, ça donne quelque chose comme :

    Attempting to decrypt data partition via command line.
    Data successfully decrypted
    Updating partition details...
    ...done
  2. Est-ce que le décryptage réussi crée un périphérique de bloc à /dev/block/dm-0, que je peux sonder ?

    Non.

  3. Dois-je attendre quelques secondes après chaque tentative avant de sonder le succès ?

    -

  4. Existe-t-il une sorte de délai d'attente caché (obligation d'attendre 30 secondes après la tentative) ?

    Oui très important ! À propos de 10 secondes . Les tentatives consécutives dans ce laps de temps échouent sans le moindre avertissement.

  5. Y a-t-il une autre méthode que je puisse utiliser pour sonder le succès ?

    -


Ainsi, les tentatives consécutives d'invoquer twrp decrypt doivent être séparées d'au moins 10 secondes, sinon elles échoueront. Donc, la seule chose qui n'allait pas avec l'outil développé, c'est que je n'ai pas implémenté ce délai.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X