ATTENZIONE: La vulnerabilità è stata risolta, non è più possibile utilizzare la procedura illustrata!

Continuano i problemi del famoso software di messaggistica istantanea WhatsApp, risolto il problema della memorizzazione in chiaro delle conversazioni un ricercatore Tedesco  Sam Granger ha individuato una nuova vulnerabilità ancor più preoccupante.

L’autenticazione degli utenti durante l’invio o la ricezione dei messaggi è violabile, ciò permette ad un estraneo di prendere pieno possesso di un account WhatsApp inviando messaggi o di leggere anche le eventuali risposte.

Ogni utente che vuole inviare un messaggio o verificare se ha dei messaggi da leggere si autentica sui server attraverso una “password” generata automaticamente dal software. La password è però facilmente riconducibile perché si basa sul codice IMEI degli Smartphone non Apple o del MAC Address per gli utenti Apple.

[AGGIORNATO 18/12/2012]
Generazione della Password per i dispositivi Android:

$imei = “112222223333334”; //  IMEI di esempio
$androidWhatsAppPassword = md5(strrev($imei)); // calcolo della Password (inversione dell’IMEI e generazione del MD5)

Generazione della Password per i dispositivi iOS a cura di Ezio Amodio:

$wlanMAC = “AA:BB:CC:DD:EE:FF”; // WLAN MAC address di esempio
$iphoneWhatsAppPassword = md5($wlanMAC$wlanMAC); // calcolo della Password

Generazione della Password per i dispositivi BlackBerry:

$imei = “112222223333334”; //  IMEI di esempio
$BBWhatsAppPassword = md5(strrev($imei)); // calcolo della Password (inversione dell’IMEI e generazione del MD5)

Per i dispositivi BB non è possibile avviare una conversazione interattiva, il servizio BIS vi scollegherà una volta inviato il primo messaggio rendendo impossibile la lettura della risposta.

Generazione della Password per i dispositivi Windows Phone a cura di Ezio Amodio:

$DeviceUniqueID = “112222223333334” // ID del Dispositivo
$WPWhatsAppPassword = $DeviceUniqueID // calcolo della Password

Per la lettura del vostro ID Dispositivo potete affidarvi all’applicazione gratuita Device Unique Id disponibile nel Market Place.

L’username è ancor più semplicemente il vostro numero di cellulare anteposto dal prefisso internazionale senza il simbolo + o il doppio zero (Es. 393481234567).

Siete utilizzatori di WhatsApp? Bene provate voi stessi ad autentificarvi, vi basterà aprire il vostro Browser e digitare il seguente URL

https://r.whatsapp.net/v1/exist.php?cc=$countrycode&in=$phonenumber&udid=$password

Dovrete sostituire i campi $countrycode, $phonenumber e $password con i relativi dati ovvero il vostro codice paese (per l’Italia è il 39) senza il simbolo + o il doppio zero, il numero di cellulare e la password che avete attentamente calcolato secondo le specifiche precedentemente illustrate.

Se tutto andrà per il meglio il vostro Browser vi riporterà la seguente stringa XML:

<exist>

<response status=”ok” result=”393481234567″/>

</exist>

Notate immediatamente che l’esito dello stato è OK il che conferma che avete ottenuto l’accesso al vostro account, se invece la password generata o l’utente non è riconosciuto dal servizio di messaggistica apparirà la dicitura FAIL.

Con la stessa identica metodologia, invio di variabili GET su PHP, possiamo inviare messaggi ad utenti WhatsApp o verificare se ci sono messaggi non letti. Per automatizzare la procedura ci viene in soccorso uno script denominato WhatsAPI e disponibile sul circuito GitHub.

WhatsAPI ci permette quindi di testare la sicurezza di WhatsApp rendendo possibile l’invio di messaggi e la relativa ricezione attraverso il nostro PC anziché sullo Smartphone, lo script è di estremo utilizzo e richiede l’installazione di PHP sulla nostra distribuzione.

