Hackerboard WikiHaboBlog

[HaBo]

 
Cryptography & Encryption Ver- und Entschlüsselung, Algorithmen, Kryptoanalyse ? Kryptographie in der Praxis. Blowfish, Triple-DES, XOR u.a.

TCP Nutzdaten Dekodieren

Diskussion: TCP Nutzdaten Dekodieren im Forum Cryptography & Encryption, in der Kategorie Security Area; Hallo Liebe Hackerboard Community! Ich versuche momentan ein Programm so zu ändern, dass ich es auch im offline modus verwenden ...

Antwort
Alt 02.10.07, 17:08   #1 (permalink)
 
Registriert seit: 02.10.07
Innos07 Leistung: Facit NTK
Likes: 0
Standard TCP Nutzdaten Dekodieren


Hallo Liebe Hackerboard Community!

Ich versuche momentan ein Programm so zu ändern, dass ich es auch im offline modus verwenden kann...
das heißt:
Ich habe einen Loopback Adapter etc und Verbinde es quasi mit meinem selbst gebauten Server (mit Delphi gecodet).
Nun muss mein Server natürlich auch genau die Pakete an den Client schicken, die ich mit Wireshark (hoffe kennt ihr) ausfindig machen konnte.
Das is nun auch nicht weiter das Problem. Nur wenn der Client den Server nach einer Art Bestätigung der ID fragt, wird es problematisch, da ich dieses TCP Paket verändern muss.
Ich habe hier 8 Zeichenfolgen (alle normalerweie 128 zeichen lang), die absolut das selbe in dem client anrichten aber komplett unterschiedlich sind...
da ich so eine Dekodierung noch nie gesehn habe frage ich mich, ob vllt hier einer mir sagen kann nach welchem Algorithmus ich suchen muss.

Hier einmal die zeichen nur für ein Paket (die anderen 7 lass ich ma weg^^):

Code:
?L¸?Ä???_???B??¤âBÎë]???q?-J?0??Ž?l]VîU?01??Ö&Ç? ??F?:Elâ?Š'Ç?}E?Ö?	 u?3}?O??Ý yq@???f? ?D;%M?eÜJß??uÔ
sieht das vllt nach irgendeinem gewöhnlichen Algorithmus aus?

Vielen Dank für eure Hilfe im Vorraus :D
mfg Innos
Innos07 ist offline   Mit Zitat antworten
Alt 03.10.07, 01:08   #2 (permalink)
Gulliver
Guest
 
Likes:
Standard

und woher genau bekommst du diese BINAEREN daten da in deinem Post?
  Mit Zitat antworten
   
HaBOT
 

Werbung ist gerade online    
Alt 03.10.07, 05:55   #3 (permalink)
 
Registriert seit: 25.11.05
menace Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Nun muss mein Server natürlich auch genau die Pakete an den Client schicken, die ich mit Wireshark (hoffe kennt ihr) ausfindig machen konnte.
Du kannst auch auf dem lokalen Host eine ganz normale TCP-Verbindung aufstellen. Eine TCP-Verbindung ist ein 4er Tupel aus (SrcIP,SrcPort,DestIP,DestPort)

Und da dein Betriebssystem den SrcPort willkürlich wählt, ist das ganz normal eine TCP-Verbindung wo du Daten senden und empfangen kannst.

Zitat:
Das is nun auch nicht weiter das Problem. Nur wenn der Client den Server nach einer Art Bestätigung der ID fragt, wird es problematisch, da ich dieses TCP Paket verändern muss.
Meinst du mit "Bestätigung der ID den SynACK-Mechanismus? Und warum musst du deinen TCP-Header verändern? Wenn du sowas machst, kannst du ganz schnell Probleme bekommen, wenn du nicht genau weisst was du tust. RawIP-Programmierung ist nicht unbedingt simpel.

Zitat:
Ich habe hier 8 Zeichenfolgen (alle normalerweie 128 zeichen lang), die absolut das selbe in dem client anrichten aber komplett unterschiedlich sind...
Sendest du die vom Server zum Client oder wie? Bevor oder nachdem du den TCP-Header verändert hast?
Oder sind deine einkommenden Daten verschlüsselt? Dann sind sie natürlch jedes Mal unterschiedlich. Hast du Dinge wie NetworkByteOrder beachtet?

Und was meinst du damit, nach welchem Algorithmus du suchen musst? Wenn du den Verschlüsselungsalgorithmus meinst, der das sein könnte, suche evtl. mal in der Binary, ob da noch irgendwelche Strings drin sind (zB. AES oder DES oder TWOFISH oder MD5 oder SHA-1)

