XOR-Verschlüsselung Wireshark Packet

Moin Zusammen,

Ich hab ein Problem mit der Entschlüsselung eines einzelnen Packets dass ich aus einem Wireshark Stream habe. Es handelt sich dabei um eine XOR-Verschlüsselung und der Key ist mir auch bekannt. Ich weiß sogar in dem Fall was herauskommen muss, kann aber leider das Ergebnis nicht nachvollziehen. Ich hab verschiedene Online-Tools zur Entschlüsselung verwendet und auch selbst versucht eins zu schreiben in Python. Dabei habe ich das Crypto.Cipher Modul verwendet. Leider komme ich nicht auf das Ergebnis das angegeben ist.

Das Paket in HEX sieht wie folgt aus und ist insgesamt 16-Byte groß:
Code:
E811 A983 2894 8DAB C9C0 D199 3BC7 41B3

Der Schlüssel ist initial 'ftp2' und es wird immer 4-Byte weise XOR-entschlüsselt und nach jedem XOR wird der Schlüssel um 1 Bit nach Links geshiftet bevor er wieder verwendet wird. Mehr Informationen habe ich nicht gegeben und sollten meiner Meinung nach auch nicht notwendig sein oder täusche ich mich ?

Das Ergebnis soll das wie folgt aussehen:
Code:
DA61 DDE5 4C74 6567 0000 0000 A846 E280

Schon schon bei der Entschlüsselung de ersten 4-Bytes, bevor der Schlüssel geshiftet werden muss, bekomme ich nicht das richtige heraus, also "DA61 DDE5".

Bin für jede Hilfe dankbar, Jamaal
 
Endianness scheint das Problem zu sein: E811 A983 xor DA61 DDE5 = 3270 7466,
als ASCII interpretiert: 2ptf

mfg benediktibk
 
Hey benediktibk,

Also das Problem schien auf den ersten Blick gelöst und ich bedanke mich für den Hinweis, aber es geht doch noch nicht ganz auf.

Ich versuche das noch einmal so zu beschreiben wie ich herangegangen bin:

Gegeben

Verschlüsseltes Paket:
Code:
E811 A983 2894 8DAB C9C0 D199 3BC7 41B3
Schlüssel "2ptf". In HEX:
Code:
3270 7466

  1. E811 A983 XOR [(3270 7466) << 0] = DA61 DDE5 (Richtig √)
  2. 2894 8DAB XOR [(3270 7466) << 1] = 2894 8DAB XOR 64E0E8CC = 4c746567 (Richtig √)
  3. C9C0 D199 XOR [(3270 7466) << 2] = C9C0 D199 XOR C9C1D198 = 10001 (Falsch X)

    Ab dieser Stelle stimmt es nicht mehr. Also rein arithmetisch schon, denn ich habs per Hand nachgerechnet, was ja aber auch so relativ schnell ersichtlich ist:

    11001001110000001101000110011001 : C9C0D199
    11001001110000011101000110011000 : C9C1D198
    00000000000000010000000000000001 : Ergebnis

    Das Ergebnis entspricht aber nicht dem was entschlüsselt herauskommen sollte, weil dort nur 0'en stehen sollten.
  4. 3BC7 41B3 XOR [(3270 7466) << 3] = DA61 DDE5 XOR 19383A330 = 0x1A844E283 (Falsch X)

Also komme ich insgesamt auf folgendes entschlüsseltes Paket:
Code:
DA61DDE5 4C746567 00010001 1A844E283

Der Anfang stimmt wie du siehst aber danach leider nicht mehr. Davon mal abgesehen ist mir aber auch folgendes aufgefallen, was bei der Analyse vielleicht hilft. Das Ergebnis sollte wie bereits gesagt sein:

Code:
DA61 DDE5 4C74 6567 0000 0000 A846 E280

Wobei die ersten 4-Byte die CRC32 Prüfsumme des gesamten Pakets sein sollen, vorher stehen an der Stelle nur 0'en, also:

Code:
0000 0000 4C74 6567 0000 0000 A846 E280

Der CRC32 Hash von diesem Paket entspricht bei mir aber nicht den oben angegebenen 4-Bytes "DA61 DDE5". Oder ich habe mich auch hier verrechnet? Hab dafür dieses Applet benutzt depa.usst.edu.cn.

Vielleicht seh ich auch den Wald vor lauter Bäumen nicht mehr ^^ In jedem Fall bedanke ich mich. - Jamaal
 
Zuletzt bearbeitet:
Zurück
Oben