web-dev-qa-db-fra.com

Déchiffrement d'un fichier .ods LibreOffice Calc protégé par mot de passe (mot de passe oublié)

Il y a quelques temps, j'ai créé un fichier .ods avec Libreoffice Calc que je protégeais par un mot de passe. J'ai maintenant oublié le mot de passe et par conséquent, je ne peux pas accéder au fichier. Existe-t-il un moyen de contourner ou de récupérer le mot de passe, par ex. en tant que root en utilisant le terminal?

5
Kyle

Ouvrir le fichier .ods en tant que root ne vous permettra toujours pas de récupérer le contenu du fichier, car ceux-ci sont cryptés, ce qui dépasse le pouvoir d'un utilisateur root.

MiJyn a suggéré l'utilisation de crackers de mots de passe pour OpenOffice.org. Ces programmes utilisent souvent des attaques par force brute ou par dictionnaire. Je ne voudrais pas utiliser un tel programme à source fermée à partir de sources aléatoires, non fiables, comme suggéré. Les analyseurs de virus ne trouvent pas tout, vous ne pouvez donc toujours pas faire confiance à l'exécutable car ClamAV ne détecte rien.

Puisque LibreOffice est open source, je commencerais par rechercher le type de cryptage utilisé. Ubuntu 12.04 est livré avec LibreOffice 3.5. Selon http://wiki.documentfoundation.org/ReleaseNotes/3.5#Different_Encryption_Algorithm , il utilise un chiffrement AES à 256 bits.

Cet article de la liste de diffusion indique également que le mot de passe est dérivé de PBKDF2 , ce qui signifie que le forçage brutal sera beaucoup plus lent si le nombre d'itérations est suffisant.

Les fichiers .ods n'étant que des fichiers Zip, j'ai essayé de chiffrer le fichier et d'en extraire le contenu. Comme prévu, le contenu du document est crypté et ne peut être distingué d’octets aléatoires. Bien sûr, il existe des métadonnées non chiffrées, l’un d’eux étant META-INF/manifest.xml. Mon exemple de feuille de calcul chiffrée contenait les parties intéressées suivantes:

<manifest:encryption-data manifest:checksum-type="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0#sha256-1k" manifest:checksum="48KzqP1PL7Wu/YTtHzlN0buJeUmigGT247dZ6Wrj10s=">
<manifest:algorithm manifest:algorithm-name="http://www.w3.org/2001/04/xmlenc#aes256-cbc" manifest:initialisation-vector="82mrg52Yifh1iIye5W0xuw=="/>
<manifest:key-derivation manifest:key-derivation-name="PBKDF2" manifest:key-size="32" manifest:iteration-count="1024" manifest:salt="hUZrwD1BWkODYVklZiScqA=="/>
<manifest:start-key-generation manifest:start-key-generation-name="http://www.w3.org/2000/09/xmldsig#sha256" manifest:key-size="32"/>

Nous pouvons en déduire que LibreOffice utilise un algorithme de hachage SHA256 pour contrôler l’intégrité des données, AES256 en mode CBC . Le mot de passe de 32 octets est dérivé de votre mot de passe en utilisant PBKDF2 avec 1024 itérations.

n document sur le déchiffrement des fichiers ODF est disponible Ici, ils contiennent des informations utiles pour créer votre propre brute-forcer mais ne conviennent probablement pas à l'utilisateur moyen.

Comme avec la plupart des produits de cryptage, la récupération de mot de passe est presque impossible. Je suggère:

  • Si le fichier ne contient que la comptabilité pendant une semaine, il suffit de recommencer et de ne pas perdre de temps à déchiffrer le fichier.
  • Essayez de rappeler le mot de passe si vous voulez déchiffrer le fichier.
  • Si vous utilisez un programme de force brute, n'utilisez pas de programme aléatoire trouvé sur Internet. Essayez de trouver un programme open-source. Si vous ne trouvez que des programmes à source fermée, téléchargez-le à partir d'une source fiable et assurez-vous qu'il a de bonnes critiques (de plusieurs sources), envoyez-le https://www.virustotal.com et vérifiez à nouveau que le programme que vous essayez est légitime.
9
Lekensteyn

La réponse est basée sur la conversation que j'ai eue avec l'OP dans les commentaires

Il est impossible de contourner le mot de passe car, si cela était possible, le document protégé par mot de passe irait complètement à l'encontre du but recherché (les seules personnes qui ne voudraient pas utiliser le mot de passe passeur sont celles qui ont le mot de passe). . La seule option est d'utiliser réellement un pirate de mot de passe. Cette méthode est légale si et uniquement si vous êtes le propriétaire de le document, ou la personne qui vous a envoyé le document vous a donné la permission de déchiffrer le mot de passe. Mais, bien sûr, ces jours-ci, personne ne se soucie d’être du bon côté de la loi: P

