Verschlüsselung knacken

Bis vor wenigen Monaten war die Verschlüsselung eine Zusammensetzung von IMEI und MAC Adresse des Smartphones. Nach dem Nachbessern von WhatsApp wurde die Verschlüsselung verbessert und auf eine Stromverschlüsselung RC4 umgestellt. Das Problem, dass für eingehende wie auch für ausgehende Nachrichten der selbige Schlüssel verwendet wird. Demnach reicht es vollkommen aus Nachrichten abzufangen und daraus den Schlüssel zu errechnen, so wie es der Informatikstudent Thijs Alkemade gemacht hat.

In erster Linie sollten Sie das Prinzip von der neuen WhatsApp-Verschlüsselung verstehen. Die Verschlüsselung funktioniert wie folgt:

[xyz-ihs snippet=“ad“]

  • Das Telefon überliefert dem WhatsApp-Server seine Telefonnummer über eine HTTPS URL und verlangt nach einer Authentifizierung in Form eines Codes.
  • Darauf bekommt das Telefon eine Textnachricht mit dem angeforderten Code.
  • Der Code aus der Textnachricht wird dann erneut über HTTPS überragen um dann das Passwirt zur Verschlüsselung anzufordern.

Nach dem Sie nun das Prinzip verstanden haben, kann ich Ihnen eine genauere und ausführlichere Abhandlung der Kommunikation aufzeigen.

  • Erstkontakt, hier wird die Anfrage mit der Telefonnummer für die Authentifizierung an den Server gesendet. Hierbei muss beachtet werden, dass die Nummer ohne 00 oder + aber mit der Landeskennung übertragen werden muss.
    <auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" user="XXXXXXXXXXXX" mechanism="WAUTH-1" />
  • Darauf antwortet der Server mit etwas vergleichbarem wie:
    <challenge xmlns="urn:ietf:params:xml:ns:xmpp-sasl">YYYYYYYYYYYYYYYYYYYY</challenge>
  • Nun wir über PBKDF2 mit dem zugesendeten Passwort als Salt für SHA1 eine Schlüssel für die Verschlüsselung generiert. Dieser Schlüssel wird mit 16 Durchläufen / Itterationen des PBKDF2 errechnet. Für die Verschlüsselung der Nachrichten werden 20 Bytes des PBKDF2 verwendet welche den zusammen mit der
    MAC XXXXXXXXXXXX || YYYYYYYYYYYYYYYYYYYY || UNIX timestamp
    den RC4 Schlüssel bilden.
    [ad#ad-2]
<response xmlns="urn:ietf:params:xml:ns:xmpp-sasl">ZZZZZZZZZZZZZ</response>
  • Ab jetzt werden die Nachrichten in WhatsApp verschlüsselt ( HMAC-SHA1) und an die MAC-Adresse gebunden übertragen.

[xyz-ihs snippet=“ad“]

Zur Entschlüsselung (kurzer Umriss):

Unter https://github.com/tgalal/yowsup gibt es ein Skript, welches mit dem Befehl: yowsup-cli -l -d -c config -k  uns essenzielle Daten zur Entschlüsselung liefert.

OUT: <stream:stream to=“s.whatsapp.net“ resource=“XT910-4.3.1″ />
OUT: <stream:features><receipt_acks /><w:profile:picture type=“all“ /><w:profile:picture type=“group“ /><notification type=“participant“ /><status /></stream:features>
OUT: <auth xmlns=“urn:ietf:params:xml:ns:xmpp-sasl“ user=“XXXXXXXXXXXX“ mechanism=“WAUTH-1″></auth>

IN: <stream:stream from=“s.whatsapp.net“ />
IN: <stream:features><receipt_acks /><w:profile:picture type=“all“ /></stream:features> IN: <challenge xmlns=“urn:ietf:params:xml:ns:xmpp-sasl“>YYYYYYYYYYYYYYYYYYYY</challenge>

[xyz-ihs snippet=“ad“]

OUT: <response xmlns=“urn:ietf:params:xml:ns:xmpp-sasl“>ZZZZZZZZZZZZZ</response> Sniffing a login from XXXXXXXXXXXX on 21724521176. Nonce is YYYYYYYYYYYYYYYYYYYY.

IN: <success t=“21724521176″ xmlns=“urn:ietf:params:xml:ns:xmpp-sasl“ kind=“free“ status=“active“ creation=“21724521176″ expiration=“21724521176″>AAAAAAAAAAAAA</success>
IN: <presence from=“s.whatsapp.net“ status=“dirty“ xmlns=“w“><category name=“groups“ timestamp=“21724521176″ /></presence>
IN: <ib from=“s.whatsapp.net“><offline count=“0″ /></ib>
IN: <iq from=“s.whatsapp.net“ id=“ping_1″ type=“result“><ping xmlns=“w:p“ /></iq>
IN: <iq from=“s.whatsapp.net“ id=“ping_2″ type=“result“><ping xmlns=“w:p“ /></iq>
IN: <iq from=“s.whatsapp.net“ id=“ping_3″ type=“result“><ping xmlns=“w:p“ /></iq>
IN: <iq from=“s.whatsapp.net“ id=“ping_4″ type=“result“><ping xmlns=“w:p“ /></iq>

Raffael Haberland
security.haberland.it

7 Kommentare

  1. Hallo Herr Haberland
    ich habe ein Problem mit whatsapp verifizierung.
    Gibt es eine Möglichkeit diese zu erhalten ohne die SIM Karte zum whatsapp account.
    Folgende Nachricht habe ich an support whatsapp gesandt.
    Hallo,
    meine Telefon ist gebrochen. Eine Reparatur nicht mehr möglich.
    Der Account ist +49 172 8188xxx
    die IMEI 358588058504xxx

    Ich hatte auf diesem Telefon whatsapp mit meiner alten Telefonnummer genutzt.
    Leider habe ich keine SIM Karte mehr für diese Nummer und kann die Nummer auch nicht reaktivieren. Deshalb kann ich den Account nicht erneut verifizieren.
    Die Nummer ist jedoch nicht neu vergeben.

    Würden Sie bitte diesen Account bitte wieder für mich nutzbar machen.
    Mir ist es nicht wichtig das er lebenslang kostenlos war, sondern das viele Menschen nur meine whatsapp Nummer haben, und weder ich noch diese Kontakte andere Kontaktinformationen von mir!

    Meine neue whatsapp Nr. ist +4917645600xxx neue IMEI 353346051517xxx

    Ich habe hier jetzt mal die letzten 3 Ziffern durch ein x ersetzt. Haben Sie eine Idee, dieses Problem zu lösen. Am einfachsten wäre natürlich die Tel. Nummer SIM wieder zu besorgen. Aber die ist nicht verfügbar. Irgendwo im Nirwana des Anbieters. Da hab ich mir schon die Hacken abgelaufen.

    Vielleicht können Sie mir helfen. Ich suche schon seit 3 Tagen im Internet ohne Ergebnis. Whatsapp antwortet nur, das Sie keine PIN versenden können, und die Accounts nicht verknüpfen.
    Vielen Dank
    Georg Kerscher

    • Leider ist das ohne eine gültige Telefonnummer nicht möglich. Sie sollten aber von Ihrem Provider eine neue SIM Karte bekommen, welche mit der alte Nummer verbunden ist. Dann könnten Sie den Account erneut aktivieren. Sollten Sie keine neue SIM mit der alten Nummer bekommen, ist es leider nahezu aussichtslos. Bei Androidgeräten könnte man eventuell die APK Datei vom alten Handy kopieren und auf das Neu überragen,
      hierzu müsste man aber noch Zugriff auf den Speicher per USB haben.

  2. Ja, das geht auch ohne gültige Telefon-Nr. bzw. ohne die (verlorene) alte Sim-Karte. Geht mit jedem Android Handy. Voraussetzung ist aber, dass man auf den Speicher des „gebrochenen“ Handys noch uneingeschränkt zugreifen kann und dass das „gebrochene“ Handy gerootet ist oder sich noch rooten lässt. Dann kann man WhatsApp auslesen und auf ein neues Handy übertragen, also „umziehen“ bzw. klonen. Eine Verifizierung auf dem neuen Handy (auch Android, Version egal) ist dann nicht erforderlich, die alte Verifizierung bleibt erhalten, WhatsApp bleibt voll aktiviert mit den alten Daten, man kann WhatsApp mit der ehemaligen Nummer also weiter nutzen, sowohl wenn man ins neue Handy eine x-beliebige Sim-Karte einlegt als auch über Wlan sowie über Tethering/Hot Spot. Account-Nr = Telefon-Nr. und alte Imei muss man dazu noch nicht einmal kennen.

Antworten

Deine E-Mail-Adresse wird nicht veröffentlicht.


*