tag:linuxfr.org,2005:/tags/exel/publicLinuxFr.org : les contenus étiquetés avec « exel »2011-06-08T12:19:46+02:00/favicon.pngtag:linuxfr.org,2005:Diary/312152011-06-04T23:13:44+02:002011-06-04T23:13:44+02:00Vérifier ou retrouver un mot de passe sur un fichier XLS/DOC avec pseudo-sécurité XORLicence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<p>J'ai eu récemment à retrouver un mot de passe sur un fichier DOC et un fichier XLS (deux formats propriétaires créés par Microsoft). Il s'agissait d'un mot de passe bloquant l'ouverture des fichiers, stocké dans une méthode basique, le XOR (l'algo est légèrement différent pour les deux formats).</p>
<p>Visiblement lorsque l'on cherche un peu des logiciels pour faire le boulot, on ne trouve pas de logiciel libre (genre <a href="http://www.openwall.com/john/">John the Ripper</a> ou autres), uniquement des logiciels propriétaires (et pour Windows).</p>
<p>Après avoir lu le support de présentation d'Éric Filiol de Pacsec 2009, jeté un coup d'oeil rapide aux (milliers de pages de) spécifications et retrouvé l'algo en question dans OpenOffice.org/LibreOffice (forcément faut bien qu'ils les ouvrent lui aussi), j'ai commis un petit programme pour vérifier un mot de passe (ou en tester plein si on est motivé).</p>
<p>Le tout est disponible sour licence LGPLv3 (histoire de garder la même licence que les 2 fichiers OpenOffice.org utilisés). Cf <a href="http://oumph.free.fr/textes/xor_me-0.1.tar.gz">http://oumph.free.fr/textes/xor_me-0.1.tar.gz</a></p>
<p>Voilà, ça n'a pas un intérêt fabuleux en soi, mais bon c'était amusant à faire. Et ça ne fait que ça : du XOR, sur du DOC ou du XLS.</p>
<p>Le résultat :</p>
<p>On récupère un couple clé/hash pour un fichier doc donné.</p>
<p><code>$ ./xor_doc some.doc</code><br /><code>Could be a XOR-ciphered doc file.</code><br /><code>nKey d10d</code><br /><code>nHash cc1f</code></p>
<p>On essaie un mot de passe au pif.</p>
<p><code>$ ./xor_me toto 0xd10d 0Xcc1f</code><br /><code>Algorithm XOR MS Word</code><br /><code>Key: d10d</code><br /><code>Hash: cc1f</code><br /><code>FAIL! toto</code></p>
<p>On essaie le bon mot de passe.</p>
<p><code>$ ./xor_me 0824 0xd10d 0Xcc1f</code><br /><code>Algorithm XOR MS Word</code><br /><code>Key: d10d</code><br /><code>Hash: cc1f</code><br /><code>Good guess: 0824</code></p>
<p>Même chose sur un XLS :</p>
<p><code>$ ./xor_xls some.xls</code><br /><code>Bored by reading the specs... Just pick up a XOR encryption pattern</code><br /><code>Record type FilePass with 2F 00.</code><br /><code>followed by 00 06 for size.</code><br /><code>followed by 00 00 for wEncryptionType XOR.</code><br /><code>followed by what you want: 2 bytes for key, 2 bytes for hash.</code><br /><code>WARNING: little endian, you should permute bytes</code><br /><code>00000210 06 03 00 00 86 00 00 00 2f 00 06 00 00 00 9a 49 |......../......I|</code><br /><code>00000220 61 cc e1 00 02 00 b0 04 c1 00 02 00 ca a4 e2 00 |a...............|</code></p>
<p>Un mot de passe au pif :</p>
<p><code>$ ./xor_me 4242 0x499a 0Xcc61 1</code><br /><code>Algorithm XOR MS Excel</code><br /><code>Key: 499a</code><br /><code>Hash: cc61</code><br /><code>FAIL! 4242</code></p>
<p>Le bon mot de passe :</p>
<p><code>$ ./xor_me 1950 0x499a 0Xcc61 1</code><br /><code>Algorithm XOR MS Excel</code><br /><code>Key: 499a</code><br /><code>Hash: cc61</code><br /><code>Good guess: 1950</code></p>
<p>Comme on dit, « XOR Ne crains rien, il nous protégera ».</p><div><a href="https://linuxfr.org/users/oumph/journaux/v%C3%A9rifier-ou-retrouver-un-mot-de-passe-sur-un-fichier-xlsdoc-avec-pseudo-s%C3%A9curit%C3%A9-xor.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/86331/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/oumph/journaux/v%C3%A9rifier-ou-retrouver-un-mot-de-passe-sur-un-fichier-xlsdoc-avec-pseudo-s%C3%A9curit%C3%A9-xor#comments">ouvrir dans le navigateur</a>
</p>
Benoît Sibaudhttps://linuxfr.org/nodes/86331/comments.atom