Donc, si cela vous intéresse toujours, voici un autre inconvénient de cette technique (oui!): Cela prend très longtemps car il faut trouver toutes les combinaisons possibles de mots de passe. Quelques calculs élémentaires sont nécessaires ici. S'il faut 1 milliseconde pour essayer un mot de passe et que le mot de passe est codé en ASCII, il faut 5 semaines pour le trouver. Si vous avez un ordinateur très rapide (peut-être même un superordinateur), cela prend environ 5 à 10 microsecondes par mot de passe; le calcul prend donc entre 1,5 et 3 jours. Si vous utilisez une carte graphique au lieu de votre processeur, il sera capable de calculer les mots de passe beaucoup plus rapidement, car les GPU ont généralement environ 300-2000 cœurs.

Un autre problème, spécifique aux mots de passe OpenOffice, est que OpenOffice dispose de très bonnes méthodes de cryptage, ce qui rend la recherche de mots de passe beaucoup plus longue et plus difficile. Cela signifie que seule une attaque par force brute (l'attaque la plus lente) fonctionnera!

Maintenant que vous avez une brève introduction à la recherche de mots de passe, quelques recherches rapides me mènent à ce site: http://www.filebuzz.com/fileinfo/37067/OpenOffice_Writer_Password_Recovery.html . Je ne l'ai pas encore essayé, mais cela devrait fonctionner si vous avez installé WINE. J'ai fait une petite vérification de virus avec ClamAV et ça semble aller.

EDIT: On dirait que l'on ne prend en charge que les mots de passe Writer. Voici le même programme, apparemment conçu pour les mots de passe Calc. Notez que je n’ai pas essayé celui-là non plus, mais j’ai aussi choisi celui-ci avec ClamAV: http://www.sharewareconnection.com/download-openoffice-calc-password-recovery-recomey-sharecon.html

EDIT 2 : Lekensteyn a publié un moyen meilleur de le faire que d'utiliser un fichier .exe non approuvé. Je recommande fortement d'utiliser son chemin à la place!

EDIT 3 : Basé sur la méthode publiée par Lekensteyn, j’ai écrit un petit outil qui l’a implémenté, situé ici: https: // github. com/MiJyn/ooo-pass-recover/téléchargements . Il est bien entendu open-source (il suffit de cliquer sur "code" dans le lien de téléchargement). Tout ce n’est qu’une interface avec ODFJlib de Ringlord (même personne qui a créé le document que Lekensteyn a posté). Notez que cet outil est écrit en Java et qu’il est plutôt lent (243 clés/s sur mon ordinateur). Je vais cependant essayer de l’optimiser pour plusieurs cœurs.

Exemple d'utilisation:

Java -jar ./ooopassrecover.jar file.ods
4
MiJyn

J'ai trouvé un moyen très simple de déverrouiller une feuille (Open Office 1.0), mais il devrait être similaire à d'autres versions.

  • Remplacez l'extension .ods par .Zip
  • décompressez le fichier dans un dossier.
  • Recherchez le fichier document.xml ou content.xml qu'il contient.
  • Éditez ce fichier XML pour trouver quelque chose comme ça:

    table:name="*****" table:style-name="ta1" table:protected="true" table:protection-key="wUuUTMMJGNiaa2+yng4cFP6WeFg="

supprimer les deux éléments:

 table:protected="true" table:protection-key="wUuUTMMJGNiaa2+yng4cFP6WeFg="

copier le document.xml modifié dans le fichier Zip originel et rendre le . ods extension au fichier. C'est fait: votre feuille n'est plus protégée!

2
user380090

J'ai trouvé un moyen plus facile de déverrouiller une feuille de calcul en modifiant la suggestion donnée par @ user380090:

  • Remplacez l'extension .ods par .Zip
  • Extrayez le fichier .Zip dans un dossier à l'aide de Archive Manager
  • Ouvrez le fichier: content.xml avec Writer
  • Rechercher: table: protected = "true"
  • Remplacez "true" par "false"
  • Enregistrez le fichier content.xml et fermez Writer.
  • Depuis Fichiers, faites glisser le fichier content.xml précédemment modifié dans le fichier .Zip.
  • Changer l'extension de .Zip à .ods

Le document n'est plus protégé et vous pouvez le modifier.

0
Spiv