Mit dem Output alleine kann man wenig anfangen. Man müsste mindestens noch den Input kennen und evtl noch, was das Progamm da so ungefähr macht.
menace ist offline   Mit Zitat antworten
Alt 03.10.07, 11:14   #4 (permalink)
Themenstarter
 
Registriert seit: 02.10.07
Innos07 Leistung: Facit NTK
Likes: 0
Standard

ok thx erstmal für die antworten (war scho verzweifelt )

der client ist eine fremde anwendung die normalerweise, wenn man eine ID eingibt den Server anfragt, ob diese ID berechtigt ist.
So jetzt is aba mein Programm der Server´, der ihm diese Bestätigung schicken soll.
Ich änder dabei nicht den Header sondern nur den Data File oder die nutzdaten, die man an so ein TCP Paket anhängen kann. Ich sende in Delphi meine Nutzdaten so (Header beachte ich gar nich... geht automatisch):

Code:
ServerSocket1.Socket.Connections[0].SendText('blablabla');
den code den ich in dem ersten Post reingeschrieben habe versende ich somit zum Client, der diesen String auswertet und weiß: ID bigman213 (in dem fall) hat die bestätigung!

1. Eigenschaft: egal wie lang die ID ist, es sind immer 128 Zeichen in dem Bestätigungs String