Nell’esempio di seguito sfrutteremo la distribuzione BackBox basata su Ubuntu Linux, vi consigliamo di usare una distribuzione Unix Based anche se PHP è disponibile anche per Windows.

Terminato il download di WhatsAPI estraiamo il contenuto e dirigiamoci nella cartella “test” in essa troveremo un unico file denominato “whatsapp.php” apriamolo attraverso l’editor di testo che più preferiamo e dirigiamoci alla 16° riga dove troveremo tre parametri da editare, nello specifico:

$nickname = “WhatsAPI Test”;
$sender = “393481234567”; // Mobile number with country code (but without + or 00)
$imei = “35xxxxxxxxxxxxx”; // MAC Address for iOS IMEI for other platform (Android/etc)

Come è facile intuire nel campo Nickname specifichiamo il soprannome da utilizzare durante l’invio dei messaggi, nel campo Sender specifichiamo il nostro numero di cellulare comprensivo del codice paese senza il simbolo + o il doppio zero e infine indichiamo il nostro codice IMEI o WLAN MAC address se usiamo un dispositivo Apple.

Salviamo il file ed ora siamo pronti ad avviare lo script PHP, semplicemente da riga di comando digitiamo:

$ php whatsapp.php

Il software ci risponderà con una breve ma efficace guida:

USAGE: whatsapp.php [-l] [-s <phone> <message>] [-i <phone>]

phone: full number including country code, without ‘+’ or ’00’
-s: send message
-l: listen for new messages
-i: interactive conversation with <phone>

Facilmente intuiamo che attraverso il parametro “-s” possiamo inviare un nuovo messaggio, con il parametro “-l” individuiamo eventuali messaggi non letti ed infine con il parametro “-i” avviamo una vera e propria conversazione interattiva nella quale potremo scrivere messaggi e leggere le eventuali risposte.

Per avviare una conversazione è quindi necessario digitare il seguente comando:

$ php whatsapp.php -i 393481234567

Sempre sulla riga di comando digiteremo il nostro messaggio da inviare e leggeremo le eventuali risposte.

Di seguito vi riporteremo diversi screenshot di esempio, abbiamo impersonato l’utente avete numero 346xxx e dialogato con l’utente 347xxx.

(Avvio di una conversazione con l’utente 347xxx mediante l’utente 346xxx e procedura di Login di quest’ultimo)

(Invio del messaggio “Prova Invio By Over Security” da parte dell’utente 346xxx verso il 347xxx)

(Conferma di avvenuta lettura del messaggio invio da parte del destinatario 347xxx)

(Ricezione della risposa “Owned!” dall’utente 347xxx all’utente 346xxx da noi impersonato.)

In conclusione WhatsApp è vulnerabile, qualsiasi persona può sostituirci in una conversazione conoscendo esclusivamente il nostro codice IMEI. Si possono inviare e ricevere risposte senza che il destinatario si accorga di nulla e ancor più gravoso neanche il mittente (utente vulnerabile) avrà la ben che minima traccia di quanto accaduto, nella sua cronologia di chat non solo non appariranno i messaggi inviati ma neanche quelli in risposta.

Le applicazioni Android sono in grado di raccogliere IMEI e numeri di telefoni, non è improbabile che alcuni sviluppatori stiano già raccogliendo queste informazioni e gli Spammer iniziano già a offrire soldi per ottenere i dati degli utenti.

Nell’ipotesi peggiore avendo a disposizione il codice IMEI di due utenti che comunemente si scrivono, attraverso l’attacco Man in the Middle potremmo intercettare le loro conversazioni catturando diverse informazioni sensibili rimanendo completamente all’oscuro.

Una possibile soluzione della vulnerabilità è l’introduzione di un Salt Crittografico all’interno della password rendendo notevolmente più difficile il cracking del Hash Md5.

157
Lascia una recensione

