MsnTribe Freezer
Ho visto tempo fa questo piccolo programmino chiamato Tribe Freezer, sviluppato dalla community di MsnTribe, in particolare da uno sviluppatore dal nick di Zero Cool (chicca per chi ha visto il film Hackers di Iain Softley).
Premesso che non vedo l’utilità di un software del genere, volevo soffermarmi sul funzionamento di esso. Il software permette di bloccare un account dal login per un tempo prestabilito; durante quel lasso di tempo il programma deve rimanere acceso e connesso ad internet.
Il funzionamento è molto semplice: il software manda richieste a mitraglia di login con l’indirizzo prestabilito, così il malcapitato non potrà loggarsi perchè il meccanismo di login è “occupato” dal nostro software. Ovviamente ne va da se che se l’utente è gia loggato il software non va.
Ne approfitto piu che altro per illustrare come funziona il protocollo MSN.
Questa è la schermata del programma:

Decido di capire come funziona sniffando il traffico ethernet. Avvio così wireshark per sniffare il traffico. Decido di usare un indirizzo passport fittizio (spero) per non bloccare nessuno, lancio la scansione a 2 minuti ed ecco i sistemi in azione:

Dopo circa un minuto fermo la scansione ed analizzo il traffico. Questa è la schermata che ci interessa:

Nella riga evidenziata il blu possiamo vedere che c’è stato un send di un pacchetto verso i server MSN. Vado ad analizzare il traffico TCP di quella chiamata e questo è quello che trovo:

Andiamo ad analizzare le righe una per una grazie all’ottima spiegazione trovata sul sito Hypotethic. Rispettando le colorazioni di Wireshark, le righe rosse sono le mie richieste al server e le righe blu sono le risposte del server.
>> VER 0 MSNP9 CVR0
- VER: E’ un comando dato al server per indicare che gli stiamo per trasmettere informazioni relative alla versione.
- 0 (zero): E’ il transaction ID, l’id della transazione, abbreviato in trID.
- MSNP9 e CVR0: Sono i protocolli supportati dal client
<< VER 0 MSNP9
Il server risponde al nostro comando VER con un altro comando VER, il trID 0 in riferimento al nostro e ci comunica che supporta il protocollo MSNP, perciò andremo a comunicare tramite quello.
>> CVR 1 0×0409 win 4.10 i386 MSNMSGR 5.0.0544 MSMSGS pippo@hotmail.com
- CVR: Comando che indica al server che stiamo mandando informazioni sul client.
- 1: il trID.
- 0×0409: è il codice esadecimale che indica la location geografica.
- win: indica il sistema operativo.
- 4.10: indica la versione di sistema operativo.
- i386: indica l’architettura del processore.
- MSNMSGR: è il nome del nostro client.
- 5.0.0544: è la versione del client MSN.
- MSNMSGR: è il nome della versione ufficiale del client.
- pippo@hotmail.com: è il profilo passport bersaglio
<< CVR 1 7.0.0820 7.0.0820 7.0.0820 http://….exe http://messenger.msn.com
Il server risponde al nostro CVR con un altro CVR.
- 1: è il trID.
- 7.0.0820: è la versione di client consigliata.
- 7.0.0820: è la versione minima del client, richiesta.
- http://….exe: è l’indirizzo dove scaricare la versione adatta di client, se necessario.
- http://messenger.msn.com: è l’indirizzo dove reperire informazioni sul client.
>> USR 2 TWN I pippo@hotmail.com
Ok siamo pronti a mandare la richiesta di autenticazione.
- USR: indica che è una richiesta di autenticazione.
- 2: il trID.
- TWN: parametro statico, non cambia mai.
- I: indica che la richiesta è di tipo “initializing authentication”.
- pippo@hotmail.com: è il profilo passport vittima.
<< XFR 2 NS 207.46.108.18:1863 0 65.54.239.80:1863
A questo punto il server ci risponde con un altro segnale.
- XFR: indica che le nostre comunicazioni andranno dirottate verso un altro server, questo può accadere quando un server è troppo carico oppure è giu, perciò dirotta il traffico su un server chiamato di notifica.
- 2: è il trID.
- NS: indica che il server a cui si verrà ridirezionati è un server di notifica (notification server).
- 207.46.108.18:1863: questo è l’indirizzo IP e la porta del server di notifica.
- 0: parametro statico.
- 65.54.239.80:1863: è l’indirizzo IP del server e la porta a cui si è connessi attualmente
Qua volevo inserire una piccola nota. Questo sistema, così su due piedi, mi pare abbastanza labile; se si riuscisse a fare un injenction di un comando XFR si potrebbe dirottare un qualsiasi client su un server appositamente messo su da noi; boh magari mi sbaglio.
L’immagine appena postata e commentata si riferisce ad un normale tentativo che alla fine viene però dirottato verso un server di notifica. Possiamo però trovarci di fronte a questa situazione:

In questo caso la procedura è la stessa, ma possiamo vedere, in ultima riga, che il server non ci redirige da nessuna parte, ci restituisce un segnale di tipo USR con il nostro trID. Ovviamente il tentativo di connessione di Tribe Freezer è andato con una password sbagliata, perciò, come indicatovi sopra, il segnale ha il flag S
S: indica che c’è stato un errore di autenticazione ed è stato restituito un codice di errore 911, Authentication Failed, con i dati dell’errore riportati di seguito.
Questo è tutto. Dire che ho studiato il protocollo MSN è esagerare parecchio, perciò per qualsiasi puntualizzazione sono a vostra completa disposizione.
Alla prossima.

.jpg)







