Yahoo! Messenger Forensics

Leggevo l’altro giorno sul blog di Lance Mueller un post in cui l’autore parla di come leggere le conversazioni criptate – salvate in locale – di Yahoo! Messenger mediante un EnScript da lui stesso elaborato.

Non ho provato l’applicazione ma vista l’abilità del forenser non ho dubbi sul funzionamento. E’ interessante invece capire in che modo Yahoo! Messenger codifica e decodifica l’archivio conversazioni.

A tal proposito ho installato il client e analizzato il file manualmente. Vediamo come procedere:

Le conversazioni vengono depositate nella cartella Yahoo!MessengerProfilesusernameArchiveMessages

Il file ha estensione .dat, il nome del file è composto da data di creazione e username, es.: 20080201-gu3lf0w3b.dat

Il client non utilizza un metodo di crittazione robusta ma si serve di un semplice algoritmo XOR per codificare i messaggi.

Ho salvato una conversazione e analizzato il file con un editore esadecimale (per chi è interessato può scaricare il file da qui)

L’header inizia con 1F 2D A3 47 (timestamp) e finisce con 04 00 00 00. Ogni messaggio è preceduto da un timestamp di ricezione o trasmissione.

Il 9° byte 00 indica che il messaggio è stato inviato, se troviamo 01 vuol dire che il messaggio è stato ricevuto

A seguire il messaggio 04 1C 52 03

Il mio account, utilizzato per la conversazione, è gu3lf0w3b, ed è la chiave per decifrare l’algoritmo.

Convertiamolo da ascii in decimale, potete verificare con questo convertitore online:

ASCII -> DEC

g -> 103
u -> 117
3 -> 51
l -> 108
f -> 102
0 -> 48
w -> 119
3 -> 51
b -> 98

Convertiamo ora il messaggio da esadecimale a decimale

HEX -> DEC

04 -> 4
1C -> 28
52 -> 82
03 -> 3

Applichiamo l’algoritmo XOR, tra i due decimali messaggio e chiave, potete aiutarvi con questo calcolatore online

4 XOR 103 = 99
28 XOR 117 = 105
82 XOR 51 = 97
3 XOR 108 = 111

Otteniamo ancora dei valori decimali. Trasformiamo i valori da decimale a ascii

DEC -> ASCII

99 -> c
105 -> i
97 -> a
111 -> o

Il messaggio inviato è: ciao

La codifica è piuttosto debole, anche perchè per risalire alla chiave basta cercare nella cartella Profiles per trovare gli account dell’utente e le varie sottocartelle prendono il nome dell’utente con cui è avvenuta la conversazione.

Technorati tags: ,

Uncategorized. URL.

One Response to Yahoo! Messenger Forensics

  1. Tiziano says:

    Complimenti, bel lavoro :D

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

*

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>