Rispondi

  Subscribe  
più nuovi più vecchi più votati
Notificami
Antonio Rivalta
Ospite
Antonio Rivalta

 calcolo della Password (inversione dell’IMEI e generazione del MD5)
e questa la parte che non mi è chiara … ho l’imei ok… ma come faccio a generare l’md5 di qst imei?

Andrea Barbieri
Ospite

Con le api mi da questo errore:
Warning: socket_read(): unable to read from socket [54]: Connection reset by peer in …Downloads/venomous0x-WhatsAPI-526e38e/src/php/whatsprot.class.php on line 140

Giomen
Ospite
Giomen

senza fare tutto questo, come si cambia la password di Whatsapp?

Benedetto Angiolini
Ospite
Benedetto Angiolini

Scusate ma per dispotivi blackberry cosa bisogna usare: imei o mac?

Antonio Carlucci
Ospite
Antonio Carlucci

Ok funziona, ma dopo aver ricevuto status=ok cosa è possibile fare concretamente?

Roberto
Ospite
Roberto

Questo è un bel bug!  Lo avete comunicato a whatsapp?

Gieki
Ospite
Gieki

dove lo leggo il codice wlan mac?

Filippo
Ospite
Filippo

con cellulari symbian OS uso  IMEI o MAC ?

Ezio Amodio
Ospite
Ezio Amodio

Solo una precisazione, Granger ha scoperto la generazione password su Android e non su iOS…

Alessandro
Ospite

Ottimo articolo, complimenti! 

Guglielmo_10
Ospite
Guglielmo_10

Ciao,Non riesco a calcolare la password come faccio a passare dall’indirizzo wifi alla psw in md5?
potresti rispiegarmi bene questo passaggio?

Larucalis
Ospite
Larucalis

scusate ma non ho capito bene.. devo prendere la IMEI del mio iphone e generarla in md5? io adesso ho un 3gs davanti, country39..numero..[md5 di IMEI iPhone]?

Larucalis
Ospite
Larucalis

 se prendo l’IMEI dell’iPhone e la converto in md5 non mi va, se copio la “Chiave Wife” – cioè la password per collergarmi in wifi e la copio due volte “pass123pass123” non funziona nanke… sono su un portatile windows e ho un router della cisco

Larucalis
Ospite
Larucalis

 ok.. sono riuscito a capire, FUNZIONA, ho capito di quale “chiave” Wi-Fi si trattava, infine eliminando i “$” all’inizio

Marinaiosam
Ospite
Marinaiosam

ma su windows phone funziona?ho provato con imei ma niente..

Matteo Rizzi Zoldus
Ospite

mi dice 

Marinaiosam
Ospite
Marinaiosam

su windows inserendo il device unique come password ottengo come risultato temporarily-unavailable

Kikate
Ospite
Kikate

non più disponibile la WhatsAPI … avete qualche mirror?

geppo
Ospite
geppo

ciao, se lo trovi me lo passi pf

Daniele F.
Ospite
Daniele F.

Qualcuno potrebbe uppare WhatsAPI da qualche parte? Il codice è stato revocato.

geppo
Ospite
geppo

ciao daniele lo hai trovato

Ruga
Ospite
Ruga

Non credo sia corretto che il codice non sia più disponibile per la verifica.

Luca Bati
Ospite
Luca Bati

Come mai provando ad inviare un comando con la sintassi 

php whatsapp.php -s

mi appare una segnalazione del tiporx  

Perchè c’è scritto “paid”? cosa significa????

mauro
Ospite
mauro

lo script è stato rimosso per rischiesta di whataspp.inc. quali sono i comandi get che utilizzava?

Luca Bati
Ospite
Luca Bati

 Semplicemente avevo scaricato lo script prima che venisse rimosso e ho soltanto lanciato il comando “php whatsapp.php -s 328xxxxxxx Ciao!!!”; non so dirle altro…

