WhatsApp Messenger é vulnerável!
Mais de mil milhões de mensagens trocadas diariamente. E se conseguisse aceder as mensagens dos seus amigos?
O WhatsApp Messenger é um dos mais populares serviços para troca de mensagens entre utilizadores. Para enviar e receber mensagens, o WhatsApp necessita de ter acesso à Internet, através de uma ligação 3G/4G ou Wifi. O WhatsApp é bastante simples de usar, uma vez que não existe a necessidade de criar contas no serviço. Para se realizar uma comunicação, o WhatsApp Messenger identifica os utilizadores através dos contactos telefónicos mantidos no smartphone.
As ultima noticias relativamente ao serviço dão conta que este tem sérios problemas de segurança.
Hoje em dia são muitos os serviços que os utilizadores têm à disposição para comunicarem entre si. Um dos serviços mais usados é o WhatsApp, que de uma forma muito simples, permite a troca de mensagens entre utilizadores. Recentemente soube-se que antes de Agosto de 2012, este serviço não cifrava a informação ou seja, as mensagem podiam ser facilmente interceptadas/snifadas na rede e facilmente interpretadas.
Nessa altura a empresa responsável pelo serviço referiu que a ultima versão mantinha a confidencialidade da informação, tendo sido incluídos mecanismos para cifrar os dados trocados entre as comunicações. No entanto o programador Sam Granger, que recentemente analisou o serviço, descobriu algumas situações caricatas e que pouca segurança garantem ao serviço.
Sam Granger afirma que os números associados ao cartão SIM dos equipamentos continuam a ser trocados em texto claro, como podemos observar pela imagem seguinte,.
Outro dos "pontos fracos" que o programador referiu é a autenticação dos dispositivos móveis no serviço. Segundo Granger temos as seguintes situações:
Android
No caso do Android,a autenticação é "...um pesadelo em termos de segurança". A password usada é um hash MD5 do IMEI invertido de cada equipamento:
$imei = "112222223333334"; // IMEI
$androidWhatsAppPassword = md5(strrev($imei)); // IMEI reservo e cálculo da md5 hash
iOS
No caso do equipamentos com iOS, a password é gerada com base no MacAddress da interface Wifi
$wlanMAC = "AA:BB:CC:DD:EE:FF"; // exemplo de de um mac address
$iphoneWhatsAppPassword = md5($wlanMAC.$wlanMAC); // calculo de md5 hash usando o MAC address
Como sabemos, o utilizador do serviço é o próprio numero de telefone do equipamento (o atacante consegue saber isso facilmente) e as password são muito fáceis de obter....o IMEI de um equipamento pode ser facilmente obtido digitando no equipamento *#06# e o MacAddress de um equipamento pode também ser facilmente capturado através de um sniffer.....parabéns com esta informação, qualquer utilizador pode transformar-se num atacante e aceder às mensagens de uma conta no WhatsApp Messenger. Mas como?
Como "crackar" o WhatsApp?
Se tiverem o WhatsApp instalado podem experimentar vocês mesmos, vocês mesmo, testando uma API que faz Engenharia Reversa.
Autenticação
https://r.whatsapp.net/v1/exist.php?cc=$countrycode&in=$phonenumber&udid=$password $countrycode = the country calling code $phonenumber = the users phone number (without the country calling code) $password = see above, for iPhone use md5($wlanMAC.$wlanMAC), for Android use md5(strrev($imei)) / Note that the WhatsAPP UDID has nothing to with the Apple UDID - it is something completely different. |
Se tudo estiver correcto, a resposta em será algo do tipo:
Privacidade
Quando a aplicação se inicia, envia todos os seus contactos que estão disponíveis na lista de contacto para, centralmente, o servidor verifique quais é que estão activos. O sistema faz algo do tipo:
https://sro.whatsapp.net/client/iphone/iq.php?cd=1&cc=$countrycode&me=$yournumber&u[]=$friend1&u[]=$friend2&u[]=$friend3&u[]=$friend4 $countrycode = the country calling code $yournumber = while this SHOULD be your number, it is not required, the API will accept any number $friendX = phone number (without the country calling code) from the address book that will be checked, u[] is an array so it is possible to check multiple numbers with one request |
Do outro lado, o servidor responde com um documento XML, como todos os números registados no WhatsApp.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <array> <dict> <key>P</key> <string>1234567890</string> <key>T</key> <integer>10817</integer> <key>S</key> <string>Some Status Message</string> <key>JID</key> <string>23xxxxxxxxx</string> <key>NP</key> <true/> </dict> </array> </plist> |
Onde o "P" é o numero de telefone do utilizador, o "T" é supostamente o uptime (???) e o "S" é a mensagem do utilizador. Toda esta informação é pública.
Ganger referiu que conseguiu ler e enviar mensagens de amigos que lhe deram a permissão para testar tal descoberta.
Conclusões
Assim como o Ganger qualquer um pode aceder às mensagens dos amigos (imaginem por exemplo que conseguem arranjar o IMEI ou MacAdress da interface wireless do smartphone do vosso amigo/amiga..). Se é um utilizador que usa com frequência o serviço WhatsApp e nele costuma trocar mensagens (muito) pessoais ou de negócisos, então é melhor reflectir sobre a utilização do serviço.
Este artigo tem mais de um ano
Ainda hoje está a pensar que esta app estava de parabéns! Cross-plataform entre iOS e Android! Perfeito para troca de mensagens! Poderíamos mails claro, mas com esta app seria mandar sms!
Alguém que avise os senhores desta app para meterem alguma encriptação decente!!
talvez o viber
E no Blackberry, como está essa situação?
Existem várias alternativas ao whatsapp, inclusive com a possibilidade de poder telefonar através de wifi/3g, são elas o viber e o tango, este ultimo até dá para video conferência
* vídeochamada
tive a testar e nao consegui :s
Uma alternativa será o Touch.
Estive a testar e aquilo que obtive não foi nada do que estava à espera..
no primeiro teste:
e no segundo:
P
$meuNumero
T
367
S
Available
JID
$meuNumero
NP
P
$meuNumero
T
367
S
Available
JID
$meuNumero
NP
Nada de especial.. realmente tenho dois amingos online e ele develoveu dois registos, mas não me deu nenhuma informação vital.. Pode ser por ter um android e não um iPhone.
Boa, não deixou postar o xml como deve de ser, mas acho que dá para perceber que a unica informação que me foi devolvida foi o meu numero, o que é necessário para aceder a isso, ou seja, quem tenta aceder sabe o meu numero, se lhe é devolvido o mesmo, não fica a ganhar muito com isso..
testei com um contacto e devolveu exactamente a mesma coisa, o numero dessa pessoa. A pessoa em questão é Blackberry, o que me leva a pensar que isto provavelmente só afecta iPhones, até por causa do link.
Pois, eu nao vi qualquer referencia ao Blackberry. Talvez não use o IMEI ou o MacAddress.
testei com um iPhone e sem conhecimento da pessoa, continuo com os mesmo resultados. apenas devolve o numero, uptime e status message.. nada que eu já não saiba.
Temos aqui a explicação:
http://samgranger.com/whatsapp-is-using-imei-numbers-as-passwords/
– UPDATE –
It seems that WhatsApp has made a change in their authentication system. I am not sure what they exactly changed, but if I find out more I will let you all know. My method no longer works.
That was fast xD
OffTopic: Não consigo responder ao ultimo comentário, o botão para responder fica sobreposto pela div dos comentários, I guess.
na tag depth 5 a div “reply-container” não está a ser prenchida com o link para responder como nos outros niveis.
Estou esperando pelo Silent Circle: https://silentcircle.com para ver o que dali sai… prometem encriptação de e-mail, chamadas, conferências VoIP e mensagens de texto.
Envolve desde os criadores do PGP a ex-membros dos Navy Seals.
Provavelmente usarão o SHA256, RSA2048 e tal (que é o normal), e como já tem imensa experiência é provável que não cometam os erros de amadores como os do WhatsApp (que não percebem nada daquilo!). A encriptação provavelmente será relativamente fraca para proteção de desencriptação dos estados… mas pelo menos deve evitar que os conjugues e vizinhos consigam ler/ ouvir/ ver facilmente. Eu já esperava que usassem algo como o algoritmo NTRU na configuração de máxima segurança 256 bit (ou talvez até mais… 512 bit) para proporcionar uma segurança para o futuro realmente a sério (resistente a computadores quânticos) e com um impacto sobre os dispositivos e na velocidade de transmissão realmente baixa.
Espero que o Pplware não deixe de reportar se esta situação tiver seguimento! 😉
Para verem as mensagens que circulam numa rede wifi pública em android é só instalar o WhatsAppSniffer (Google it)!
E funciona! Até NIBs e códigos de segurança já apanhei!
Enfim
Um sniffer para linux:
http://0x80.org/blog/?p=652
AS MENSAGENS SÃO PROCESSADAS EM TEXTO PLENO SEM QUALQUER ENCRIPTAÇÃO!
Também funciona em windows caso tenham o python e scapy instalados 😉
gostaria que alguém explicasse melhor pois não estou entendo muito bem.
Pessoal,
Vi que uma menina conseguiu alterar seu “last seen” no Whatsapp para uma data anterior. gostaria de saber como isso foi feito. Alguem já viu algo parecido?
Abraços.
E OTIMO