2. Eigenschaft: der Bestätigungs String für immer die selbe ID (bigman213) ist immer anders, aber der client erkennt auch nur die kleinste änderung also muss da doch iwie ein system sein ?(

und 3. muss ich in dem Bestätigungs String meine ID reinschreiben^^ nur dazu muss ich ja auch den algo wissen

achso diesen Bestätigungs String für die ID bigman213 habe ich mit wireshark rausbekommen (wenn ich die verwende und auch in meinen client bigman213 reinschreibe geht auch alles... nur meine ID funzt net dafür muss ich den String verändern) ... nur wiiieee

@menace thx ertsma ich versuche AES, DES, TWOFISH, MD5, SHA-1
kennt ihr vllt ein Programm um solche Algos einmal durchzugehen?

EDIT: ich gebe in den client eine ID >>> client sendet an Server diese ID >>> Server sendet Bestätigungs String mit der ID verschlüsselt >>> Client startet /fürht aufgaben aus

Edit2: um rechtliche Konsequenzen brauche ich mir bei diesem Client keine Sorgen machen (also dass ich eine ID Bestätigung "fälsche", da dieses Prog niemand benutzt und niemand wegen 2-3 ? son aufstand macht^^ mir gehts aba um den praktischen Hintergrund 1. Offline das Prog zu nutzen und 2. mit anderen IDs (eigentlich nur 1)
Innos07 ist offline   Mit Zitat antworten
Alt 03.10.07, 13:07   #5 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Hallo,
alle (guten) Verschlüsselungsalgorithmen können jeden Geheimtext generieren, sprich, man kann nicht unterscheiden, ob nun AES, Twofish, Blowfish etc. verwendet wurde, weil wie gesagt jeder dieser Algorithmen einen vorgegeben Geheimtext generieren könnte.
Außerdem sind die heutigen Algorithmen so ausgelegt, dass man den Geheimtext nicht mehr von Zufallsdaten auseinander halten, irgendwelche statistischen Mittel entfallen.

Nur vom Ciphertext auf den Algorithmus zu schließen ist so gut wie unmöglich, selbst wenn man den Klartext hat, bringt einen das nicht sehr viel weiter.
Was du machen musst, ist das Programm zu dekompilieren und somit versuchen Rückschlüsse auf den Algorithmen zu ziehen.

Wobei man bei solchen Texten/Packeten eigentlich ___nie___ das ASCII-Resultat analysiert, sondern sich immer die Daten im Hex-Format anguckt.
Evt. sind die Daten auch so aufgebaut:
Timestamp | ID-Client | .... | Response

Der Timestamp mag vermutlich bei jedem aufruf variieren, aber ID-Client und Response können z.B. gleich bleiben, soetwas sieht man aber erst, wenn man die Hex-Strings zweiter Packete vergleicht.
Elderan ist offline   Mit Zitat antworten
Alt 03.10.07, 13:32   #6 (permalink)
Themenstarter
 
Registriert seit: 02.10.07
Innos07 Leistung: Facit NTK
Likes: 0
Standard

meinst du, dass die zeichenkette "vom-Client-an-Server" gleich der Zeichenkette "Server-an-Client" sein könnte?
nein^^ es ist nicht so... der client sendet : 16665bigman213
und der server antworten mit einem 1049 Byte großen Data file mit einer Zeichenkette von 128 Zeichen (im gegensatz zum client, bleibt die größe immer gleich)

außerdem habe ich auch mal mit einem Hex Editor den Client angeschaut. Nur leider sehe ich da auch nur solceh komischen Zeichen und nicht iwelche leserlichen Zeilen

ich guck mir jetzt aber mal die Hex-Strings genauer an, wobei ich aber nicht glaube, dass sie gleich sind, da ja auch die ASCII-Strings unterschiedlich sind und die folgen doch aus deren Hex-Strings oder?
Innos07 ist offline   Mit Zitat antworten
Alt 03.10.07, 14:41   #7 (permalink)
Senior Member
 
Benutzerbild von Chakky
 
Registriert seit: 28.10.03
Chakky Leistung: Z3
Chakky eine Nachricht über ICQ schicken
Likes: 95
Standard

ich glaube er meinte du sollt die tcp pakete mitn hex editor anschauen!
__________________
cu
Chakky

we are dreaming in digital
we are living in realtime
we are thinking in binary
we are talking in IP
welcome to our world
Chakky ist offline   Mit Zitat antworten
Alt 03.10.07, 15:35   #8 (permalink)
 
Registriert seit: 25.11.05
menace Leistung: Facit NTK
Likes: 0
Standard

Zitat:
1. Eigenschaft: egal wie lang die ID ist, es sind immer 128 Zeichen in dem Bestätigungs String
Dann wird ein Padding vorgenommen, das heisst, falls die Daten nicht 128 Zeichen lang sind, wird es auf 128 Zeichen mit ..
Zitat:
2. Eigenschaft: der Bestätigungs String für immer die selbe ID (bigman213) ist immer anders, aber der client erkennt auch nur die kleinste änderung also muss da doch
Zufallsdaten aufgefüllt, was dann auch erklärt, wodurch das immer wieder anders aussieht.

Und du sollst, wie die Vor-Schreiber schon gesagt haben, nicht den Client im Hexeditor erstmal anschauen, sondern die Daten. Und dort nach Mustern wie einem Header oder Footer suchen.
Das Programm solltest du trotzdem untersuchen, um die Art des Algorithmus(a/symmetrische Verschlüsselungsfunktion, HMAC) zu erkennen (das geht nur händisch, dafür gibt es keine automatisierten Programme.
Wenn du glück hast, verwendet die Person einen symmetrischen Schlüssel und den solltest du dann aus dem Programm extrahieren können.

Wenn du das alles noch nie gemacht hast: Viel Spass, das wird einiges an Frickelei.
menace ist offline   Mit Zitat antworten
Alt 03.10.07, 16:20   #9 (permalink)
Senior Member
 
Benutzerbild von Chakky
 
Registriert seit: 28.10.03
Chakky Leistung: Z3
Chakky eine Nachricht über ICQ schicken
Likes: 95
Standard

Zitat:
Original von menace


Wenn du das alles noch nie gemacht hast: Viel Spass, das wird einiges an Frickelei.
er meint ja er will es lernen

*ich les weiterhin interessiert mit
__________________
cu
Chakky

we are dreaming in digital
we are living in realtime
we are thinking in binary
we are talking in IP
welcome to our world
Chakky ist offline   Mit Zitat antworten
Alt 03.10.07, 17:18   #10 (permalink)
Themenstarter
 
Registriert seit: 02.10.07
Innos07 Leistung: Facit NTK
Likes: 0
Standard

äh xD ja^^ naja thx für eure hilfe ich werd ma mit dem Hex Editor mehr arbeiten
Innos07 ist offline   Mit Zitat antworten
Alt 03.10.07, 23:39   #11 (permalink)
 
Registriert seit: 15.10.04
sheepd Leistung: Facit NTK
Likes: 0
Standard

WireShark kann doch Pakete auch direkt hexadezimal anzeigen, das sollte für deine Zwecke doch ausreichen, oder?
Natürlich folgt der String den du da hast aus den hexadezimalen Werten, allerdings kann man eventuell in der Hex-Ansicht ein sonst verborgenes System erkennen.
Beispiel:
Die Zahl 2 als ASCII-Character wird als ein Byte mit Hex-Wert 0x32 kodiert. Der Hex-Wert 2 (0x02) hingegen ist ein nicht sichtbares Steuerzeichen in ASCII.
Siehe auch http://asciitable.com/
sheepd ist offline   Mit Zitat antworten
Antwort
   

Werbung ist gerade online    

[HaBo] » Security Area » Cryptography & Encryption » TCP Nutzdaten Dekodieren
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
.otrkey dekodieren games1024 Music- & Filmbox 1 14.07.09 19:05


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61