mauro
Ospite
mauro

se hai ancora lo script puoi vedere che comandi usava

S@lwos
Ospite

Con un SO che sia Apple si può operare ugualmente? O forse c’è bisogno della disto Unix o Windows?
 

Haring01
Ospite
Haring01

Scusate qualcuno sa dove poter scaricare whatsAPI? nel link che c’è nell’articolo non è più disponibile il download.
Inoltre io ho provato per il momento ad utilizzare l’URL https://r.whatsapp.net/v1/exist.php?cc=$countrycode&in=$phonenumber&udid=$password
con iphone ma mi da
ho inserito sia $countrycode sia $phonenumber ed ho generato la password tramite l’indirizzo MAC

Chocolater
Ospite
Chocolater

domanda da newbie, come faccio a dialogare con whatsapp.php su mountain lion? ho installato apache, fatto tutte le modifiche del caso per abilitare il php, ma non so con che cosa lanciare il file! qualcuno mi può venire in aiuto anche solo postando link a guide abbastanza semplici?
grazie

Fabio Verdoliva
Ospite
Fabio Verdoliva

non riesco a calcolare la mia password, chi potrebbe aiutarmi ho un iphone…
grz…

Ruga
Ospite
Ruga

Ragazzi, qualcuno posta il programma gentilmente?

Fabio Kaos Gastaldi
Ospite

Per chi come me volesse provare questa applicazione: al momento lo sviluppatore lo ha rimosso da GitHub sotto richiesta di WattsApp, in ogni caso cercando su XDA potete trovare alcuni mirror delle versioni precedenti, che sono comunque funzionanti.
Link: http://forum.xda-developers.com/showthread.php?p=31693769

Proximos
Ospite
Proximos

ma fatemi capire … l’unico modo per approfittare di questa vuln. è di sparare imei a caso onde mandare messaggi pubblicitari di massa …o mi sfugge qualcosa?

Daniele F.
Ospite
Daniele F.

 No, se riesci ad ottenere l’IMEI di qualcuno ed hai il suo numero sei capace di sostituirti completamente a lui in quanto potrai avere accesso al suo account whatsapp e scambiare messaggi come se fossi lui.

teo155
Ospite
teo155

Essendo che funziona così bene..non si potrebbe costruire una GUI, prima che fixino il bug? Mi sembra che questa scoperta, al di là delle cattiverie, possa permettere anche di creare un programma per chattare su whatsapp da pc/mac, o sbaglio?

Alexdarpino73
Ospite
Alexdarpino73

aiuto
con l’opzione -l mi risponde fatal error ………. on line 40

nri
Ospite
nri

scusate non riesco a capire di che chiave wifi si parla. qualche anima pia?

Dario
Ospite
Dario

Io ho scaricato whatsAPI dal mirror sul forum di xda. Ho android e ho notato che funziona solo se il vero utente non è connesso. Appena si riconnette cade la connessione da terminale. Ho notato che nel file whatsprot.class.php la variabile $_device è settata al valore “iPhone”, può essere questo il problema? Ho la configurazione valida per iOS? Nel caso dove posso trovare quella per Android o quali variabili devo modificare?

RRrepotec
Ospite
RRrepotec

Ciao, funziona ancora???

Maury Nk
Ospite
Maury Nk

ciao andrea.. ma se io volessi leggere la cronologia dei messaggi wh

Maury Nk
Ospite
Maury Nk

ciao anndrea.. come faccio a leggere una cronologia di messaggi whatsapp di un numero di cellulare??? esiste un modo tramite pc per estrarre tutta la cronologia.. ho bisogno di capire come fare e se si può fare..

grazie

Francesco L Costi
Ospite
Francesco L Costi

a me si pone il problema di trovare la password di iOS tramite md5, ho visto il link di wikipedia ma non capisco come faccio a inserire l’esempio che sta qui con quello su wiki!!! 

Francesco L Costi
Ospite
Francesco L Costi

questo è quello che scrivo, mi da comunque un risultato ma mi continua a dare password errata!!! ma cosa sto sbagliando?? sono due giorni che ci sto impazzendo!!!

grazieeeeeeeee

Francesco L Costi
Ospite
Francesco L Costi

ah ecco perchè 🙂 grazie comunque per la risposta

sdrufolo
Ospite
sdrufolo

ma se uso un nokia n97 mini, che devo fare se mi da “UDID not valid”? dove lo trovo l’udid di un nokia o che devo fare?

Davide
Ospite
Davide

 stesso problema come calcolo la pass per n97

Giggi
Ospite
Giggi

non si può piu fare nulla ??
nemmeno con chi non ha ancora aggiornato l’ app ?

lellyjé
Ospite
lellyjé

quoto giggi, 
ho letto che si poteva anche usare           http://whatsapp.filshmedia.net/
ma neanche quello funziona più quindi questo bug è ormai un ricordo o è ancora possibile accedere dal pc ai profili … ??

Alessandro Mastropietro
Ospite
Alessandro Mastropietro

provato e funzionante al 100% 

Warrockrnk96
Ospite
Warrockrnk96

Ciao io  ho un problema, quando tento di loginnarmi dal web funziona mentre se inserisco la stessa password nel file mi dice all’avvio wrong password e esce quaclhe soluzione?

LukeGH
Ospite
LukeGH

Sicuri che funziona ancora, io ho provato con android… procedimento?
Ho copiato la mia imeil, reversa cioè da 123456 l’ho fatta 654321 e poi l’ho criptata in md5.. però anche inserendola nella URL mi da “FAIL” anziché “OK”… faccio un esempio di quel che ho fatto:

Parlo di android:
Presumendo il mio numero sia: 3481111222
La mia imei: 123456
Nazionalità: Italiana

quindi l’url la compongo cosi:
https://r.whatsapp.net/v1/exist.php?cc=39&in=3481111222&udid=XXXXOvviamente invece di XXXX metto l’md5 di 654321A me provando cosi mi restituisce “FAIL” cioè:

Techweaver
Ospite
Techweaver

Ciao, ho provato ad utilizzare questo script… apparte il fatto che il mio cell è symbian, a cosa possono essere dovuti questi due errori:
( ! ) Notice: Undefined variable: argc in C:wampwwwwhattestswhatsapp.php on line 24
e
( ! ) Notice: Undefined index: argv in C:wampwwwwhattestswhatsapp.php on line 25
Aggiungo che ho usato lo script su windows 7 utilizzando wamp

Andrea Valente
Ospite
Andrea Valente

Non capisco come creare la password. qualcuno mi puo aiutare???

Davide Mod Lolli
Ospite

Non Ho capito come calcolare la password su ANDROID…. Puoi rispondermi via email? [email protected]

Alberto Gorni
Ospite
Alberto Gorni

non funziona piu’ quindi?

Xxlucaa
Ospite
Xxlucaa

ciao ho letto il tuo articolo di whatapp e anche se sono ignorante in materia sono rimasto molto colpito complimenti.    COME POSSO RICEVERE UN AIUTO DA TE  SU QUESTO ARGOMENTO?

Polistus
Ospite
Polistus

Ciao! Ma non funziona più questa vulnerabilità? Ho fatto tutto (e son praticamente sicuro sia giusto visto che sviluppo in PHP :D) però continua a darmi FAIL!

Peccato era molto interessante come cosa!!!

pegaso
Ospite
pegaso

vorrei provare se funziona , ho il mio codice imei del cellulare e il mio numero di cellulare , chi mi sa dare la giusta procedura per vedere da qualsiasi pc i miei messaggi ?
sono molto ignorante in materia pertanto se qualche volenteroso e abile in tale procedura puo’ indicarmi i giusti passaggi grazie ciao e grazie a tutti